微机原理课程设计 流水灯控制系统.docx
- 文档编号:10074259
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:9
- 大小:222.58KB
微机原理课程设计 流水灯控制系统.docx
《微机原理课程设计 流水灯控制系统.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计 流水灯控制系统.docx(9页珍藏版)》请在冰点文库上搜索。
微机原理课程设计流水灯控制系统
微机原理课程设计
流水灯控制系统
姓名:
XX
学院:
物理电气信息学院
班级:
2010电子
姓名:
12010245…
流水灯控制系统
一、设计内容:
本课程设计选用8086对8255A的A口控制来实现模拟流水灯功能的实现。
编写相关程序,通过proteus仿真软件来实现我名字“安亮”两个字的闪烁,“安”字接8255的A口的P0,“亮”字接A口的P1。
先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪烁八次,再跳到开始,以此循环。
二、设计目的:
1、了解流水灯的基本工作原理
2、熟悉8255A并行接口的各种工作方式和应用
3、利用8255A接口,LED发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。
三、实验原理
在8086系统中,采用16位数据总线,进行数据传输时,CPU总是将低8位数据线上的数据送往偶地址端口,而过高8位数据线上的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低8位数据线传送到CPU,从奇地址端口取得的数据总是通过高8位数据线送到CPU。
在8086系统中,将8255A的A1端和地址总线的A29255A在对CPU并且,相连,A1端和地址总线的A0的8255A而将相连,
的端口进行访问时,将地址总线的A0位总是设置为0。
本课程设计通过对8255A的A口控制来实现模拟流水灯功能的实现。
“安”接A口的P0,“亮”接A口的P1,实现两个字按一定规律的一个闪烁。
8255的内部结构
255A内部结构由以下四部分组成:
数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。
端口A:
包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。
端口B:
包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器,可作为数据输入或输出端口,但不能工作于方式2。
端口C:
包括一个8位的数据输出锁存/缓冲器和一个8位的数据,端口上和下)C(位的端口4可在方式字控制下分为两个输入缓冲器,
每个4位端口都有4位的锁存器,用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。
A组和B组控制的作用如下:
A组控制逻辑控制端口A及端口C的上半部;
B组控制逻辑控制端口B及端口C的下半部。
2.8255A芯片介绍
芯片引脚图:
(和外设一边相连的):
PA7-PA0:
A组数据信号
PB7-PB0:
B组数据信号
PC7-PC0:
C组数据信号
(和CPU一边相连的):
RESET:
复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。
的数据线,和系统数据总线相连。
8255A:
它们是D7-D0.
CS:
芯片选择信号,低电平有效。
在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255A的CS端输出一个低电平,于是8255A被选中。
只有当CS有效时,读信号RD和写信号WR才对8255A有效。
RD:
芯片读出信号低电平有效。
WR:
芯片写入信号低电平有效。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和一个控制端口,共四个端口。
规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
3.8255A控制字
方式选择控制字
控制字0置1/置C端口.
2.8255A工作方式
方式0:
基本输入/输出方式
方式0是8255A的基本输入/输出方式,其特点是与外设传送数据时,不需要设置专用的联络(应答)信号,可以无条件的直接进行I/O传送。
A,B,C3个端口都可以工作在方式0。
A口和B口工作在方式0时,只能设置为以8位数据格式输入/输出。
C口工作在方式0时,可以高4位和低4位分别设置为数据输入或数据输出方式。
方式1:
单向选通输入/输出方式
方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:
与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据。
由于C口的PC0,PC1和PC2定义为B口工作在方式1的联络信号线,PC3,PC4和PC5定义为A口工作方式1的联络信号线,因此只允许A口和B口工作在方式1。
如果8255A的端口A和端口B都工作在方式1,那么,端口C中就有6位被规定为配合方式1位扔作为输入或输出。
2工作的信号,剩下的.
方式2:
双向选通输入/输出方式
方式2为双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。
由于C口的PC7-PC3定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式2。
PA7-PA0为双向数据端口,既可以输入数据又可以输出数据。
方式2只适用于端口A。
端口A工作于方式2时,端口C用5个数位自动配合端口A提供控制信号和状态信号。
四、实验器材:
8086、8255、二极管、电源等
五、设计步骤
1)硬件原理图
2)软件流程图
3)程序设计清单
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAL,80H
L:
OUT06H,AL;将80H送给06H,10000000
MOVAL,0FCH
OUT00H,AL;将0FC送给00H,11111100(亮、亮)
LOOP$;延时0.25秒
MOVAL,0FFH
OUT00H,AL;11111111(灭、灭)
LOOP$;延时0.25秒
MOVAL,0FEH;11111110(灭、亮)
OUT00H,AL
LOOP$;延时0.25秒
MOVAL,0FDH;11111101(亮、灭)
OUT00H,AL
秒0.25;延时LOOP$
MOVBX,7;闪烁8次
L1:
MOVAL,0FFH
OUT00H,AL;11111111(灭、灭)
MOVCX,6000
LOOP$;延时
MOVAL,0FCH
OUT00H,AL;将0FC送给00H,11111100(亮、亮)
MOVCX,6000
LOOP$;延时
DECBX
JNZL1
JMPL;跳到L循环
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
六、实验结果
七、调试过程与分析
1、出现的问题
proteus刚开始,我们准备设计一个方波发生器,写好了程序,用
进行了仿真,结果出现了问题,无法仿真,我和合作者开始寻找错误,先从程序开始,请教同学,修改程序,之后看proteus的连线,也没有发现问题,但是还是无法仿真,就做了两天,没有做出来,我和合作者商量果断放弃了方波发生器的设计,因为毕竟时间有限。
我们决定做流水灯,既简单,学的内容又可以充分利用。
在做流水灯的时候,我们想着,这次吸取教训,从简单入手,程序也简单,进行仿真后很快成功,我们的设计也算完成。
2、心得体会
这次的课程设计结果虽然简单,可是过程很复杂,我们用的时间也比较长,主要是自己的只是水平不高,花费了大量的时间,最后却选择了一个最简单的设计。
通过这次设计实验,觉得自己的水平的确有待提高。
学习不踏实,以为学懂了,其实只是学了表面,细节根本没有注意到,以至于花费了时间,却没有出结果。
这也是一个自我检测的过程,发现自己的不足,弥补自己的缺点,给了我一个很大的启发。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理课程设计 流水灯控制系统 微机 原理 课程设计 流水 控制系统