交通灯控制器系统设计毕业设计.docx
《交通灯控制器系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《交通灯控制器系统设计毕业设计.docx(17页珍藏版)》请在冰豆网上搜索。
交通灯控制器系统设计毕业设计
交通灯控制器系统设计
学生:
XXX指导教师:
XXX
内容摘要:
随着当今世界经济的迅速发展,嵌入式系统在生活中的应用越来越广泛,也是生活中随处可见的,同时嵌入式系统的发展也带动我国传统控制检测日新月异更新。
在实时检测和自动控制的嵌入式应用系统中,嵌入式技术已是一门核心技术,仅嵌入式方面的知识是还不够的,还应该具备硬件结构,以及针对特定对象的软件相结合,加以完善。
十字路口的车辆不停穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来维持这样的秩序呢?
靠的就是交通信号灯的嵌入式系统设计。
交通信号灯控制方式有很多。
本系统采用MSC-51系列单片机Intel8031和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的P1口设置红、绿灯燃亮时间的功能;显示时间直接通过8255的PA、PB口输出;交通灯信号通过PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、容易操作、功能性强。
关键词:
嵌入式交通灯控制器设计实现
Trafficlightcontrollersystemdesign
Abstract:
Withtherapiddevelopmentoftoday'sworldeconomy,theincreasingapplicationofembeddedsystemsineverydaylife,islifeeverywhere,andthedevelopmentofembeddedsystemshasalsoledtotherapidupdateofChina'straditionalcontroldetection.Inreal-timedetectionandautomaticcontrolofembeddedapplications,embeddedtechnologyisacoretechnologyembeddedknowledgealoneisnotenough,shouldalsohavethehardwarestructureandsoftwareforaspecificobjecttobeperfect.
Vehiclesnon-stopshuttlecrossroads,pedestriansbustling,cardealersdriveway,walkways,andorderly.Yourelyontomaintainthisorder?
Relyonembeddedsystemdesignofthetrafficlights.Trafficlightscontrolthewayalot.ThesystemusestheMSC-51seriesofmicrocontrollerstheIntel8031andprogrammableparallelI/Ointerfacechip8255A-centricdevicestodesignatrafficlightcontroller,basedonactualtrafficflowthroughthe8031chipP1outletred,thegreenlighttokindletimefunction;showdirectlythroughthe8255PA,PB,portoutput;trafficlightsignaloutputportthroughthePC;trafficlightslitVTbidirectionalcontroldirectlytoa220VACpowerdrivesystemspractical,easytooperate,functionalandstrong.
Keywords:
EmbeddedTrafficControllerDesignAchieve.
目录
前言1
1交通灯控制器硬件系统的设计1
1.1交通管理的方案论证1
1.2系统硬件设计2
2系统工作原理3
2.1时间初始化3
2.2时间控制3
2.3时间输出4
3交通灯控制器的软件设计4
3.1每秒钟的设定4
3.2计数器硬件延时4
3.2.1计数器初值计算4
3.2.2计算公式4
3.2.3每1秒的方法4
3.2.4相应的程序代码5
3.3软件延时5
3.4时间及信号灯的显示6
3.4.18031并行口的扩展6
3.4.2显示原理6
3.4.38255输出信号的放大6
3.4.48255输出信号与信号灯的连接7
3.4.58255与8031的连接7
4结束语8
附录1:
程序流程图9
附录2:
程序代码10
参考文献14
基于单片机的交通灯控制器系统设计
前言
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
交通信号灯的出现,使交通得以有效管制,对于疏导交通拥挤、提高道路通行能力,减少交通事故有显著效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1交通灯控制器硬件系统的设计
1.1交通管理的方案论证
A、B两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。
设A道比B道的车流量大,指示灯燃亮的方案如表1.1-1。
表1.1-1指示灯燃亮的方案
3
60
3
80
3
60
……
A道
黄灯亮
红灯亮
黄灯亮
绿灯亮
黄灯亮
红灯亮
……
B道
黄灯亮
绿灯亮
黄灯亮
红灯亮
黄灯亮
绿灯亮
……
说明:
▲当为黄灯时A、B两道同时为黄灯;以提示行人或车辆下一个灯色即将到来,时间3秒。
▲当A到为红灯,A道车辆禁止通行,A道行人可通过;B道为绿灯,B道车辆通过,行人禁止通行。
时间为60秒。
▲当A道绿灯,A道车辆通行;B道为红灯,B道车辆禁止通过,行人通行。
时间为80秒。
A道车流大,通行时间长。
这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
此表可根据车流量动态设定。
1.2系统硬件设计
选用设备8031单片机一片选用设备:
8031单片机一片,8255并行通用接口芯片一片,74LS07两片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干,如图1.2-1。
图1.2-1交通灯控制线路
2系统工作原理
2.1时间初始化
开关键盘输入交通灯初始时间,通过8031单片机P1输入到系统
由8031单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC口显示红、绿、黄灯的燃亮情况;由8255的PA、PB口每个灯的燃亮时间。
2.2时间控制
8031通过设置各个信号等的燃亮时间、通过8031设置,黄、绿、红时间依次为3秒、60秒、3秒、80秒、3秒循环由8031的P0口向8255的数据口输出。
通过8031单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。
2.3时间输出
8255口用于输出时间的个位,PB口用于输出时间的十位,由747S07驱动芯片驱动;而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用220V交流电压驱动。
3交通灯控制器的软件设计
3.1每秒钟的设定
延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
3.2计数器硬件延时
3.2.1计数器初值计算
定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:
TC=M-C(3.2.1-1)
式中,M为计数器摸值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M的值为216;在方式2和3为28。
3.2.2计算公式
T=(M-TC)T计数或TC=M-T/T计数(3.2.2-1)
□T计数是单片机时钟周期TCLK的12倍;TC为定时初值
□如单片机的主脉冲频率为TCLK12MHZ ,经过12分频
□方式0 TMAX=213 *1微秒=8.192毫秒
□方式1 TMAX=216 *1微秒=65.536毫秒
显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.
3.2.3每1秒的方法
我们采用在主程序中设定一个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。
在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。
为零表示1秒已到可以返回到输出时间显示程序。
3.2.4相应的程序代码
△主程序
定时器需定时50毫秒,故T0工作于方式1。
初值:
TC=M-T/T计数 =216 -50ms/1us=15536=3CBOH
ORG1000H
START:
MOVTMOD,#01H;令TO为定时器方式1
MOVTH0,#3CH;装入定时器初值
MOVTL0,#BOH ;
MOVIE, #82H;开T0中断
SEBTTRO ;启动T0计数器
MOV RO, #14H ;软件计数器赋初值
LOOP:
SJMP;等待中断
△中断服务子程序
ORG000BH
AJMPBRTO
ORG00BH
BRTO:
DJNZR0,NEXT
AJMPTIME;跳转到时间及信号灯显示子程序
DJNZ:
MOV RO,#14H ;恢复R0值
MOVTH0,#3CH;重装入定时器初值
MOVTL0,#BOH ;
MOVIE, #82H
RET1
END
3.3软件延时
MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。
机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。
我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。
具体的延时程序分析:
DELAY:
MOVR4,#08H延时1秒子程序
DE2:
LCALLDELAY1
DJNZR4,DE2
RET
DELAY1:
MOVR6,#0延时125ms子程序
MOVR5,#0
DE1:
DJNZR5,$
DJNZR6,DE1
RET
MOVRN,#DATA字节数数为2机器周期数为1
所以此指令的执行时间为2ms
DELAY1为一个双重循坏循环次数为256*256=65536所以延时时间=65536*2=131072us约为125us
DELAYR4设置的初值为8主延时程序循环8次,所以125us*8=1秒
由于单片机的运行速度很快其他的指令执行时间可以忽略不计。
3.4时间及信号灯的显示
3.4.18031并行口的扩展
8031虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。
因此,8031通常需要扩展。
由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个I/O端口,显然8031的端口是不够,需要扩展。
扩展的方法有两种:
☆借用外部RAM地址来扩展I/O端口;
☆采用I/O接口新片来扩充,我们用8255并行接口信片来扩展I/O端口。
3.4.2显示原理
当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。
3.4.38255输出信号的放大
要使行人能看见信号灯的情况,必须把8255输出的信号进行放大,这里我们用VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时关断,该支路指示灯灭。
我们用连接7段数码管的方法来连接晶闸管
3.4.48255输出信号与信号灯的连接
LED灯的显示原理:
通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如SPg,f,e,d,c,b,a管角上加上7FH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8
采用共阴级连接方式:
其中PA0\PB0-a,
PA1\PB1-b,
PA2\PB2-c,
PA3\PB3-d,
PA4\PB4-e,
PA5\PB5-f,
PA6\PB6-g
PA7\PB7-SP接地
表3.4.4-1驱动代码
显示数值
pgfedcba
驱动代码(16进制)
0
00111111
3FH
1
00000110
06H
2
01011011
5BH
3
01001111
4FH
4
01100110
66H
5
01101100
6DH
6
01111100
7DH
7
00000111
07H
8
01111111
7FH
3.4.58255与8031的连接
用8031的P0口的p0.7连接8255的片选信号cs我们用8031的地址采用全译码方式,当p0.7=0时片选有效,其他无效,p0.1p0.1用于选择8255端口
P0.7p0.6p0.5p0.4p0.3p0.2P0.1P0.0
A7A6A5A4A3A2A1A0
1XXXXX0000H为8255的PA口
1XXXXX0101H为8255的PB口
1XXXXX1002H为8255的PC口
1XXXXX1103H为8255的控制口
由于8031是分时对8255和储存器进行访问所以8031的P0口不会发生冲突
4结束语
通过这次的课程设计,我不仅加深了对书本理论知识的理解,将书本理论知识很好的和现实东西相互结合运用,而且还学到了书本上没有的东西。
使之不断地战胜别人,超越前人。
同时,更重要的是,我在这一设计过程中,学会了坚持不懈。
设计过程,这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。
在设计过程中,我也积累了多次失败的经验。
比如,自己对实际生活中的交通秩序不是很了解给设计也造成了一定的困难,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,结果并不是很重要,我们应该注重的是这一整个过程。
于是,我坚持了下来。
当然最终,这个设计比较成功的。
在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。
成本的高低也决定了产品的适用性。
感谢我们的指导老师XX,他的严谨细致、一丝不苟的作风一直是我工作、学习中的好榜样;老师循循善诱的教导和不拘一格的教学方式个、给予我无尽的启迪:
课程设计的每个细节都离不开老师的细心指导。
你爽朗的个性和宽容的态度,更好的帮助了我顺利的完成这次课程设计。
也感谢帮助过我的同学们,谢谢你们的热情帮助和支持,让我更加懂得友谊的珍贵。
难免在设计过程中会遇到一些错误,恳请老师们多多指教,我十分愿意接受你们的批评和指正。
附录1:
程序流程图
附录2:
程序代码
R4存放黄灯时间303H(此时间可以动态设定)
R5存放红灯时间603CH
R6存放绿灯时间8050H
PC0显示黄灯信号
PC1显示红灯信号
PC2显示黄灯信号
工作于方式0
8255PA、PB、PC口输出PC控制字为10000000B(80H)
程序源代码:
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVR1,#03H初始化8255
MOVA,#80H
MOVX@R1,A
AGAIN:
MOVP3,#80H设置初值
MOVA,P3
JBACC.7,NEXT0
AGAIN1:
MOVP3,#40H
MOVA,P3
JBACC.6,RED
MOVP3,#0FH
MOVA,P3
ANLA,#0FH
MOVR3,A
AJMPAGAIN1
RED:
MOVP3,#0FH
MOVA,P3
ANLA,#0FH
MOVR2,A
AJMPAGAIN
NEXT0:
MOVR1,#03H
NEXT1:
MOVDPTR,#TAB显示黄灯个位
MOVA,R1
MOVCA,@A+DPTR
MOVR1,#00H
MOVX@R1,A
MOVR1,#O
MOVDPTR,#TAB显示黄灯十位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#01H
MOVX@R1,A
MOVDPTR,#0C62H显示黄灯信号
MOVA,#00H
LCALL0F4E0H
ACALLDELAY
DJNZR0,NEXT1
MOVA,R3
MOVR0,A
NEXT2:
MOVDPTR,#TAB显示红灯个位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#00H
MOVX@R1,A
MOVDPTR,#TAB显示红灯十位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#01H
MOVA,R0
MOVX@R1,R0
MOVR1,#02H显示红灯信号
MOVA,#02H
MOVX@R1,A
ACALLDELAY延时1秒
DJNZR0,NEXT2
MOVA,R2
MOVR0,A
NEXT3:
MOVDPTR,#TAB显示绿灯个位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#00H
MOVX@R1,R0
MOVDPTR,#TAB显示绿灯十位
MOVA,R0
MOVCA,@A+DPTR
MOVR1,#01H
MOVA,R0
MOVX@R1,R0
MOVR1,#02H显示绿灯信号
MOVA,#02H
MOVX@R1,A
ACALLDELAY延时1秒
DJNZR0,NEXT3
AJMPNEXT0
DELAY:
MOVR4,#08H延时1秒子程序
DE2:
LCALLDELAY1
DJNZR4,DE2
RET
DELAY1:
MOVR6,#0
MOVR5,#0
DE1:
DJNZR5,$
DJNZR6,DE1
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
参考文献:
[1]谢自美:
电子线路设计·实验·测试(第二版),华中科技大学出版社,2002,P23-P34
[2]欧大生、杨杉:
电路设计与制板——ProtelDXP实用教程,西安电子科技大学出版社,2004,P45-P56
[3]沙占友:
智能传感器系统的设计,电子工业出版社,2004.06,P34-P45
[4张庆双:
电源应用电路集萃,机械工业出版社,2005,P56-78
[5]康华光、陈大钦:
电子技术基础(第四版),高等教育出版社,1999,P89-P101
[6]常健生:
检测与转换技术,机械工业出版社,2003.01,P56-P65
[7]陈德福、林君:
智能仪器,机械工业出版社,2005.02,P78-P98
[8]张志锐:
数字电路设计与实际电路,华南理工大学出版社,1988.10,P23-P24
[9]邹延:
使用电子电路手册,北京高级教育出版社,1988.11,P67-P73
[10]任为民:
电子技术基础课程设计指导,中央广播电视大学出版社,1997.5,P45-P47
[11]秦娟娟、吴年祥:
基于单片机的智能控制应用设计,安徽理工大学,2011.12,P19-P23
[12]伍建阳:
饮水机制造基础,机械工业出版社,1999.1,P59-P61
[13]杨素行:
模拟电子技术基础简明教程,高等教育出版社,2006.5,P2-P3
[14]高吉祥:
电子技术基础实验与课程设计,电子工业出版社,2011.4,P23-P25
[15]姜忠良、陈秀云:
温度的测量与控制,清华大学出版社有限公司,2005,P100-P110