基于AT89C51单片机无线收发控制的交通信号灯模型
扫描二维码
随时随地手机看文章
引言
随着我国经济的高速发展,人们对私家车、公交车的需求越来越大。相应地,我国进入WTO以后,我国经济贸易与世界接轨,汽车业关税大大降低,使很多人都能负担得起,买私家车不再是梦想。但是,私家车、公交车的大增无疑会对我国交通系统带来沉重的压力。放眼现在的中国,如广州、香港、上海等大都市,无不受到交通堵塞的困扰。中国要发展,交通事业决不能停步不前。有及于此,我国交通管制系统应当以人性化、智能化为目的,作出相应的改善。本论文正是以此为出发点,对单片机控制的交通信号灯模型作了较详尽的介绍。
单片机无线收发控制的交通信号灯模型可以分为电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成,组成电路如图1:
由于显示部分都是采用三色LED和数码管模拟,比较简单,所以在此不作详尽叙述。下面主要叙述单片机主控电路、直流电源的组成及其原理。
一、单片机主控电路
1、 主要元器件介绍
单片机主控电路的主要元件是AT89C51,其外型如图2:
AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
2、管脚说明:
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
ST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 [!--empirenews.page--]
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
3、系统模拟以下交通情况
(1)正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行60秒(两个数码管从60秒开始倒数,其中5秒用于警告),B道放行30秒(两个数码管从30秒开始倒数,其中5秒用于警告)。
(2)一道有车而另一道无车(用按键开关S1、S2模拟)时,使有车车道放行。
(3)有紧急车辆通过(用按键开关S0模拟)时,A、B道均为红灯(两个数码管显示00)。
4、设计思路
(1)正常情况下运行主程序,采用0.5秒延时子程序的反复调用来实现各种定时时间;
(2)一道有车而另一道无车时,采用外部中断1方式进入与其相适应的中断服务程序,并设置该中断为低 优先级中断;
(3)有紧急车辆通过时,采用外部中断0方式进入与其相适应的中断服务程序,并设置该中断为高优先级中断,实现中断嵌套。
5、硬件设计
如图3
用数码管模拟交通灯上的数字显示板。数码管的七段由AT89C51的P0(P0.0-P0.6)口控制,两个数码管由P2(P2.0-P2.1)口选通,中间由PNP三极管作为推动管。
分别以S1、S2模拟A、B道的车检测信号,当S1、S2为高电平(不按按键)时,表示有车;当S1、S2为低电平(按下按键)时,表示无车。当S1、S2属不同值时,表示一道有车一道无车,信号经74LS04,74LS86后,输入到P3.3口,触发外部中断1,AT89C51单片机经查询后,对有车的车道放行,绿灯亮;对无车的车道禁止放行,红灯亮。当S0为低电平(按下按键)时,触发外部中断0,单片机经查询后,对两车道都禁止放行,全显示红灯,数码管显示00,对紧急车辆放行。
二、电源电路
从图3可知,无论是AT89C51单片机工作电源、二极管还是数码管的驱动,都要用到+5V的直流电源,所以,一个稳定的、持续的+5V直流电源对本系统十分重要。本系统运用桥式整流电路,将交流转换为直流,为各部分电路提供恒定的+5V直流。模拟部分和数字部分分别采用一个独立的稳压管供电,保证电路的稳定性和抗干扰,其电路如图4。
1、 主要元器件介绍
DB为全波整流电桥,其内部结构如图5
其工作原理如下: [!--empirenews.page--]
电桥1、3端接交流电源,2、4为支直流输出端。当某一时刻,交瞬时值为上+下-(即1端为+,3端为-),电流从1端输入,经1、2间的二极管到2端,再经2、4端的负载流到4端,然后经3、4间的二极管流回交流负端;同理,电流从3端流入,从1端流回交流负端。
2、 电源电路工作原理
从接口J1输入的9V左右的交流电压(波形如图7所示),经全波整流电桥DB整流后,得到一幅值为0-8V左右的波动直流(如图8所示)。这一波动的直流经C1、C2、C3滤波后,得到一较平稳的直流,再经 LM7805稳压为+5V,C4再次滤波后,得到稳定的+5V直流电流(如图9所示),为系统无线电接收发模块和解码芯片PT2272路供电。Q1为继电器驱动管,当其基极接收到解码芯片的高电平时,继电器吸合,K1接通,电压经7805稳压后为AT89C51开机供电。
三、无线电遥控收发控制电路:
无线发射,接收控制有两部分组成,如图10所示,发射部分采用编码芯片PT2262和DF数据发射模块,接收部分主要由解码芯片PT2272、DF接收模块组成。为简化电路,发射接收部分采用现成的收发芯片,其工作频率为315M,采用FM方式调制。S1-S4为脉冲编码开关,按下后在接收端解码后将输出相应的电平控制电路的开机和Q9—Q11组成的电子开关的工作。
1. 编码芯片PT2262芯片原理简介:
PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。
2.解码芯片PT2272芯片原理简介:
编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。
四、软件设计过程:
主程序采用查询方式定时,由R2寄存器确定调用0.5S延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器1方式1,查询式定时,定时器定时50ms,R3寄存器确定循环10次,从而获取0.5S的延时时间。
一道有车而另一道无车的中断服务程序首先要保护现场,因而需用到延时子程序和P1口,,故需保护的寄存器有R3、P1、TH1和TL1。保护现场时还需关中断,以防止高优先级中断(紧急车辆通过所产生的中断)出现时导致程序混乱。然后,关中断,恢复现场,再开中断,返回主程序。
紧急车辆出现是的中断服务程序也需要保护现场,但无需关中断(因其为高优先级中断),然后执行相应的服务,待交通灯信号出现后延时20S,确保紧急车辆通过交叉路口。然后,恢复现场,返回主程序。
交通信号灯模拟控制系统主程序及中断服务程序的流程图如下图所示。
紧急情况时的中断服务程序(INT0)[!--empirenews.page--]
五、系统可改进的地方
1、系统可加装热能探测器,探测出车辆内燃机运转辐射出的热量,从而能使单片机判断出哪条道有车,哪条道无车,能对路面交通状况作出迅速反应,从而提高交通效率;
2、系统应装置红外线接收器,相应地,紧急车辆(如消防车、救护车等)上应当装置红外线放射器。这样,在离交通信号灯远处,紧急车辆就可以开红外线放射器使交通信号灯全部显示红灯,避免因交通问题导致不必要的人命伤亡和金钱损失;
3、系统可装置一点阵式LED中文显示屏,用以显示温度、天气情况、空气指数等,方便司机对外界情况的了解。
多加了这些功能后,无疑会使成本增加,但是这样确实可以提高交通效率,疏通交通堵塞和避免不必要的损失。
六、附单片机源程序、硬件设计原理图和硬件实物。
七、结束语
现在,我国已经成功申办2008年奥运会和2010年亚运会,届时,各国人士欢聚在中国,必定会给我国交通带来一定的压力。如果我国交通管理好了,不但给各国旅客留下美好的回忆,而且间接提高了中国的国际竞争力,提高我国的国际地位。