微机课程设计交通灯Word文档下载推荐.docx
- 文档编号:21914892
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:21.31KB
微机课程设计交通灯Word文档下载推荐.docx
《微机课程设计交通灯Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机课程设计交通灯Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
程序清单...............................................................................................
8
第三章总结与展望..........................................................................
14
3.1
设计中遇到的问题.....................................................................
3.2
总结与展望.................................................................................
15
参考文献............................................................................................
第一章系统概要
1.1设计目的
通过该设计,掌握8255并行接口芯片的使用和数码管的使用,并掌握相应的程序
设计和电路设计的技能。
是对8255并行接口芯片章节理论学习的总结和补充,为后续
的硬件课程的学习打下基础。
1.2设计内容
南北方向和东西方向的红绿黄灯由对应的2组LED表示,这6个LED灯由8255端
口A控制。
1.3基本要求
1、交通灯分红黄绿,红灯禁止通行,黄灯减速,绿灯通信。
开始南北方向绿灯亮
(东西方向应立即变为红灯),时间为60秒,时间到0后,黄灯亮3秒后(东西方向红灯的时间为63秒),红灯亮,红灯为33秒。
东西方向绿灯为此0秒,黄灯为3秒。
2、延时1秒可以采用软件延时实现。
3、8255端口A与LED连接图如右:
4、8255A控制数码管的原理。
1.4基本原理
在KB-C板上,端口A负责发按键扫描信息,端口C的低3位,即PC0、PC1、PC2,负责接收扫描结果,如下图所示,先定时通过端口A(PA0,PA1,PA2,PA3,PA4,PA5)
扫描各按钮,即先PA0=0,其它为1发信号,然后PA1=0,其它为1,端口发出1个信号后,即读端口C,如果PC0,PC1,PC2全为高电平,说明无按钮按下,如果PC0为低
电平(PC1,PC2肯定为高电平),且此时,端口扫描的情况是:
PA0=1,PA1=0,PA2=1,
则说明SW1被按下。
第二章电路设计和编程
2.1电路设计
本实验用到了8255A芯片,它是Intel系列中的并行接口芯片。
由于它是可编程的,可以通过软件来设置芯片的工作方式,所以,用它连接外部设备时,通常不需要再附加外部电路。
8255A有三个8位的端口A,端口B,端口C。
在方式0下工作时,它们都是基本的输入输出口,要注意该方式下是单向传输的。
8255A的控制字如下图所示
1
D6
D5
D4
D3
D2
D1
D0
其中:
D6D5是A组方式选择,00为方式0,01为方式1,1×
为方式2
表端口A工作方式,
0为输出,1为输入
表示PC7-PC4,1为输入,0为输出
表B组方式选择,0为方式0,1为方式1
表端口B工作方式,1为输入,0为输出
表示PC3-PC0,1为输入,为输出
本实验中用到了
8255A的端口A,端口C、端口C它们都工作在方式
0下,因此
控制字为
80H。
端口B与数码管相连用来作交通灯的倒计时,而端口C用来控制数码
管是否被选中,端口A用来表示交通灯的二极管是否亮。
电路图1-1:
a
PC0
PA0
PC1
绿灯
b
PA1
PC2
黄灯
c
PA2
PC3
红灯
d
PA3
PC4
e
PA4
PC5
f
PA5
PC6
g
PA6
PC7
PA7
s0
CS
PB4
300H~303H
s1
图1-1
s2
PB5
8255A
PB6
实验台上的七段数码管为共阴型接法,段码采用同相驱动方式,输入端加高电平时被选中的数码管亮,位码加反相驱动器,位码输入端为高电平表示该位被选中。
如下表所示就是我们实验要用到的七段数码管的字型代码表,在程序中通过查这个字型代码表就可以将八进制的代码顺利转换成十六进制的代码。
显示
段码
字形g
3fH
06H
2
1
5bH
4fH
4
66H
6dH
7dH
07H
7fH
9
6fH
A
77H
B
7CH
C
39H
D
5EH
E
79H
F
71H
如何通过8255控制多位的LED显示计时来显示红绿灯(要求以秒倒计时,延时尺度的把握要恰到好处)
2.2解决方法
(1)采用“扫描”技术,具体实现是这样的:
约定左数码管显示个位数值右数码管显示十位数值。
先令个位数码管显示有效并显示当前个位数值,经适当延时后,令十位数码管显示有效并显示当前十位数值,
重新回到个位的显示,循环。
这样一来,虽然电脑处理速度很快,因为人眼的视觉惰性,个位数码管显示停止后,给人眼的视亮度感觉并不会马上消失,这时加上合
适的延时再让十位数码管显示,就能达到“同时”显示个位和十位的目的,最后不断循环显示个位十位,就能使数码管一直显示这个两位数。
(2)经过多次实验发现,一次扫描显示程序段前后加上:
MOVSI,1000H
DECSI
JNZP
恰能实现近似一秒的延时。
(3)逐条指令调试时发现如下错误(具体程序见后程序附件),经老师指导、组员一起讨论,最终找到了解决方法:
2、8255控制字设计设计出各自8255的控制字。
2.3程序设计
2.3.1主程序流程图详细说明
1.东西方向车辆放行63秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮
60秒
钟;
60秒钟后,东西方向的黄灯亮3秒钟,以警示车辆将切换红绿灯。
此时南北方向仍维持红灯点亮。
在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从50减为0。
2.东西方向的黄灯闪烁3秒钟后,转为南北方向放行30秒钟。
即东西方向的红灯和南北方向的绿灯同时点亮27秒钟;
27秒钟后,南北方向的黄灯亮3秒钟,以警示车辆将切换红绿灯。
此时东西方向仍维持红灯点亮。
在东西方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从30减为0。
如此循环重复。
2.3.2主程序流程图
主程序流图如下:
开始
东西向绿灯亮,南北向红灯亮,60秒
东西向黄灯亮,南北向红灯亮,3秒
东西向红灯亮,南北向绿灯亮,27秒
东西向红灯亮,南北向黄灯亮,3秒
2.3.3程序清单
DATASEGMENT
BUFDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,303H
MOVAL,80H
OUTDX,AL
MOVAH,60H
MOVBX,OFFSETBUF
RGP:
RG0:
MOVAL,AH
ANDAL,00001111B
XLAT
MOVDX,301H
MOVDX,302H
MOVAL,0
MOVCX,1000H
RG1:
LOOPRG1
MOVDX,300H
MOVAL,01100110B
RG2:
LOOPRG2
MOVCL,4
SHRAL,CL
MOVAL,10H
RG3:
LOOPRG3
RG4:
LOOPRG4
JNZRG0
SUBAL,1
DAS
MOVAH,AL
CMPAH,3
JARGP
RYP:
RY0:
RY1:
LOOPRY1
MOVAL,01100101B
RY2:
LOOPRY2
RY3:
LOOPRY3
RY4:
LOOPRY4
JNZRY0
CMPAH,0
JARYP
MOVAH,30H
GRP:
GR0:
GR1:
LOOPGR1
MOVAL,11000011B
GR2:
LOOPGR2
GR3:
LOOPGR3
GR4:
LOOPGR4
JNZGR0
JAGRP
YRP:
YR0:
YR1:
LOOPYR1
MOVAL,10100011B
YR2:
LOOPYR2
YR3:
LOOPYR3
YR4:
LOOPYR4
JNZYR0
JAYRP
JMPSTART
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
第三章总结与展望
3.1设计中遇到的问题
问题1:
由于对交通灯的规则不是特别清楚,照成所写的程序与正确的交通灯显示有
误差,正确的思想应该是有一个方向的红绿灯来控制另一个方向的红绿灯,并且红绿转换的时候要通过黄灯闪烁来提示。
问题2:
据AL及BX指向数据表查表换值后,AL中并没有取到正确的所需段码。
原因解释:
查表换值前AL当中的值为16进制的值,而要实现正确的循环查表换值,必须对AL当中的值进行BCD码的转换。
解决方法:
通过DAS指令实现AL寄存器中的值的BCD码转换。
问题3:
正确将上一计数值个位十位段码先后写入8255A端口后,经过近似一
秒的延时,只写入了下一计数值的个位段码,电路实现时就只显示出了个位的值。
由于实验设施的限制,两位数的显示要靠
”扫描”来实现,具体”扫描”
显示的实现见问题
(1)的解决方法。
经过近似一秒的延时后,先写入下一计数值的个位段码,经扫描延
时,再写入十位的段码值。
2、8255控制字设计:
根据要求,设计出各自
8255的控制字。
3、程序设计:
根据要求,设计程序流程图,并设计相应的程序。
4、验证:
在实验室具体测试和验证。
主程序流图详细说明:
即东西方向的红灯和南北方向
的绿灯同时点亮27秒钟;
27秒钟后,南北方向的黄灯亮3秒钟,以警示车辆将切换红绿灯。
此时东西方向仍维持红灯点亮。
在东西方向亮红灯期间,在2位数码管上显示计数值(每秒
减1),从30减为0。
如此循环重复。
3.2总结与展望
本次课程设计是对我们基础知识的上机做起,根据实验指导书的的要求,需要自己编写程序和接线等,在老师的指导下,终于完成了该实验的所要要求。
在设计中由于对编程技巧的不熟悉跟对交通灯的需求的分析,需要大量时间、实
验,同时在遇到问题时相互讨论,帮助、、、、、、在这样的反复磨合下,我们失败又成功,
又因为系统的不稳定成功又失败。
终于,老师要求的全部内容都得以实现,组里的成员都觉得心里很充实。
这是我们大学学习当中少有的实践课程,是我们将学到的理论知识实际化的一次有收获的生产。
在以后的有关系统设计开发当中,这次实践的内容会是我们很好的借鉴与学习的经历。
在整个系统修改的过程中,明显感觉到自己动手能力不强,自己想的总是不那么快的容易实现,但也因为如此,学到了不少的问题的分析和解决的能力。
最明显的一点是,在运行时如果再出现问题就没以前那么烦躁,反而变得冷静而乐观:
问题不大。
参考文献
[1]戴梅萼.微型计算机技术及应用[M].北京:
清华大学出版社,2008.3[2]刘永华.微机原理与接口技术[M].中国:
清华大学出版社,2006.8[3]李响初.数字电路基础与应用[M].机械工业出版社,2008.10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 课程设计 交通灯
![提示](https://static.bdocx.com/images/bang_tan.gif)