单片机实现的交通灯设计_第1页
单片机实现的交通灯设计_第2页
单片机实现的交通灯设计_第3页
单片机实现的交通灯设计_第4页
单片机实现的交通灯设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机实现的交通灯设计 系统介绍1、系统实现的功能: 本设计情景设定为分主次干道的十字路口交通灯,以89C51单片机作为主控制器,采用的P1口与指示灯相连,通过串行输入,并行输出与数码管相连。利用P3口作为按键输入端口,通过查询指令来判断外部是否有请求信号,当P3口是低电平时,通过跳转指令,执行子程序。正常运行时,主干道放行60S(其中3S绿灯闪烁2S黄灯保持共5S用于警告),然后次干道放行30S(其中3S绿灯闪烁2S黄灯保持共5S用于警告);如此周而复始地运行。当有紧急车辆通过时,将控制键K0按下,使主次干道均为红灯,确保紧急车辆顺利通行。G1G2R2Y2G1Y1RY1RG2Y2R2BA图1

2、开始A、B干道均红灯亮(状态0)A绿灯亮,B红灯亮,延时(状态1)A黄灯亮,B红灯亮,延时(状态2)A红灯亮,B绿灯亮,延时(状态3)A红灯亮,B黄灯亮,延时(状态4)图2(其中省略绿灯闪烁过程)初始状态0为A红灯,B红灯。然后转状态A绿灯通车,B红灯。过一段时间转状态2,A绿灯闪6次转亮黄灯,延时5秒,B仍然红灯。再转状态3,B绿灯通车,A红灯。过一段时间转状态4,B绿灯闪3次转亮黄灯,延时5秒,A仍然红灯。最后循环至状态1。状态流程图如图2所示。当有紧急车辆出现时,应是A、B干道全亮红灯,以便紧急车辆通过。技术上可用外部中断0发出一脉冲向CPU申请中断,CPU不断检测,检测到低电平时开始执

3、行中断,并继续检测直到检测到高电平中断结束,继续执行主程序。2、系统设计: 交通控制系统要控制两车道的交通,以89C51单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行,另外通过K0按键来模拟有紧急车辆通过时的情况。根据设计要求制定总体设计思想如下:(1)正常情况下运行程序,采用0.5s延时子程序的反复调用来实现各种定时时间;(2)有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置该中断为高优先级中断。3、系统整体方案:首先接通电源,然后按下启动按钮,系统能按控制要求工作,并能够利用89C51主控制芯片的内部定时器根据设计要求自行启动和停止。当紧急信号出现时,又能自动中断原有

4、的工作来应急处理,返回后,又能重新投入工作,完全实现自动控制,提高系统可操作性。A、B两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。设A道比B道的车流量大,指示灯燃亮的方案如表示:亮灯时间55s3s2s25s3s2sA车道绿灯亮绿灯闪烁黄灯亮红灯亮红灯亮红亮B车道红灯亮红灯亮红亮绿灯亮绿灯闪烁黄灯亮 表1实现方案:本系统采用89C51单片机作为主控制芯片,用12只发光的二极管模拟交通信号灯,以89C51单片机的P1口控制这12只发光二极管,

5、由于单片机的带负载能力有限,因此在P1口与发光二极管之间用驱动器做为LED的驱动和信号逻辑转换芯片,12V锂电池电源外接稳压电路来保证系统工作电压的恒定。P1口输出低电平时,信号灯亮,输出高电平时,信号灯灭。在正常情况下和交通繁忙时,A、B两车道的12只信号灯的控制状态有5种形式,P1口的控制功能及相应控制码如表2所示。以按键K0模拟紧急车辆通过开关,当K0为高电平时为正常情况,K0为低电平时为紧急车辆通过时的情况,直接将K0信号接至(P3.2)脚即可实现外部中断0中断。控制状态P1口控制码P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0未用未用B道绿灯B道黄灯B道红灯A道绿灯

