1、十字路口交通灯模拟一、设计题目:十字路口交通灯模拟二、交通灯的形成 2.1当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两色旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组
2、成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号
3、,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。我们设计的单片机控制交通灯就是基于信号灯。2.2技术指示 设计一个十字路口(方向为东西南北四个方向)的交通灯控制电路,每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯表示该道路允许通行。该电路
4、自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。2.3 任务要求 设计一个交通灯系统,通过单片AT89C5并接数码管及发光二极管来模拟交通灯的变化规律,8个数码管用来显示秒值,东西南北各两个,6个发光二极管,东西南北各三个,分为红绿黄三种颜色。设计思路,首先东西方向绿灯亮,南北方向红灯亮,同时开始计时20s,在7段数码管上显示时间。当20s倒计时结束后,开始3s倒计时,并且东西方向绿灯开始闪烁,南北方向红灯亮。当3s倒计时结束后再开始2s倒计时,并且东西方向黄灯亮,南北方向还是红灯亮。当2s倒计时结束后开始20s的倒计时,此时是南北方向绿灯亮,东西方向红灯亮。接下来就是南北
5、方向绿灯闪烁3s,再南北方向黄灯闪烁2s,接着又开始循环。要求设计出电气原理图、要求设计出程序流程图、要求设计出程序 电路原理图三、软件设计流程及描述3.1设计方案思想 先了解交通灯的变化规律,假设这个十字路口为东西南北走向。转状态1东西绿灯通行,南北红灯禁行。过20s转状态2,南北仍然红灯,东西绿灯闪烁3s后转为黄灯亮2s。再转状态3,南北变为绿灯通行,东西变为红灯禁行。过20s转状态4,东西仍然红灯,南北绿灯闪烁3s转黄灯亮2s。最后回到状态1,不断循环。 系统统采用MSC-51系列单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过单片机芯片的P1口控制红、黄、绿灯的燃亮与熄灭
6、;P0口外接数码管来显示各个信号灯的时间。3.2设计要求流程图设计流程图 以上设计流程图,在编制主程序流程图和编写程序源代码的时候,以此作为参考。程序开始时状态一为东西绿灯亮南北红灯亮,延时并倒计时;然后进入第二个状态东西绿灯闪南北红灯亮,延时倒计时结束后再改变状态,第三个状态为东西黄灯亮南北红灯亮,延时。第四个状态东西变为红灯,南北变为绿灯,这是东西禁行,南北通行。第五个状态东西依然红灯亮,南北绿灯闪烁,倒计时。第六状态东西不变还是红灯,东西绿灯亮,南北红灯亮,东西红灯亮,南北黄灯亮,东西红灯亮,南北绿灯闪,东西红灯亮,南北绿灯亮,东西黄灯亮,南北红灯亮,东西绿灯闪,南北红灯亮,9开始关闭T
7、0,设置时间初值,初值送缓冲单元,初值递减,初值减到0返回,拆分程序调用显示子程序南北黄灯亮。依次按照设计流程图进行下去,一个周期结束后马上进入现已周期,依次循环。3.3主程序流程图 Y 中断流程图中断响应保护现场 四、 程序如下 : ORG0000H LJMPMAIN ORG000BH AJMPTIME0 ORG0040HMAIN:MOVSP,#70H MOV40H,#14H;东西绿灯显示时间20S MOV41H,#14H;南北绿灯显示时间20S MOV42H,#02H;黄灯显示时间2S MOV39H,#03H;绿灯闪烁时间START: MOVA,41H ADDA,42H ADDA,39H
8、MOV43H,A;东西红灯时间 MOVA,40H ADDA,42H ADDA,39H MOV50H,A;南北红灯时间 MOVTMOD,#01H;开始正常工作状态 MOVTH0,#3CH MOVTL0,#0B0H;定时50ms SETBEA;开始计时 SETBET0;开T0中断 SETBTR0;启动定时器T0 STATUS1: MOVP1,#84H;东西绿灯亮20秒,南北红灯亮 MOV44H,40H MOV45H,50HJ11: MOVR4,#14HJ10: LCALLDISP MOVA,R4 JNZJ10 DEC44H DEC45H MOVA,44H JNZJ11 STATUS2: MOVP1
9、,#84H;东西绿显示3秒,南北红灯亮 MOVR3,39HJ21:MOV44H,R3 MOVR4,#0AHJ20:LCALLDISP MOVA,R4 JNZJ20 MOVP1,#04H MOVR4,#0AHJ23:LCALLDISP MOVA,R4 JNZJ23 MOVP1,#84H LCALLDISP DEC44H DEC45H DJNZR3,J21 STATUS3: MOVP1,#44H;东西黄灯显示2秒,南北红灯亮 MOVR3,42H MOV44H,R3J31:MOVR4,#14HJ30:LCALLDISP MOVA,R4 JNZJ30 DEC44H DEC45H DJNZR3,J31
10、STATUS11:MOVP1,#30H;南北绿灯亮20秒,东西红灯亮 MOV44H,43H MOV45H,41HJ111:MOVR4,#14HJ110:LCALLDISP MOVA,R4 JNZJ110 DEC44H DEC45H MOVA,45HJNZJ111 STATUS22: MOVP1,#30H;南北绿闪烁3秒,东西红灯亮 MOVR3,39HJ222:MOV44H,R3 MOVR4,#0AHJ220:LCALLDISP MOVA,R4 J NZJ220 MOVP1,#20H MOVR4,#0AHJ221:LCALLDISP MOVA,R4 JNZJ221 MOVP1,#30H LCAL
11、LDISP DEC44H DEC45H DJNZR3,J222 STATUS23: MOVP1,#28H;南北黄2秒,东西红灯亮 MOVR3,42HJ232:MOV44H,R3 MOVR4,#0AHJ230:LCALLDISP MOVA,R4 JNZJ230 MOVP1,#20H MOVR4,#0AHJ231:LCALLDISP MOVA,R4 JNZJ231 MOVP1,#28H LCALLDISP DEC44H DEC45H DJNZR3,J232 AJMPSTATUS1 DISP:MOVA,44H MOVB,#0AH DIVAB MOV46H,A;46H,47H存储东西方向显示的十位、个
12、位数 MOV47H,B MOVA,46H MOVDPTR,#TAB MOVCA,A+DPTR MOV46H,A MOVA,47H MOVDPTR,#TAB MOVCA,A+DPTR MOV47H,A MOVA,45H MOVB,#0AH DIVAB MOV48H,A;48H,49H存储南北方向显示的十位、个位数 MOV49H,B MOVA,48H MOVDPTR,#TAB MOVCA,A+DPTR MOV48H,A MOVA,49H MOVDPTR,#TAB MOVCA,A+DPTR;依次送字形码,字位信号 MOV49H,A MOVP0,46H MOVP2,#11110111B LCALLDE
13、LAY MOVP2,#0FFH MOVP0,47H MOVP2,#11111011B LCALLDELAY MOVP2,#0FFH MOVP0,48H MOVP2,#11111101B LCALLDELAY MOVP2,#0FFH MOVP0,49H MOVP2,#11111110B LCALLDELAY MOVP2,#0FFHRET DELAY:MOVR7,#06H;延时12us程序HERE:DJNZR7,HERERETTIME0:CLRTR0;定时器溢出中断服务程序 PUSHACC PUSHPSW DECR4 MOVTH0,#3CH MOVTL0,#0B0H SETBEA SETBET0
14、SETBTR0 POPPSW POPACCRETI TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴极数码 管字形码 END 五、体会总结 这一次做课程设计,刚拿到题目的时候很茫然,不知道从什么地方下手,也不知道该怎么做。通过对设计题目和要求的反复琢磨,咨询了指导老师,参考了很多资料后,了解了设计的大概,并且对此次课程设计也有了大体的思路。在做的过程中,我遇到了很多困难,比如对知识的不深入,让我不得不查阅很多资料,花费很多时间理解每一个难关。在不懈的努力下终于完成了此次课程设计。通过这次课程设计,加强了我思考、解决问题和动手的能力。电路原理和连接,和芯片上的选择,也懂得了一些。巩固数字逻辑电路的理论知识,并对芯片有了新的认识,懂得它的功能与其它芯片替换等。更重要的是如何将逻辑电路灵活运用于实际生活。协作的重要性。我懂得做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完课程设计,很多问题都解决了,而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践。这次的实践后,让我获益匪浅。经过这次课程设计,也让我更加深刻的认识到学好单片机的重要意义。7