基于单片机的交通灯控制设计.docx
《基于单片机的交通灯控制设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制设计.docx(15页珍藏版)》请在冰豆网上搜索。
基于单片机的交通灯控制设计
引言
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两个以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1硬件设计
1.1单片机(
)
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
本设计单片机采用
。
图1.189C52引脚图
1电源和时钟引脚。
如
。
2编程控制引脚。
如
。
3I/O口引脚。
如
,4组8位I/O口。
图1.2晶振与复位电路
1.2各芯片介绍
1.2.174HC245
图1.374HC245引脚图
总线驱动器,典型的CMOS型三态缓冲门电路。
由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。
第1脚(DIR),为输入输出端口转换用,DIR=1时信号由A端输入,B端输出,DIR=0时信号由B端输入,A端输出。
第2-9脚(A信号输入输出端),A1=B1……A8=B8,A1与B1是一组,如果DIR=1,OE=0则A1输入B1输出,其它类同。
如果DIR=0,OE=0则B1输入A1输出,其它类同。
第11-18脚(B信号输入输出端),功能与A端一样,不再描述。
第19脚(OE使能端),若该脚为1,A/B端的信号将不导通,只有为0时A/B端才被启用,该脚也就是起到开关的作用。
第10脚(GND),电源地。
第20脚(VCC),电源正极。
1.2.274HC138
图1.474HC138引脚图
表1.174HC138集成译码器功能表
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(E1和E2)和一个高有效(E3)。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。
任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
1.2.3MAX232
图1.4MAX232引脚图
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5V)。
1.3总电路设计
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换。
设计红灯亮12秒,绿灯亮12秒,黄灯亮5下。
采用软件延时。
由89C52的P0口输出控制信号。
P2口和P1口输出信号控制数码管的显示,其中用74HC245和74HC138做译码驱动。
基本流程为:
南北红灯亮12秒、东西绿灯亮12秒
南北黄灯闪5下、东西黄灯闪5下
南北绿灯亮12秒、东西红灯亮12秒
南北黄灯闪5下、东西黄灯闪5下
1.3.1显示电路
图1.5数码管显示电路
图1.6发光二极管显示电路
2软件设计
2.1程序流程图
2.2C语言程序
#include
#defineuintunsignedint
#defineucharunsignedchar
#defineON0
#defineOFF1
ucharcodetable[]
={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbitPortDX_Yellow=P0^0;
sbitPortDX_Red=P0^1;
sbitPortDX_Green=P0^2;
sbitPortNB_Yellow=P0^3;
sbitPortNB_Red=P0^4;
sbitPortNB_Green=P0^5;
charaa,shi,ge,tt=60,tt1,mm;
voidinit()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
voiddelay(uintms)
{
uintti;
while(ms--)
{
for(ti=0;ti<112;ti++){}
}
}
voiddisplay(ucharshi,ucharge)
{
P1=0x02;
P2=table[shi];
delay
(2);
P1=0x03;
P2=table[ge];
delay
(2);
}
voidmain(void)
{
init();
while
(1)
{
if(tt<=60&&tt>34)
{
PortNB_Yellow=OFF;PortNB_Red=OFF;PortNB_Green=ON;
PortDX_Yellow=OFF;PortDX_Red=ON;PortDX_Green=OFF;
shi=tt1/10;
ge=tt1%10;
display(shi,ge);
}
if(tt<=34&&tt>28)
{
PortNB_Yellow=OFF;PortNB_Red=OFF;PortNB_Green=ON;
PortDX_Yellow=ON;PortDX_Red=OFF;PortDX_Green=OFF;
shi=tt1/10;
ge=tt1%10;
display(shi,ge);
}
if(tt<=28&&tt>2)
{
PortNB_Yellow=OFF;PortNB_Red=ON;PortNB_Green=OFF;
PortDX_Yellow=OFF;PortDX_Red=OFF;PortDX_Green=ON;
shi=tt1/10;
ge=tt1%10;
display(shi,ge);
}
if(tt<=2&&tt>-3)
{
PortNB_Yellow=ON;PortNB_Red=OFF;PortNB_Green=OFF;
PortDX_Yellow=OFF;PortDX_Red=OFF;PortDX_Green=OFF;
shi=tt1/10;
ge=tt1%10;
display(shi,ge);
}
}
}
voidtimer0()interrupt1
{
aa++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(aa==20)
{
aa=0;
tt--;
if(tt==-1)
tt=60;
tt1--;
}
if(tt==60)
tt1=25;
if(tt==34)
tt1=5;
if(tt==28)
tt1=25;
if(tt==2)
tt1=5;
if(tt==-3)
tt1=25;
}
3结果分析及实物图
将整体电路通电,把写好的测试程序刷写到芯片内,观察一个周期灯的显示状态是否正常,同时观察计数是否正常。
经观察得出,实验结果很理想,达到了最初的设想要求。
实物图:
结束语
本系统就是充分利用了89C52I/O引脚。
系统统采用MSC-52系列单片机为中心器件来设计交通灯控制器,实现了交通的控制。
红绿灯循环点亮,倒计时5秒时黄灯警示。
系统的不足之处在于缺少传感监控。
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我提前了解了单片机的基本原理、单片机应用系统开发过程,以及对常用编程设计思路技巧的掌握,为日后成为合格的应用型人才打下良好的基础。
最后衷心感谢肖金凤老师在本次课程设计中给予我大力支持。
参考文献
【1】黄智伟.凌阳单片机课程设计指导.北京:
北京航空航天大学出版社,2007
【2】周航慈.单片机程序设计基础.北京:
北京航空航天大学出版社,1997
【3】求实科技.单片机典型模块设计实例导航.北京:
人民邮电出版社,2004
【4】余永权.89系列(MCS-51)Flash单片机原理及应用.北京:
电子工业出版社,2003
【5】王幸之.单片机应用系统电磁干扰与抗干扰技术.北京:
北京航空航天大学出版社,2006
【6】黄智伟.全国大学生电子设计竞赛技能训练.北京:
北京航空航天大学出版社,2007
【7】黄智伟.全国大学生电子设计竞赛制作实训.北京:
北京航空航天大学出版社,2007
【8】黄智伟.全国大学生电子设计竞赛系统设计.北京:
北京航空航天大学出版社,2006
【9】黄智伟.射频集成电路芯片原理与应用电路设计[M].北京:
电子工业出版社.2004年3月
【10】章燕翼.现代电信名词术语解释[M].北京:
人民邮电出版社.2004年
【11】余发山.单片机原理及应用技术[M].北京:
中国矿业大学出版社,2003
【12】房小翠,王金凤.单片微型计算机与机电接口技术[M].北京:
国防工业出版社,2002
【13】李银华.电子线路技术指导[M].北京航空航天大学出版社,2005
【14】张毅刚.单片机原理及接口技术[M].哈尔滨:
哈尔滨工业大学出版社,1990
【15】谭浩强.单片机课程设计[M].北京:
清华大学出版社,1989