交通灯.docx
- 文档编号:5448426
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:15
- 大小:121.28KB
交通灯.docx
《交通灯.docx》由会员分享,可在线阅读,更多相关《交通灯.docx(15页珍藏版)》请在冰豆网上搜索。
交通灯
目录
1、设计目的………………………………………2
2、设计要求………………………………………2
3、设计具体实现…………………………………2
3.1芯片选择及端口选择……………………2
3.2芯片介绍…………………………………3
3.3LED红绿灯显示…………………………6
3.4设计思想…………………………………7
3.5设计流程图………………………………8
4、主程序设计……………………………………9
5、结论与展望……………………………………14
六、课程设计总结…………………………………15
七、参考文献………………………………………16
一、设计目的
1.了解交通灯管理的基本工作原理
2.熟悉8259A中断控制器的工作原理和应用编程
3.熟悉8255A并行接口的各种工作方式和应用
4.熟悉8253计数器/定时器的工作方式及应用编程,
掌握利用软硬件相结合定时的方法
5.掌握多位LED显示问题的解决
二、设计要求
本次课程设计的内容为交通信号灯的实时控制和管理。
具体要求如下:
1.东西方向车辆放行60秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮1分钟;
2.1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。
此时南北方向仍维持红灯点亮。
在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从65减为0。
3.东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。
即东西方向的红灯和南北方向的绿灯同时点亮20秒钟;
4.南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮,从25减为0。
5.南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。
如此循环重复。
三、设计的具体实现
3.1芯片选择及端口选择
1、用8255A实现对信号灯的控制(所用端口自定);2位数码显示。
2、用8253的计数器2定时向主片8259A的IRQ7请求中断,以实现要求的30秒钟、5秒钟和20秒的定时。
8253计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V;定时采用软硬件相结合的方式实现。
3、用发光二极管模拟红绿灯。
注:
8259A的端口地址为:
218H、219H
8255A的端口地址为:
端口A-200H、端口B-201H、
端口C-202H、控制端口-203H
8253的端口地址为:
计数器0-208H、计数器1-209H、
计数器2-20aH、控制寄存器0-20bH。
3.2芯片介绍
1)8259A芯片简述
1、Intel8259A是可编程中断控制器PIC
2、可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断
3、8259A的基本功能
✧一片8259A可以管理8级中断,可扩展至64级
✧每一级中断都可单独被屏蔽或允许
✧在中断响应周期,可提供相应的中断向量号
✧8259A设计有多种工作方式,可通过编程选择
8259A的内部结构如图1:
图18259A内部结构
2)8255芯片简述
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,+5V单电源供电。
1.8255能在三种方式下工作:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
2.8255各引脚功能为:
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)—写输入信号;
RD(低电平有效)—读输入信号;
CS(低电平有效)—片选输入信号;
A0、A1—片内寄存器选择输入信号;
PA7~PA0—A口外设双向数据线;
PB7~PB0—B口外设双向数据线;
PC7~PC0—C口外设双向数据线;
RESET—复位输入信号
8255A的内部结构如图2:
图28255A内部结构
3.8255端口地址
A口的端口地址为60H
B口的端口地址为61H
C口的端口地址为62H
控制寄存器的端口地址为63H
3)8253芯片简述
8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHz,它所有的技术方式和操作方式都通过编程控制。
1.8253有六种工作方式:
方式0:
计数结束中断
方式1:
可编程频率发生器
方式2:
频率发生器
方式3:
方波频率发生器
方式4:
软件触发的选通信号
方式5:
硬件触发的选通信号
2.8253引脚图如图3所示,各引脚功能如下:
D7~D0—八条双向数据线;
WR(低电平有效)—写输入信号;
RD(低电平有效)—读输入信号;
CS(低电平有效)—片选输入信号;
A0、A1—片内寄存器地址输入信号;
CLK—计数输入,用于输入定时基准脉冲或计数脉冲;
OUT—输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE—选通输入,用于启动或禁止计数器的操作,以使计数器和计测对象同步。
8253内部结构如图4:
图48253内部结构
3.8253端口地址
计数器0的端口地址为40H;
计数器1的端口地址为41H;
计数器2的端口地址为42H;
控制寄存器的端口地址为43H
3.3LED红绿灯显示
十字路口的交通灯分布示意图如图5所示,将这12个交通灯进行编号。
图5十字路口交通灯分布示意图
这12个交通灯共有四个状态:
状态1(S1):
东西红灯(4、10)亮,南北绿灯(3、9)亮
状态2(S2):
南北黄灯(2、8)亮,东西仍为红灯(4、10)亮
状态3(S3):
南北红灯(1、7)亮,东西绿灯(6、12)亮
状态4(S4):
东西黄灯(5、11)亮,南北仍为红灯(1、7)亮
3.4设计思想
设计数器0的计数初值为25000,由于CLK0接脉冲信号,频率为2.5MHZ,所以每10ms中断一次。
利用CX对不同的状态时间计数,用来实现计数器0对1分钟,20秒钟,5秒钟的定时。
中断子程序分为数码显示刷新部分和红绿黄灯各种状态切换部分。
每进入中断即刷新LED显示。
用对于东西车道和南北车道黄灯闪烁利用标志位判断实现,满足比较条件就暗,不满足条件就亮。
3.5设计流程图
图6主程序流程图
四、主程序设计
⒈本次设计中
1)选用8253的计数器0定时向实验系统主片8259A的IRQ0请求中断。
2)设置8253的计数器0每10ms请求一次中断,工作于模式3;
3)8255的A端口控制交通灯。
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
初始化程序:
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;0-9的段选码
D1 EQU218H;8259A端口地址
D2 EQU219H
EA EQU200H ;8255端口地址A
CONTROLEQU20bH ;8253端口地址
COUNT0 EQU208H
COUNT1 EQU209H
COUNT2 EQU20aH
Z8279 EQU222H
D8279 EQU220H
LEDMOD EQU00;左边输入,八位显示外部译码八位显示
LEDFEQ EQU38H ;扫描频率
DATAENDS
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
代码段
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
CONT DB0
CONT1 DB0
CONT2 DB0
BKSD DB0
BKAD DB0
BKDA DB0
TEMP DB0
START:
MOVAX,0
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,2000H
MOVSI,0FH*4
MOV[SI],AX
MOVAX,0
MOV[SI+2],AX
INAL,218H
ANDAL,7FH
OUT219H,AL
CLI;中断标志位清0
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
初始化8255
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
MOVAL,80H ;初始化8255
OUTEE,AL
MOV DX,218H ;8259初始化
MOV AL,00010010B
OUT DX,AL;ICW1的设置
MOV AL,08H
MOV DX,219H
OUT DX,AL;ICW2的设置
MOV DX,203H
MOV AL,80H
OUT DX,AL;设置为全输出
MOV DX,200H
MOV AL,0FFh
OUT DX,AL ;清LED
MOV DX,200H ;全红
MOV AL,0F0H
OUT DX,AL
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
初始化8253
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
MOVAL,00110110B ;初始化8253
OUTCONTROL,AL
MOVAX,25000
MOVDX,COUNT0
OUTDX,AL
MOVAL,AH
OUTCOUNT0,AL;设置通道0初值
MOVAX,DATA
MOVDS,AX
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
中断服务程序:
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
A1:
STI;关闭中断
HLT;停机指令
JMPA1
JMPCOMPARE
COMPARE:
CMPDL,0
JZSTATE0
CMPDL,1
JZSTATE1
CMPDL,2
JZSTATE2
CMPDL,3
JZSTATE3
STATE0:
MOVAL,01011010B ;状态0:
东西红灯,南北绿灯
OUTEA,AL
DECSI
JNZCHANGE1
DECDH
MOVSI,100
JMPCHANGE
CHANGE1:
DECCX
CMPCX,0
JNZM0
MOVCX,500
STATE1:
DECDI ;状态1:
东西方向黄灯闪烁,南北绿灯
CMPDI,0
JNZSHINE1
MOVAL,00001010B ;东西灭,南北绿
OUTEA,AL
MOVDI,50
JMPCHANGE
SHINE1:
MOVAL,11111010B ;东西黄,南北绿
OUTEA,AL
CHANGE:
DECSI
JNZCHANGE2
DECDI
MOVSI,100
CHANGE2:
DECCX
CMPCX,0
JNZM1
MOVCX,2000
MOVDH,25
STATE2:
MOVAL,10100101b ;状态2:
东西绿灯,南北红灯
OUTD2,AL
DECSI
JNZCHANGE3
DECDH
MOVSI,100
CHANGE3:
DECCX
CMPCX,0
JNZM2
MOVCX,500
STATE3:
DECDI ;状态3:
东西绿灯,南北黄灯闪烁
CMPDI,0
JNZSHINE2
MOV AL,10100000B ;东西绿灯,南北灭
OUTD2,AL
MOVDI,50
JMPSOURCE
SHINE2:
MOVAL,10101111B ;东西绿,南北黄
OUTD2,AL
SOURCE:
DECSI
JNZCHANGE4
DECDH
MOVSI,100
CHANGE4:
DECCX
CMPCX,0
JNZM3
MOVCX,6000
MOVDH,65
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
执行跳转回到主程序
准备下一次循环
﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎
M0:
MOVDL,0 ;下次进入状态0
JMPEXIT
M1:
MOVDL,1 ;下次进入状态1
JMPEXIT
M2:
MOVDL,2 ;下次进入状态2
JMPEXIT
M3:
MOVDL,3 ;下次进入状态3
EXIT:
MOVAL,20H
MOVDX,218H
OUTDX,AL
IRET;中断返回
CODEENDS
ENDSTART
五、结论与展望
要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们的成长的历程,常有一些不如意,难免会遇到各种各样的问题。
通过这次课程设计是我对单片机的工作原理有了基本了解,知道了单片机的工作过程和数据传输的方向,课程设计是我们深入学习的敲门砖,对我们以后的学习和工作有很大的帮助。
六、课程设计总结
在本次设计中,使用了8259A中断控制器、8253计数器、8255可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,但是程序没有实现对双向交通的数码显示。
十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受人为因素的影响。
采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
目前,有一种使用“模糊控制”技术控制交通灯的方法。
能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。
但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。
本次课程设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。
通过微机原理课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。
于是,我坚持了下来。
课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.
七、参考文献
1沈美明等.IBMPC/XT汇编语言程序设计.清华大学出版社.1999
2姚君遗.汇编语言程序设计.南京大学出版社.2001
3孙德文.微型计算机技术.高等教育出版社.2001
4戴梅萼.微型计算机技术及应用.清华大学出版社.1996
5周明德.微型计算机系统原理及应用.清华大学出版社.1998
6陈涛.16/32位微机原理、汇编语言及接口技术.机械工业出版社.2001
7徐晨等.微机原理及应用.高等教育出版社.2004
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