交通信号灯设计.docx
《交通信号灯设计.docx》由会员分享,可在线阅读,更多相关《交通信号灯设计.docx(15页珍藏版)》请在冰点文库上搜索。
交通信号灯设计
基于8086/8088的交通信号灯设计
一、课题训练内容
设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。
要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。
二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)
1.设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:
8086、8259、8253、8255、ADC0809、
温度传感器(可自选)和湿度传感器(可自选)、键盘;
2.交通灯的亮、灭情况如下:
东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;
南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;
3.每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;
4.使用8253提供时间定时;
5.说明书正文不少于13页;
6.提供完整的电路原理图;
7.提供软件流程图与完整的程序;
8.按要求时间提交课程设计。
三、毕业设计(论文)主要参数及主要参考资料
1.
2.
3.
4.
5.
6.电子线路CAD实用教程潘永雄等编著陕西:
西安电子科技大学出版社,2006
微机原理课程设计报告
一、任务分析
基于8086/8088交通信号灯设计主要需要实现这几部分功能,第一,信号灯的通断延时;第二、紧急按键对交通信号灯的控制;第三、环境湿度、温度的采集。
在以往的设计中,采用8253计数器0和计数器1级联实现准确定时,运用较多,这种设计方法,定时范围比较任意,不受条件的限制,不足之处,需要的硬件电路块比较多,结构较复杂,如果运用我们本次设计任务,不利于节约资源。
基于此,我采用了,单级计数器累加定时的简单设计方法。
二、设计思路与步骤
1)、设计内容分析:
根据设计任务书,确定灯亮灭的规律;
a)东西方向红灯亮,南北方向绿灯亮,延续6秒
b)东西方向红灯亮,南北方向黄灯亮,延续6秒
c)东西方向绿灯亮,南北方向红灯亮,延续6秒
d)东西方向黄灯亮,南北方向红灯亮,延续6秒
通过分析灯的亮灭规律,总结出如下功能表:
交通灯亮灭功能表
状态
TIMESUM
EWG
EWR
EWY
SNG
SNR
SNY
无效1
无效2
a
0-6
0
1
0
1
0
0
0
0
b
6-12
0
1
0
0
1
0
0
c
12-18
1
0
0
0
1
0
0
0
d
18-24
0
0
1
0
1
0
0
0
转换成控制码:
十六进制
二进制
状态a
09H
00001010B
状态b
12H
00010010B
状态c
11H
00010001B
状态d
24H
00010100B
东西、南北分别在0-6,、6-12、12-18、18-24时间段的亮灯情况比较
EW
R
R
G
Y
6
12
18
24
SN
G
Y
R
R
三、电路设计思路
1、延时功能实现逻辑:
把8253计数器0设为1s定时中断,周期为0-24秒,用8255的A、B口低12位控制东西、南北路口交通灯的状态;灯的亮灭可直接由8088输出0,1控制。
用8259A管理可屏蔽中断及开机初始化。
计数器0,累计时间与状态时间相比较,从而控制灯的状态改变,达到延时效果。
(图一)
2、译码电路设计
通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。
8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。
故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。
再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。
将8086的地址总线的D0、D1分别与8253和8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。
将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。
具体见下图所示:
(图二)
3、功能模块的确定(如下图三所示)
(图三)
4、总体硬件电路构成框图(见附页1)
5、软件流程图:
(主程序1图四)
(主程序1图四)
主程序2由标志产生输出,流程图(图五)
(图五)
紧急处理程序流程图(图六)
(图六)
各端口地址结果如下表所示:
端口地址
A15
A14
A13
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
8255
A
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
B
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
C
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
控制
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
8253
0通道
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1通道
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
2通道
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
控制
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
8259
偶
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
奇
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
四、程序代码:
CODE SEGMENT
ASSUME CS:
CODE
INTPORT1 EQU 0060H ;定义8259控制口和数据口地址
INTPORT2 EQU 0061H
INTQ3 EQU INTREEUP3 ;定义中断向量
IOCONPT EQU 0FF2BH ;定义8255寄存器地址
IOAPT EQU 0FF28H
IOBPT EQU 0FF29H ;IOBPT控制黄灯
IOCPT EQU 0FF2AH ;IOCPT高四位控制绿灯,低四位控制红灯
TCONTRO EQU 0043H ;定义8253控制口和0通道地址
TCON0 EQU 0040H
ORG 1000H
INTT:
MOVDX,0003H
MOVAL,86H
OUTDX,AL
MORAL,05H
OUTDX,AL
MOVDX,4000H
MOVAL,13H
OUTDX,AL
MOVDX,4001H
MOVAL,40H
OUTDX,AL
MOVAL,03H
OUTDX,AL
MOVAL,0FEH
OUTDX,AL
POUT:
MOVDX,0000H
MOVAL,XXH
OUTDX,AL
WAIT:
STI
JMPWAIT
主程序框架:
CODESEYMENT
MOVAX,DATA
MOVDS,AX
MOVES,AX
LOOP:
INTTIMESUM
MOVAL,6
CMPTIMESUM,AL
JBLIGHT1
CMPTIMESUM,12
JBLIGHT2
CMPTIMESUM,18
JBLIGHT3
CMPTIMESUM24
JBFINISH
MOVTIMESUM,0
FINISH:
IRET
LIGHT1:
PUSHAX
PUSHDX
MOVDX,IOBPT
MOVAL,00H
OUTDX,AX
MOVDX,IOCPT
MOVAL,09H
OUTDX,AL
POPDX
POPAX
RET
LIGHT2:
PUSHAX
PUSHDX
MOVDX,IOBPT
MOVAL,00H
OUTDX,AX
MOVDX,IOCPT
MOVAL,12H
OUTDX,AL
POPDX
POPAX
RET
LIGHT3:
PUSHAX
PUSHDX
MOVDX,IOBPT
MOVAL,00H
OUTDX,AX
MOVDX,IOCPT
MOVAL,11H
OUTDX,AL
POPDX
POPAX
RET
LIGHT4:
PUSHAX
PUSHDX
MOVDX,IOBPT
MOVAL,00H
OUTDX,AX
MOVDX,IOCPT
MOVAL,24H
OUTDX,AL
POPDX
POPAX
RET
紧急处理程序:
DATASEGMENT
TIMESUMDB,0
EWGDB,0
EWRDB,0
EWYDB,0
SNGDB,0
SNRDB,0
SNYDB,0
EWLA=FF00H
SNLA=FF01H
DATAENDS
MOVDX,FF00H
INAL,DX
CMPAL,0
JAPMT
MOVDX,FF01H
INAH,DX
CMPAL,0
JAFINISH
MOVTIMESUM,0
CALLCODESEGMENT
PMT:
MOVTIMESUM,18
CALLCODESEMENT
五、小结与心得体会
通过本次课程设计,我们熟悉了8088、8259、8253、8255、8282、8286、8284以及38译码器和门电路的功能和应用。
学会了用汇编语言设计一个程序的方法。
虽然程序中有一部分是在老师的指导下完成,但我还是通过查书与同学讨论的方式读懂了它的思路。
在这次课程设计的过程中,我无论是在关于微机原理系列的相关知识或在接口芯片的初始化及应用方面还是在利用所学到知识全面设计系统方面收获都很大。
其实,刚拿到设计题目时,自己根本就不知道如何下手,上网查资料,研究别人的设计思路与方法,是我最开始的准备工作,效果不是特别明显,虽说能看懂别人的部分程序,但是,他的设计思路在很多地方,超出了我所掌握的知识范围,不能解释程序设计的缘由。
事后,经过及老师的点拨、讲解、答疑之后发现思路渐渐清晰明了,根据老师的提示,顺藤摸瓜,找到了行之有效的解决问方法。
虽然12盏灯一共有四种不同的亮灭状态,其实只需用8255的A、B口的低六位不同状态即可控制。
针对不同的延时时间,采用8253的计数器0的1s中断,在软件程序作用下,24s周期不断循环,划分时间段状态延时,就可以实现准确定时。
本次课程设计,锻炼了自己软、硬件相互协调的能力。
同时也增强了全面系统考虑问题的能力,以及硬件设计能力。
与此同时,更加深刻领会了自己独立思考以及与人分工协作,交流讨论的必要性,将会对以后的学习和工作产生重要影响。
设计中不足之处:
这个系统用到了8259并编写中断子程序,但是仅仅应用于系统的开机初始化或复位。
对于程序执行并没起到调用中断减轻系统负担的作用,有待改进。
计时功能的实现是通过8086不断查询8255C口状态来实现的,加重了8086的负担不利于系统的快速执行。
设计思路的简易化,只注重了功能的实现,没有进一步思考程序多样化,致使部分程序步骤,重复累赘,形式单一。
硬件连接框架总图,没有利用PROTEL软件来完成,总线的作用简化来电路连接问题不明显,与此同时应用总线时,没有使用标号……总的来说,自己的设计虽实现了功能,但还存在许多不足之处,有待改进,所学知识有待进一步巩固,完善与提高。
六、参考文献
[1]杨长能,张兴毅可编程序控制器(PC)基础应用[M]重庆大学出版社,1999
[2]郑学坚微型计算机原理及应用[M]3版北京:
清华大学出版社2001(2007重印)
[3]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社1999.87-90.
[4]刘乐善.微型计算机接口技术及应用[M].武汉:
华中科技大学出版,2000.
[5]谭云福IBMPC8086/8088宏汇编语言程序设计及实验,北京:
机械工业出版社,1993
[6]杨润生,王敬觉.微型计算机及其应用(基础篇及应用篇).北京:
机械工业出版社,1983
[7]周明德.微机原理与接口技术实验指导与习题集.北京:
人民邮电出版社.2002
[8]载梅萼.微型计算机技术及应用.北京:
清华大学出版社,1991