论文部分内容阅读
摘要本文介绍用AT89S52单片机为微处理器的交通灯控制、显示及车流量检测系统的软硬件设计。
关键词交通灯 车流量 中断 串口 液晶显示
中图分类号:TP21文献标识码:A
1 设计内容与要求
(1)LCD1602用于显示车流量,及实时路况信息;
(2)开关S2和S3用于提供模拟主道和辅道车辆检测信号,当其中一道为绿灯,但检测到的信号表示为无车时,另一通道放行15S;
(3)正常情况下,主道放行1min,辅道放行30S,并将倒计时用数码管显示出来;
(4)紧急情况下,如救护车,消防车须快速通过时,通过给S1一个信号,请求紧急通行,进入紧急情况处理后,绿灯状态通道限时5S,转两通道红灯,并处理15S;
(5)为便于车流量信息的获取,在主道上对车流量进行检测,并送数码管和液晶显示;
(6)正常情况下,主道绿灯60S后,转主道绿灯闪烁5S,转主道黄灯5S,再转主道红灯,辅道绿灯30S,辅道黄灯亮5S后,转主道绿灯,辅道红灯,如此循环。
2 系统的硬件设计思想
为达到给定的设计要求,用AT89S52的P1口接红、黄、绿信号灯,用译码器74LS138通过软件编程来片选锁存器 74LS373来达到液晶命令、数据的锁存及数码管倒计时当前值稳定显示的目的,通过三个按键S1~S3(图一)来模拟紧急情况和主、辅道绿灯通道无车三种状态,S1模拟紧急情况,S2、S3模拟绿灯通道无车情况。用LG18A3-8-Z/BX传感器,用双稳态触发器74LS73使得在车辆通过时,通过传感器信号输出端出现一个负脉冲,使得74LS73的输出端Q为设定值,并通过软件查询来对车流量进行准确的检测(图二),通过串口把车流量数据用串口移位芯片74LS595送至对应的数码管显示,并在液晶屏上指定位置显示,主道倒计时完时,刷新数码管和液晶屏上的车流量数值。
3 系统的软件设计思想
(1)主程序采用查询方式定时,由寄存器R2确定调用1S延时程序的次数,从而获取交通灯各种状态的延时时间,子程序采用定时器1的方式0的中断查詢定时。
(2)程序开始执行时,先在LCD1602屏幕上显示出问候语及安全提示语,再显示当前车流量的英文提示,并设定好车流量的显示位置。
(3)绿灯通道无车中断服务程序INT1首先保护现场,因为需要用到延时程序和P1口,以及1S延时次数寄存器R1,故将R1、P1、TH1、TL1压入堆栈,保护现场时关中断,以防止高优先级中断(紧急车辆通过)产生程序的混乱。然后开中断先查询主道和辅道的车辆情况,再判定车辆的通行情况。
(4)紧急车辆通过时,程序进入INT0中断,保护现场后,蜂鸣器鸣响5S,绿灯状态通道限时5S,转两通道红灯,并处理15S。
(5)程序处于主道绿灯辅道红灯时,主程序此时调用的延时程序既有延时功能,又有车流量检测计数功能,当主道绿灯状态结束时,调用车流量显示子程序,先将车流量通过串口,经74LS595移位,送到数码管显示,再调用液晶LCD1602显示子程序,将当前车流量送到液晶屏的指定位置显示。
4 系统汇编程序设计流程图
主程序部分(图三):其中,预定义部分用于定义LCD1602使能端、读写信号控制端、及数据或指令寄存器选择端,74LS595的锁存器控制脉冲、移位时钟脉冲,串行数据输入端,并定义INT0、INT1,这两个外部中断的入口地址,以及程序存储的起始地址。
对液晶进行初始化后,在其对应位置写入预定的内容,然后启动交通灯,红、黄、绿灯按预定规律显示,数码管上显示出当前状态剩余时间。
主道绿灯延时及车流量检测部分(图4):
该部分完成主道的倒计时延时及车流量检测功能(每0.1S对车辆通过信号扫描一次)。
绿灯通道无车信号处理中断部分(图5):
绿灯通道无车信号有效时,程序转入INT1中断,先判断主道是否是绿灯而且无车,在判断辅道,若该通道为绿灯状态而无车,则转另一通道通行15S,若为干扰信号,则中断返回。
紧急情况处理中断部分(图六)
当有紧急情况发生,如十字路口交通事故、救护车、消防车请求紧急通过等情况出现时,给本系统一个紧急中断请求信号,程序转入中断处理,蜂鸣器鸣响5S,绿灯通道限时至5S,让路口中的车辆通过后,两通道均为红灯,并且处理15S,若处理时间不够,可以再次向本系统发送紧急情况中断信号,延长紧急情况处理时间的需要。本系统设计得到了实现。
关键词交通灯 车流量 中断 串口 液晶显示
中图分类号:TP21文献标识码:A
1 设计内容与要求
(1)LCD1602用于显示车流量,及实时路况信息;
(2)开关S2和S3用于提供模拟主道和辅道车辆检测信号,当其中一道为绿灯,但检测到的信号表示为无车时,另一通道放行15S;
(3)正常情况下,主道放行1min,辅道放行30S,并将倒计时用数码管显示出来;
(4)紧急情况下,如救护车,消防车须快速通过时,通过给S1一个信号,请求紧急通行,进入紧急情况处理后,绿灯状态通道限时5S,转两通道红灯,并处理15S;
(5)为便于车流量信息的获取,在主道上对车流量进行检测,并送数码管和液晶显示;
(6)正常情况下,主道绿灯60S后,转主道绿灯闪烁5S,转主道黄灯5S,再转主道红灯,辅道绿灯30S,辅道黄灯亮5S后,转主道绿灯,辅道红灯,如此循环。
2 系统的硬件设计思想
为达到给定的设计要求,用AT89S52的P1口接红、黄、绿信号灯,用译码器74LS138通过软件编程来片选锁存器 74LS373来达到液晶命令、数据的锁存及数码管倒计时当前值稳定显示的目的,通过三个按键S1~S3(图一)来模拟紧急情况和主、辅道绿灯通道无车三种状态,S1模拟紧急情况,S2、S3模拟绿灯通道无车情况。用LG18A3-8-Z/BX传感器,用双稳态触发器74LS73使得在车辆通过时,通过传感器信号输出端出现一个负脉冲,使得74LS73的输出端Q为设定值,并通过软件查询来对车流量进行准确的检测(图二),通过串口把车流量数据用串口移位芯片74LS595送至对应的数码管显示,并在液晶屏上指定位置显示,主道倒计时完时,刷新数码管和液晶屏上的车流量数值。
3 系统的软件设计思想
(1)主程序采用查询方式定时,由寄存器R2确定调用1S延时程序的次数,从而获取交通灯各种状态的延时时间,子程序采用定时器1的方式0的中断查詢定时。
(2)程序开始执行时,先在LCD1602屏幕上显示出问候语及安全提示语,再显示当前车流量的英文提示,并设定好车流量的显示位置。
(3)绿灯通道无车中断服务程序INT1首先保护现场,因为需要用到延时程序和P1口,以及1S延时次数寄存器R1,故将R1、P1、TH1、TL1压入堆栈,保护现场时关中断,以防止高优先级中断(紧急车辆通过)产生程序的混乱。然后开中断先查询主道和辅道的车辆情况,再判定车辆的通行情况。
(4)紧急车辆通过时,程序进入INT0中断,保护现场后,蜂鸣器鸣响5S,绿灯状态通道限时5S,转两通道红灯,并处理15S。
(5)程序处于主道绿灯辅道红灯时,主程序此时调用的延时程序既有延时功能,又有车流量检测计数功能,当主道绿灯状态结束时,调用车流量显示子程序,先将车流量通过串口,经74LS595移位,送到数码管显示,再调用液晶LCD1602显示子程序,将当前车流量送到液晶屏的指定位置显示。
4 系统汇编程序设计流程图
主程序部分(图三):其中,预定义部分用于定义LCD1602使能端、读写信号控制端、及数据或指令寄存器选择端,74LS595的锁存器控制脉冲、移位时钟脉冲,串行数据输入端,并定义INT0、INT1,这两个外部中断的入口地址,以及程序存储的起始地址。
对液晶进行初始化后,在其对应位置写入预定的内容,然后启动交通灯,红、黄、绿灯按预定规律显示,数码管上显示出当前状态剩余时间。
主道绿灯延时及车流量检测部分(图4):
该部分完成主道的倒计时延时及车流量检测功能(每0.1S对车辆通过信号扫描一次)。
绿灯通道无车信号处理中断部分(图5):
绿灯通道无车信号有效时,程序转入INT1中断,先判断主道是否是绿灯而且无车,在判断辅道,若该通道为绿灯状态而无车,则转另一通道通行15S,若为干扰信号,则中断返回。
紧急情况处理中断部分(图六)
当有紧急情况发生,如十字路口交通事故、救护车、消防车请求紧急通过等情况出现时,给本系统一个紧急中断请求信号,程序转入中断处理,蜂鸣器鸣响5S,绿灯通道限时至5S,让路口中的车辆通过后,两通道均为红灯,并且处理15S,若处理时间不够,可以再次向本系统发送紧急情况中断信号,延长紧急情况处理时间的需要。本系统设计得到了实现。