6、A道黄灯A道红灯A道放行B道禁止F3H11110011A道警告B道禁止F5H11110101A道禁止B道放行DEH11011110A道禁止B道警告EEH11101110AB道均禁止F6H11110110表2片外资源: 该系统组成除89C51单片机芯片外,还须外接电源电路、驱动电路、晶振电路、按键电路、复位电路及LED显示电路等,如图3所示。电源电路复位电路晶振电路按键电路89C51单片机驱动电路驱动电路A车道LED显示电路B车道LED显示电路图3电路图总电路图如图4所示:图4系统程序流程图主程序流程图为: A绿灯亮,B红灯亮 延时55S A绿灯闪烁,B红灯亮 延时3S A黄灯亮,B红灯亮 延时

7、2S B绿灯亮,A红灯亮 延时25S B绿灯闪烁,A红灯亮 延时3S B黄灯亮,A红灯亮 延时2S 图5中断程序流程图: 图6系统程序主程序:ORG 0000H;LJMP MAIN ;转向主程序ORG 0003HLJMP INTTO ;转向紧急车辆终端中断服务程序ORG 001BHMAIN: MOV SP,#30H ;设定堆栈指针SETB PX0 ;置外部中断0为高优先级中断MOV TCON,#00H ;置外部中断为电平触发MOV TMOD,#10H ;置定时器1为方式1MOV IE,#89H ;开CPU中断,开外部中断0和定时器T1溢出中断LOOP: MOV P1,#0F3H ;A道绿灯放行

8、,B道红灯禁止MOV R1,#110 ;置0.5s循环次数(0.5X110=55s)DIP1: ACALL DELAY ;调用0.5s延时子程序 DJNZ R1,DIP1 ;55s不到继续循环 MOV R1,#06 ;置A绿灯闪烁循环次数WAN1: CPL P1.2 ;A绿灯闪烁ACALL DELAYDJNZ R1,WAN1 ;闪烁次数未到继续循环MOV P1,#0F5H ;A黄灯警告,B红灯禁止MOV R1,#04H ;置0.5s循环次数(1.5X4=2s)YL1: ACALL DELAY DJNZ R1,YL1 ;2s未到继续循环 MOV P1,#0DEH ;A红灯,B绿灯 MOV R1,

9、#32H ;置0.5s循环次数(0.5X50=25s)DIP2: ACALL DELAYDJNZ R1,DIP2 ;25s未到继续循环MOV P1,#06HWAN2: CPL P1.5 ;B绿灯闪烁ACALL DELAYDJNZ R1,WAN2MOV P1,#0EEH ;A红灯,B黄灯MOV R1,#04HYL2: ACALL DELAY DJNZ R1,YL2 AJMP LOOP ;循环执行主程序DELAY: MOV R3,#0AH ;0.5s子程序(50msX10=0.5s) MOV TH1,#3CH ;置50ms初值x=3CB0H MOV TL1,#0B0H SETB TR1 ;启动T1

10、LP1: JBC TF1,LP2 ;查寻计数溢出 SJMP LP1LP2: MOV TH1,#3CH ;置50ms初值X=3CB0H MOV TL1,#0B0H DJNZ R3,LP1 RET中断子程序:INTT0:PUSH P1 ;P1口数据压栈保护 PUSH TH1 ;TH1压栈保护 PUSH TL1 ;TL1压栈保护 MOV P1,#0F6H ;A,B道均为红灯 MOV R2,#40 ;置0.5s循环初值(20s)DEY0: ACALL DELAY DJNZ R2,DEY0 ;20s未到继续循环 POP TL1 ;弹栈恢复现场 POP TH1 POP P1 RETI ;返回主程序3、设置计数初值:本设计中仿真晶振频率选为12MHZ,电子钟的中断定时时长为50ms,采用定时器T0工作方式1,因此定时器初值X=(65536-50000)12/12=15536=3CB0H,即TH0=3CH,TL0=0B0H.总结本系统以单片机89C51芯片为核心部件,实现了能根据实际车流量设置红、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论