目前这段时间,微机原理这门课上到了接口部分;开始接触到基于接口芯片的汇编编程,这个星期五上机实验完成后。考虑了一下老师说的跑马灯程序,感觉逻辑上实现不是很复杂

于是去实现了一下,但是没跑起来;于是最后请到了终极大BOSS。据说今年带五个班微机课第一次敲代码的老师,来指导了一下;使用DEBUG直接实现了跑马灯

遂把老师的指导和自己的想法整理出来。

首先我们需要了解什么是接口电路

我们知道计算机有很多的外部设备,但是呢外部设备不可能自己工作;需要有人给它分配工作,这个时候只能由我们的CPU出马了;话说外设少的时候CPU还能干得过来,但是当外设一多起来

不同的外设有不同的功能时。CPU就会忙不过来了,这个时候我们应该怎么处理这个问题呢?想想我们现实生活中的大公司里面的那些老板是怎么管理自己公司的,是不是大多数老板都是请人负责具体的业务

自己只做战略方针上面的决策啊,同样我们的CPU也是啊,忙不过来就需要请人了;这个时候应该请谁呢——接口电路就应运而生了,他帮助我们CPU处理外设传递的数据和控制外设工作

所以啊,当老师讲到这里的时候我就在想。CPU的发展历程感觉好像一个公司的发展史啊,刚开始的时候公司还很弱下;啥事都要老板自己亲自动手,当公司发展起来之后啊;老板只负责最重要的部分,其他方面就由具体部门负责人负责。

废话不多说,下面上一张神图:

这是我粗略的根据所学的一些知识画出来的,可能不甚熟悉;但大体的结构基本如下:

关于8255A芯片的一些简介

有ABC三个端口分别为PA0-7,PB0-7...PC0-7

控制端口A0和A1

其中C端口有时候做一个拆分。将芯片分为两组控制组,然后C端口的高4位和A端口的组成A控制组,B端口的和C端口的低四位构成B控制组

基本情况就是这样,关于8255A更具体的一些引脚;请查阅API

关于跑马灯程序的思路

我们将A端口或者B端口连接到开关或者是数据输入的那一头,将另外一个端口连接到数据输出或者LED的这一头;

然后获取控制端口的地址,在控制端口中设置由A还是B端口输出;然后将数据输入其中的一位设置为LED灯亮,其余为全灭。

然后在输出断,将输入端的数据输出;这样就可以控制其中一个小灯。再将输入端中的值做循环一位。然后跳转到程序的开始形成一个死循环

再在其中加上一点点延时程序(延时程序的时间必须要足够长)这样就能够实现跑马灯的效果了

下面我们看一下电路图

跑马灯程序代码:

PORTA=300H
PORTB=301H
PORTC=302H
CONTROL=303H
CG SEGMENT 'CODE'
ASSUME CS:CG
BEGIN: MOV DX,CONTROL
MOV AL,82H
OUT DX,AL
MOV DX,PORTB
MOV AL,0FEH
OUT DX,AL
XYZ: MOV DX,PORTB
out DX,al
ROL AL,1
l2 mov cx,2000
mov bx,300
l1: dec bx
jnz l1
LOOP l2
jmp xyz

以上就是这个星期学习的一点个人心得,QAQ这个周末还是很慵懒的度过去了;不知道为啥一到周末就没有一点点动力去接着敲代码了。真是不应该,以后得改变改变。

转载于:https://www.cnblogs.com/shengbeer/p/7863091.html

