Hefei University
微机原理与接口技术课程设计报告
论 文 题 目 基于8086彩灯控制器的设计
系 别 电子信息与电气工程系
专 业
姓 名
指导 老师
完成 时间 20##年12月29日
自动化专业微机原理课程设计任务书
摘要
课题:基于8086的彩灯控制器
1.通过8255A控制发光二极管,L1对应黄灯,L2-L5对应红灯,L6-L8对应绿灯, 以“ 0 ”代表彩灯点亮,以“ 1 ”代表彩灯熄灭。用“JMP START”语句控制循环。用“DL500ms”,“DL1500ms”语句实现延时控制。
2程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态
3各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。
关键词:8255 彩灯 控制器 端口
目 录
摘要. 2
设计原理. 4
实验线路. 4
功能流程图. 5
结果讨论. 5
设计心得. 6
结束语. 7
参考文献. 8
附件. 9
设计原理
我们以8255交通灯的一种显示效果为例,介绍彩灯控制器显示的基本原理。设有一排 8个水平排列的彩灯,某种显示方式为从左到右0.5秒点亮。其控制过程如下:
若以“ 0 ”代表彩灯点亮,以“ 1 ”代表彩灯熄灭,则开始时刻, L1黄灯亮1.5秒后,红灯L2,L3,L4,L5间隔0.5秒依次亮,然后绿灯L6.L7.L8间隔0.5秒依次亮;循环7次。控制器将一帧8个数据送至8个彩灯的控制端,其中,最左边的一段彩灯对应的控制数据为“0”,其余的数据均为1,即11111110.当8个数据送完以后,控制器停止送数,保留这种状态(定时)1.5秒,此时黄灯被点亮,其余彩灯熄灭。随后,控制器又在极短的时间内将数据111111101送至彩灯的控制端,并定时0.5秒,这段时间,第一个红灯被点亮。由于送数据的过程很快,我们观测到的效果是第一个红灯被点亮 0.5 秒后,第 2 个红灯接着被点亮,即每隔 0.5 秒显示一帧图样。如此下去,最后控制器将数据 01111111送至 8个彩灯的控制端,则L8绿灯被点亮。依次循环7次。
仿真电路图
功能流程图
程序主流程控制图
注:程序详见附件
结果讨论
本程序共有分端口设置模块,延时模块,显示模块等几个模块。经过调试,本程序可以基本实现题目的要求。
黄灯L1亮 1.5秒 红灯L2.L3.L4.L5间隔0.5秒依次点亮 1.5秒 绿灯L6、L7、L8、L9间隔0.5秒依次点亮 1.5秒 黄灯L1熄灭 1.5秒 L2、L3、L4、L5同时熄灭 1.5秒 L6、L7、L8、L9同时熄灭 1.5秒 返回初始步,循环显示。
本程序参照实验室电脑中星研8255控制交通灯实验。
下面对几个重点部分的调试过程和遇到的问题作一定的讨论:
1.所调试的程序无法达到彩灯有规律的熄灭。
2.循环次数有限,为7次。
3.硬件连接的排线无法与插针很好的匹配。
4.在系统显示监控提示符“P.”时,按SCAL键。
设计心得
通过对基于8086彩灯控制器的汇编实现,对硬件特别是8253A,8255并行口的原理和实现都有了很深的了解。更加深了对汇编语言的使用.
整个程序中涉及8253A,8255并行口的使用,汇编语言熟练掌握的要求。
可以说整个文件中最麻烦的就是进位条件的判断,编程中经常犯想当然的错误。另外对于中断服务子程序的类型设置问题,由于以前对这个概念的理解留于表面,编程中出现了不少奇怪的错误。再调试中尝试使用了分割法,对错误模块进行定位,再进行排查.
在算法实现上要有一定的思路要更能体现设计的目的。同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。
通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。
所以在以后的学习中一方面我要不断的巩固自己所学的理论知识,一方面还要多参加实际操作工作以便提高自己的实际操作能力。
其实这次课程设计的最大收获应该是找到了解决问题的几个很好的途径:1.讨论2.通过网络,在自己的网站上也收获了很多,共享让我们共同进步。此外,我学会了看硬件结构图,并学会了自己去独立的完善一个程序,对程序的效用等做思考。并体会到:问别人只能帮你开拓思路,真正解决问题还是要靠自己去摸索。当然讨论是很好的学习途径,它会让你事半功倍.
由于时间不是很充裕,程序中有很多值得改善的地方,我尝试再其中加入更多的功能,但调试的结果没有,所以需要继续努力。
结束语
通过本次“基于8086的彩灯控制器”的微机课程设计,在理论知识方面:我们更进一步了解了8255并口的应用,同时加深学习了星研和DJ88k相关软硬件操作。一方面加强了通过查阅资料分析问题,研究问题,解决问题,另一方面将理论与实践在某一程度进行融合。在实验经验方面:充分认识到团队合作的重要性!虽然在实验过程中遇到了种种困难,但经过团队的共同努力,老师的指导,充分发挥出了团队的主体与个体优势,扬长避短,最终完成了实验任务。
最后,感谢刘伟,林泽坤两位老师一直陪伴我们完成实验,以及在实验两周内的辛勤指导!谢谢……
参考文献
《微型计算机原理及接口技术》实验指导书
《16-32位微型计算机技术及应用》清华大学出版社
《汇编语言程序设计》南京大学出版社
《汇编语言程序设计教程》清华大学出版社
《微型计算机原理及接口技术》中国科技大学出版社
附件:
基于8086彩灯控制器的程序清单
DATA SEGMENT
COM EQU 96H ;控制口偏移量
PA EQU 90H ;PA口偏移量
PB EQU 92H ;PB口偏移量
PC EQU 94H
DATA ENDS
sda segment stack
bdfv dw 100 dup(0)
sda ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:sda
START:
mov dx,COM
mov al,82H ; PA、PB、PC为基本输出模式
out dx,al
mov al,00000000b
mov dx,PA
out dx,al
QQ: MOV DX,PB
IN AL,DX
cmp al,0FDh
jnz START1
MOV DX,PB
IN AL,DX
cmp al,0FDh
Jz hh
jmp QQ
hh: jmp START2
START1 proc near
waitq: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jnz wait1
mov al,00000000b
mov dx,PA
out dx,al
MOV DX,PC
MOV AL,00H
OUT DX,AL
wait1: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jz wait1
MOV DX,PC
MOV AL,01H
OUT DX,AL
MOV CX,6H
DELAY8: DEC CX
LOOP DELAY8
MOV DX,PA
MOV AL,01H
OUT DX,AL
MOV CX,2H
DELAY: DEC CX
LOOP DELAY
MOV DX,PA
MOV AL,03H
OUT DX,AL
MOV CX,2H
DELAY1: DEC CX
LOOP DELAY1
waitw: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jnz wait1w
mov al,00000000b
mov dx,PA
out dx,al
MOV DX,PC
MOV AL,00H
OUT DX,AL
wait1w: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jz wait1w
MOV DX,PA
MOV AL,07H
OUT DX,AL
MOV CX,2H
DELAY2: DEC CX
LOOP DELAY2
MOV DX,PA
MOV AL,0FH
OUT DX,AL
MOV CX,6H
DELAY3: DEC CX
LOOP DELAY3
MOV DX,PA
MOV AL,1FH
OUT DX,AL
MOV CX,2H
DELAY4: DEC CX
LOOP DELAY4
MOV DX,PA
MOV AL,3FH
OUT DX,AL
MOV CX,2H
DELAY5: DEC CX
LOOP DELAY5
waitw1: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jnz wait1w1
mov al,00000000b
mov dx,PA
out dx,al
MOV DX,PC
MOV AL,00H
OUT DX,AL
wait1w1: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jz wait1w1
MOV DX,PA
MOV AL,7FH
OUT DX,AL
MOV CX,2H
DELAY6: DEC CX
LOOP DELAY6
MOV DX,PA
MOV AL,0FFH
OUT DX,AL
MOV CX,6H
DELAY9:DEC CX
LOOP DELAY9
MOV DX,PC
MOV AL,0
OUT DX,AL
MOV CX,6H
DELAY10:DEC CX
LOOP DELAY10
MOV DX,PA
MOV AL,0
OUT DX,AL
JMP START1
ret
START1 endp
START2 proc near
wait2: MOV DX,PB
IN AL,DX
cmp al,0FBh
jnz wait3
mov al,00000000b
mov dx,PA
out dx,al
MOV DX,PC
MOV AL,00H
OUT DX,AL
wait3: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jz wait3
MOV DX,PC
MOV AL,01H
OUT DX,AL
MOV CX,0EH
DELA8: DEC CX
LOOP DELA8
MOV DX,PA
MOV AL,01H
OUT DX,AL
MOV CX,06H
DELA: DEC CX
LOOP DELA
MOV DX,PA
MOV AL,03H
OUT DX,AL
MOV CX,06H
DELA1: DEC CX
LOOP DELA1
MOV DX,PA
MOV AL,07H
OUT DX,AL
MOV CX,06H
DELA2: DEC CX
LOOP DELA2
wait6: MOV DX,PB
IN AL,DX
cmp al,0FBh
jnz wait7
mov al,00000000b
mov dx,PA
out dx,al
MOV DX,PC
MOV AL,00H
OUT DX,AL
wait7: MOV DX,PB
IN AL,DX
cmp al,0Fbh
jz wait7
MOV DX,PA
MOV AL,0FH
OUT DX,AL
MOV CX,0EH
DELA3: DEC CX
LOOP DELA3
mov dx, PA
MOV AL,1FH
OUT DX,AL
MOV CX,06H
DELA4: DEC CX
LOOP DELA4
MOV DX,PA
MOV AL,3FH
OUT DX,AL
MOV CX,06H
DELA5: DEC CX
LOOP DELA5
MOV DX,PA
MOV AL,7FH
OUT DX,AL
MOV CX,06H
DELA6: DEC CX
LOOP DELA6
MOV DX,PA
MOV AL,0FFH
OUT DX,AL
MOV CX,0EH
DELA9:DEC CX
LOOP DELA9
MOV DX,PC
MOV AL,0
OUT DX,AL
MOV CX,0EH
DELA10:DEC CX
LOOP DELA10
MOV DX,PA
MOV AL,0
OUT DX,AL
JMP START2
ret
START2 ENDP
CODE ENDS
END START
第二篇:基于8086彩灯控制器的课程设计报告
基于8086彩灯控制器的设计
一、引言
1、 8086微处理器
8086微处理器是Intel公司推出的第三代CPU芯片,其内部结构采用16位结构进行操作及存储器寻址。
8086微处理器的一般性能特点:
? 16位的内部结构,16位双向数据信号线;
? 20位地址信号线,可寻址1M字节存储单元;
? 较强的指令系统;
? 利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口; ? 中断功能强,可处理内部软件中断和外部中断,中断源可达256个; ? 单一的+5V电源,单相时钟5MHz。
2、 可编程并行接口芯片8255A
并行通信与接口
? 并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。
? Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。
1
二、课程设计主要内容及目标
1、 主功能:
(1) 黄灯L1亮,延时1.5s;
(2) 红灯L2、L3、L4、L5间隔0.5s依次点亮,延时1.5s;
(3) 绿灯L6、L7、L8、L9间隔0.5s依次点亮,延时1.5s;
(4) 黄灯L1熄灭,延时1.5s;
(5) 红灯L2、L3、L4、L5同时熄灭,延时1.5s;
(6) 绿灯L6、L7、L8、L9同时熄灭,延时1.5s;
(7) 返回初始步,循环显示。
2、 其他功能:
(1) 有清零开关
(2) 可以选择快慢两种节拍
三、系统框图
? 多路彩灯控制器系统框图如下所示:
1
四、硬件电路
五、设计框图
2
六、软件程序
七、结束语
通过本次微机原理与接口技术的课程设计,我们不仅加深了对8086微处理器理论的理解,将理论很好地应用到实际当中去,而且还学会了如何培养创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
八、参考文献
1.《微型计算机原理及接口技术》中国科技大学出版社 吴秀清 周荷琴 编著
2.《16-32位微型计算机技术及应用》清华大学出版社 戴梅萼 史嘉权 编著
3.《汇编语言程序设计》南京大学出版社 姚君遗 编著
4.《汇编语言程序设计教程》清华大学出版社 杨记文 编著
5.《微型计算机原理及接口技术》实验指导书
3