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