基于8255A接口芯片的跑马灯程序相关推荐

  1. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  2. 第十九节:依次逐个点亮LED之后,再依次逐个熄灭LED的跑马灯程序。

    开场白: 上一节讲了把74HC595驱动程序翻译成类似单片机IO口直接驱动的方式.这节在上一节的驱动程序基础上,开始讲跑马灯程序.我的跑马灯程序看似简单而且重复,其实蕴含着鸿哥的大智慧.它是基于鸿哥的 ...

  3. Proteus仿真STM32F103R6的寄存器版跑马灯程序(存储器宏定义)

    跑马灯程序,存储器映像.用宏定义,增强程序的可读性.. 头文件: #ifndef __STM32F10x_H #define __STM32F10x_H#define PERIPH_BASE (0X4 ...

  4. Proteus仿真STM32F103R6的寄存器版跑马灯程序

    STM32最简单的外设莫过于IO口的高低电平控制了, Proteus仿真STM32F103R6的跑马灯程序. 一.原理图 二.跑马灯C程序 // 粗略延时函数 static void delay(un ...

  5. 02 ARM11 时钟初始化后的跑马灯程序

    2019独角兽企业重金招聘Python工程师标准>>> .text .globl _start _start:ldr r0, =0x70000000orr r0, r0, #0x13 ...

  6. arm 跑马灯 linux,02 ARM11 时钟初始化后的跑马灯程序

    .text .globl _start _start: ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15, 0, r0, c15, c2, 4 ldr r0, ...

  7. ARM上裸奔的跑马灯程序

    今天用优龙ST2410测试了一下在不进系统的情况下裸奔跑马灯程序.首先总结下在ARM板上裸奔程序的几种方法:既然要在ARM上裸奔,首先地让ARM板不进系统,方法是上电复位后选BIOS的最后一项:7 : ...

  8. 写一个ST语言的跑马灯程序

    ST语言的跑马灯程序如下: repeat for i:=1 to 8 do for j:=1 to 8 do if (i=j) then write('*'); else write(' '); en ...

  9. 写一个跑马灯程序并注释

    我可以写一个简单的跑马灯程序,代码如下:// 定义一个字符串,用于显示跑马灯 var str = '你好,世界!';// 定义一个变量,用于表示跑马灯的位置 var pos = 0;// 使用循环,不 ...

最新文章

  1. Activity的四种启动模式
  2. 除了计算机中的二进制还有哪些进位制,除了十进位制还有什么进位制
  3. 【问题解决方案】ImportError: No module named 'openpyxl'/‘xlrd’
  4. 【每周NLP论文推荐】 知识图谱重要论文介绍
  5. 两端对齐布局与text-align:justify
  6. 技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
  7. java cpu io高_服务器负载过高问题分析-不是cpu高负载也不是IO负载如何处理(阿里 几乎是必考题)...
  8. stm32f103r8t6的晶振频率_STM32F103R8T6[1]
  9. ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
  10. 9.卷1(套接字联网API)---基本SCTP套接字编程
  11. delphi商业源码
  12. 以消费者为中心,服装行业如何应用人工智能提升客流量?
  13. nRF51822 官方 Blinky 工程(多彩 LED)
  14. canal.admin、adapter和deployer的区别
  15. 物联网传感器61个应用领域
  16. Windows7截图教学
  17. 基于javaweb物业管理系统的设计与实现/小区物业管理系统
  18. 怎么翻译整篇Excel文档?Excel文档翻译一招搞定
  19. 【音视频】音视频概念了解
  20. 传智播客风清扬视频-------线程简介

热门文章

  1. 全新UI简洁H5商城网站源码/带易支付接口
  2. poj 2709 Painter——贪心 买颜料问题
  3. 旅游地如何搭好影视剧“顺风车”
  4. 鸿蒙渊更新公告,《天下3》更新公告(版本2.0.706)
  5. [附源码]java毕业设计宠物医院管理系统
  6. signature=839c980ea2bb48be66699d26946b8c01,3922张仅包含车牌的图片,图片名字表示车牌号码...
  7. 华硕天选二FA506QM BIOS更新至311无法读取固态硬盘
  8. 解析数字签名的Substring结构
  9. Machine Learning学习笔记(四)EML极限学习机
  10. 教python的app_Python教学