资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于单片机的交通灯控制系统摘要:随着科技以及人民生活水平的提升,汽车已经成为当今社会的重要组成部分,据公安部交管局统计,截至2014年底中国民用机动车保有量已达2.64亿辆,汽车数量的不断上升给现有城市交通带来不小的压力。本文主要通过AT89C51系列单片机对十字路口的交通灯系统进行控制,应用单片机的定时器产生中断,通过动态扫描的方式用数码管显示时间,主、支干道交替通行,两个干道上的交通灯工作方式同时进行,主干道每次放行15秒,支干道每次放行10秒;每次绿灯变红之前,黄灯先亮3秒,此时另一干道上的红灯并闪烁。以使东西南北四个方向四组交通信号灯正常工作,完成交通信号灯控制系统的模拟。关键词:单片机;AT89C51;交通控制; 发光二极管;数码管0 前 言十字路口的交通系统对于道路的安全与高效运营起着至关重要的作用,在一定程度上它能保证交通安全和畅通更好利用交叉路口的交通资源,是解决城市交通问题的有效途径。十字路口信号灯的出现是人类历史上的一个重大变革,对人们的生活产生了太多的影响。在汽车日益增多的今天,十字路口信号灯使流量能够得到一定控制,疏导拥堵的交通,减少交通压力,以及对交通事故的减少有显著的效果。随着越来越多的私家车的使用,交通拥堵已成为严重影响人们生活的一个重大问题。如何使用适当的控制方法,以最大限度地利用良好的城市的公路建设,缓解主路和匝道以及城市周边地区的交通拥堵,已成为交管部门和城市规划部门要解决的当下难题。随着电子技术的发展,采用单片机技术,能够智能地管理交通信号灯,它已成为目前广泛使用的方法。随着社会经济的发展,城市交通承受着越来越大的压力,各大城市的设计规划部门会主导修建更多的高速公路,在完成高速公路的初期建设,会对交通状况的改善起积极作用,然而,随着全球汽车的快速增长,高速道路并没能发挥出建设者预期的效果。并且,修建公路以来需要庞大的资金支持,二来在现在大中城市寸土寸金的今天,过多的道路是对土地资源的一种浪费。城市交通控制系统是在现有城市硬件的基础上配套的软件设施,它能够智能化的疏导车流量,缓解车流拥堵,是未来城市交通发展的必然趋势。交通灯控制是其中的一个部分。本文主要介绍了基于AT89C51单片机控制的交通灯控制系统的设计过程,对本文将要实现的交通灯系统的工作原理和流程做了介绍,并明确了需要实现的功能。并且介绍了系统的硬件设计以及器件选型,硬件包括单片机部分,数码管显示部分,按键部分等。同时对软件设计进行了系统的阐述,包括对程序主流程的介绍,以及各个程序模块的分析介绍,最后总结了系统还存在的可扩展性和不足之处。1 总体方案设计本系统工作于一个城市的十字路口,分为南北方向和东西方向路口,两个路口通过车辆时交替进行的,也就是说红绿灯的显示是交替完成的,按照题目要求,设计的系统应用在一个车流量大的十字交叉路口,纵向南北方向作为主干道,横向东西方向为支干道。主、支干道交替通行,两个干道上的交通灯工作方式同时进行,主干道每次放行15秒,支干道每次放行10秒;每次绿灯变红之前,黄灯先亮3秒,此时另一干道上的红灯并闪烁。东西方向和南北方向各由一组三色交通灯来控制,分别是东西方向的红、黄、绿以及南北方向的红、黄、绿。逻辑分析可知,当东西方向为绿灯通行时,南北方向必须为红灯禁行;绿灯结束后,东西方向进入黄灯等待状态;黄灯结束后,东西方向变为红灯禁行,南北方向变为绿灯通行;南北方向绿灯结束后,进入黄灯等待状态,如此循环。从这个过程中可以看出,交通灯控制共分4个状态,分别为:S1状态,东西方向为绿灯,南北方向为红灯;S2状态,东西方向为黄灯,南北方向仍为红灯;S3状态,东西方向为红灯,南北方向为绿灯;S4状态,南北方向为黄灯,东西方向为红灯,这四个状态不断循环。由此我们可以列出4个状态的列表和做出4个状态的流程图,如表1所示:表1 信号灯状态表东西方向南北方向说明红黄绿红黄绿S10011001表示亮S2010100S3100001 0表示灭S4100010系统设置有4个按键,分别为Enter键,+键,-键和Shift键。Enter键是对设置的确认,+和-是对设置参数做调整,Shift键是对程序运行和参数设置两种状态的切换。当系统上电或手动复位之后,默认模式下会按照断电前程序里记录的参数运行。若此时Shift键按下,则设置为参数设置状态,数码管上显示原本记录的参数并闪烁,可通过+或-键对参数进行修改,最后按下Enter键将新参数保存。交通灯电路的基本组成如图1所示:中断按键LED数码管显示信号灯显示复位电路时钟电路AT89C51 图1 交通灯基本组成整个电路的工作原理是运用软件延时程序,通过对指令运行的次数进行循环来实现软件延时和相应的显示。当晶振频率为12MHz时有以下时间周期:震荡频率:12MHz;机器周期:1微秒;在以上要求下,设计如下方案:方案一:设计了采用可以设定设循环程序的循环次数来决定所要求的延时时间,配合外部申请中断模式切换,同时进行显示。方案二:采用内部定时/计数器对系统运行时间进行监控,计算相应的延时时间,并设计对应的显示程序。软件延时的优点是较为灵活,调整更为容易,且不受延时时间限制。其缺点也相当明显,软件延时长时间占用系统资源,使得CPU工作效率不高,在中断频繁的系统中其定时精度也受到中断的影响。综上所述:本系统要求延时时间较长,精度要求相对较低,且没有频繁申请的中断系统,所以选择方案一较为合理。这样不仅调整延时长短十分灵活,而且不占用内部定时/计数器的资源。2 硬件电路设计2.1 单片机最小系统 择价格低廉的51系列单片机,具有51内核的低功耗、高性能的8位单片机,内含4K字节Flash只读程序存储器,兼容MCS-51指令和80C5l引脚结构,功能强大的微型计算机的AT89C51为工业控制应用系统提供低成本、高可靠性的解决方案AT89C51的内部结构原理图见图2 INT0 INT1TXD RXDP0 P1 P2 P3中断系统串行接口并行接口T0 T1定时器/计数器RAMROMCPU时钟电路内部总线图2 AT89C51的内部结构原理图本设计中AT89C51使用12MHz晶振。XTAL1(19脚)和XTAL2(18脚):外接晶体引脚,XTAL1和XTAL2分别接外部晶振一端。RST:即为RESET,该引脚为单片机的上电复位或掉电保护端。在此设计中接正常模式按扭P0.0P0.7:用来控制LED显示器的显示控制P1.0、P1.1、P1.2:用来控制南北交通信号灯P1.3、P1.4、P1.5:用来控制东西交通信号灯P1.6:设置键 P1.7:加键 P3.2:减键单片机的示意图如图3所示: 图3 AT89C51单片机2.2 LED数码管LED数码管是由多个发光二极管被封装在一起,以形成“8”字形的装置,引线被连接在内部,每个二极管有自己的一个引脚,他们共同具有一个公共电极。数码管里有显示7段和一个小数点的8个发光二极管,就会看到相应的数码管段被点亮。当一个特定的段的LED被施加电压时,这些特定的段将被点亮,以形成我们眼睛看到的图像。8段LED数码管只能显示简单的09的阿拉伯数字和AF的英文字母,有一些段数比较多的LED可以显示更多的内容,总之,数码管还是以显示数字和字母为主,复杂的显示信息还是需要考虑使用液晶之类的更为复杂的电子器件。如图4所示为8段LED数码管示意图。图4 LED数码管示意图2.3 晶振电路晶振电路是由振荡晶体和两个电容组成,为单片机提供指令时钟。对于51系统,外部晶振通常选择11.0592MHz,这样可以产生精准的微秒级别的机器时间,准确地得到9600bps和19200bps,用于有串口通讯的场合,方便定时操作。外部时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为11.0592MHz的晶振,一个机器周期为1us,C1,C2为20pF。外部时钟方式电路图如图5所示:图5 外部时钟方式电路图2.4 按键设置电路键盘是最常用的单片机系统的人机界面,根据组合形式可分为两种:独立式和阵列式。独立式键盘由于一个按键需要对应一个IO口,因此适合用于按键数量少的场合;阵列式是通过横向和纵向交叉检测,可以将IO口的使用数量呈指数减少,例如三根横向和三根纵向线交叉可以实现9个键码的分辨,如果按独立式键盘设计,需要9个IO口,而阵列式键盘只需要6个IO口,按键数量越多,可以节省的IO口就越多,所以阵列式非常适用于需要按键较多的情况,本系统需要小按钮控制,单片机的I / O端口足够,可直接使用独立式设计。按键电路原理图如图3.7所示。 图6 独立式按键电路 键盘开关矩阵由多个按钮组成,是单芯片系统中最常用的输入装置,可以将命令,地址和数据输入给单片机。通常单片机系统采用非编码键盘,非编码键盘由软件识别的键盘上的按键,它具有结构简单,灵活的特点,因此被广泛应用于微处理器系统。键盘按钮分为接触式和非接触式两种,微控制器应用的按键通常由一个机械键盘接触组成。当开关K没有被按下时,KeyIn由于通过4.7K的上拉电阻与5V电源连接,因此输入为高,当K闭合后,KeyIn与GND短接,输入为低电平。也就是说,程序检测按键是否按下的方法是检测对应IO由高电平变成低电平,就表示该按键被按下。由于按键按下或弹开的瞬间会有抖动,因此要去除按键的抖动。原理就是避开机械触点物理上会产生不稳定电压的时间段,再去检测IO口的电平。不管是通过轮询检测还是中断检测,一旦检测到按键IO口电平状态相比默认状态发生改变,则加入一小段延时,一般为几十个毫秒,延时过后,再去检测IO的电平,如果又变回默认状态,就说明这属于干扰导致的按键抖动,不需要处理;反之,则是真正的按键被按下的信号。2.5 信号灯和显示部分电路本设计利用单片机的P0口来做数码管的段码驱动,数码管选用共阳极BCD码显示,利用单片机的P1.0P1.5口来驱动和控制各种信号灯的点亮和熄灭。信号灯和显示部分电路图如图7所示:图7 信号灯和显示部分电路3 软件设计3.1 主程序流程设计主程序的运行过程中,首先要完成寄存器和定时器的初始化,同时,还要实现对数码管与交通灯的状态显示,由于交通灯的工作需要数11码管的倒计时显示,因此需要精确定时,本次设计采用了定时器对其进行精确定时,同时设置定时器0中断,在中断函数中对时间进行刷新。对于系统按键的检测可以使用主循环轮询方式,也可以采用外部中断处理方式。为了更加快速的响应按键信息,在程序中通过外部中断来实现按键的检测。主程序流程图如图8所示:倒计时显示及延时:S4:东西为红灯,南北转为黄灯倒计时显示及延时S3:东西为红灯,南北为绿灯倒计时显示及延时S2:东西转为黄灯,南北为红灯倒计时显示及延时S1:东西为绿灯,南北为红灯外开中断进入主循环程序开始图8 主程序循环流程图3.2中断服务子程序设计单片机的定时器可以根据程序设置的分频频率进行计数,当计数达到某个设定值时,可以产生一个中断事件。比如51单片机外部晶振12M,最大计数两个字节,也就是65535,计一个数的时间为1/12M秒,就算计数值设为最大
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号