单片机控制交通灯系统设计.docx
- 文档编号:30753649
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:32
- 大小:188.16KB
单片机控制交通灯系统设计.docx
《单片机控制交通灯系统设计.docx》由会员分享,可在线阅读,更多相关《单片机控制交通灯系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
单片机控制交通灯系统设计
摘要
本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。
系统包括人行道、左转、右转、以及基本的交通灯的功能。
系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。
本设计是单片机控制的交通灯控制系统。
单片机即单片微型计算机。
由RAM,ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。
它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。
而51系列单片机是各类单片机中最为典型和富有代表性的一种。
关键字:
单片机;交通灯;AT89S52;Proteus仿真
ABSTRACT
Thissystembysinglechipmicrocomputersystem,keyboard,LEDdisplay,trafficlightsofthedemosystem.Systemincludingsidewalks,turnleft,turnright,andthebasicfunctionoftrafficlights.Systeminadditiontothebasicfunctionoftrafficlights,alsohasacountdown,timesetting,emergencytreatment,lighttimeofperiodoftimetoadjustlightandmanualcontrolbasedonthespecificsituation,andotherfunctions.
Thisdesignisasingle-chipmicrocomputercontroloftrafficlightscontrolsystem.SCMthesinglechipmicrocomputer.FormedbyRAM,ROMandCPU,timing,countandvariousinterfaceandtheintegrationofthemicrocontroller.Ithassmallvolume,lowcost,strongfunction,widelyusedinindustryandindustrialautomation.And51seriesmicrocontrolleristhemosttypicalandrepresentativeinallkindsofsinglechipmicrocomputer.
Keywords:
Singlechipmicrocomputer;Trafficlights;AT89S52;Proteussimulation
第1章绪论2
前言
19世纪初,在英国中部的约克城,红绿装分别代表女性的不同身份。
其中着红妆的女人代表我已经结婚了,而着绿装的女人则是未婚者。
后来,英国伦敦议会大厦前经常发生马车扎人的事故,于是人们受到红绿装的启发,1868年12月10日,信号灯家族的第一个成员就在英国伦敦议会大厦的广场上诞生了,由当时英国机械师师德.哈特设计,制造的灯柱高7米,身上挂着一盏红绿两色的提灯—煤气交通信号灯,这是城市街道的第一盏信号灯。
在灯的脚下,一名手持长杆的警察随心所欲的牵动皮带转换提灯的颜色。
后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。
不幸的是只面试23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。
从此,城市的交通灯被取缔了。
知道1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过这时已是“电气信号灯”。
稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。
随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红黄绿三种标志)于1918年诞生。
它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生使城市交通大为改善。
黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电气公司任职员。
一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一声冷汗。
回到宿舍,他反复琢磨,终于想到了在红绿灯中间再加上一个黄色信号灯,提醒人们注意危险。
他的建议立即得到有关方面的肯定。
于是红黄绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。
中国最早的马路红绿灯,是于1928年出现在上海英租界。
从最早的手牵皮带到20世纪50年代的电气控制,从采用计算控制到现代化的电子定时监控,交通信号灯在科学化,自动化上不断地更新,发展和完善
。
第1章绪论
1.1设计要求
1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改;
2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;
3)黄灯亮时,要求每秒闪亮一次;
4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法);
5)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行;
6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。
1.2设计意义
国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。
加上一个倒计时的显示计时器来控制行车。
对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:
1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。
2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。
基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通
拥护,交叉路口经常出现拥堵的情况。
利用单片机控制技术.提出了软件和硬件设计方案,能够实现道路的最大通行效率
。
第2章系统总体方案及硬件设计
2.1芯片的选择与简单介绍
主控芯片采用AT89S52单片机(其管脚图如图2.1所示)。
单片机,亦称单片微型计算机。
它是把中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
于是,微型计算机(即单片机)在这种情况下诞生了。
纵观生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。
如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课
。
图2.1AT89S52单片机引脚图
MCS-51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。
8051单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
2.1.1中央处理器(CPU)
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
2.1.2数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表
。
2.1.3程序存储器(内部ROM):
程序存储器用于存放程序和固定不变的常数等。
通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。
AT89S51内部配置了4KB闪存。
定时/计数器用于实现定时和计数功能。
AT89S51共有2个16位定时/计数器。
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
每个口都由1个锁存器和一个驱动器组成。
它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。
2.1.4全双工串行口:
A89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
2.1.5时钟电路:
时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
2.1.6中断系统:
中断系统的作用主要是对外部或内部的终端请求进行管理与处理。
AT89S51共有5个中断源,其中又2个外部中断源和3个内部中断源。
图2.2AT89S52结构框图
2.1.7定时/计数器
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
2.2系统方框图
图2.3交通灯系统方框图
2.3工作原理
由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。
采用中断方式实现按键的功能
。
东西方向EW
GYR
紧急转换
系统控制
电路
南北方向NS
GYR
车辆检测
图2.4交通灯工作原理图
2.4单片机最小系统
)
图2.5时钟电路
单片机最小系统以80S52为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。
89C51单片机系列是MCS-51系列的基础上发展起来的,是当前8位单片机的典型代表,采用CHMOS工艺,即互补金属氧化物的HMOS工艺,CHMOS是CMOS和HMOS的结合,具有HMOS高速度和高密度的特点,还具有CMOS低功耗的特点
。
时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为12MHz的晶振,一个机器周期为1us,C2,C3为30pF。
复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C1和电阻R4来实现,按键手动复位是图中复位键来实现的
。
2.5时间显示电路
图2.6时间显示仿真图
因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间(如图2.7所示)
。
数码管使用共阴数码管,需要接上470欧上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。
2.6交通灯电路
本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图2.8所示)
图2.7交通灯电路
第3章软件设计
3.1整体系统分析
总体流程图(实现各种状态间的转换):
图3.1整体流程图
3.2相关参数计算
T0的计数初值:
X=216-12*50*1000/12=15536=3CB0H
3.3程序流程图
图3.2程序流程图
第4章Proteus软件仿真
4.1系统仿真电路图
1.交通灯控制系统正常运行时仿真图(见图4.1)。
图4.1仿真电路图
图4.2
4.2仿真结果分析
仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行,南北方向(主干道)每次通行时间设为30秒、东西方向通行时间设为20秒,时间可以在程序中修改。
同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时间为5秒,转黄期间黄灯亮。
可以准确显示每个状态所剩余的时间,按下禁行普通车辆键,东西南北方向都亮红灯;按下南北放行键,南北绿灯亮,东西红灯亮;按下东西放行键,东西绿灯亮,南北红灯亮;任何时候按下返回键,此系统都将回到初始状态,当紧急状况出现时,按下紧急开关,可实现主干道和支干道全部禁止通行,允许紧急车辆安全通行,实现了课程设计的要求
。
总结
本系统就是充分利用了AT89S52芯片的I/O引角。
系统统采用MSC-51系列单片机为中心器件来设计交通灯控制器,实现了能根据实际车流量通过单片机芯片的P1口控制红、黄、绿灯的燃亮与熄灭;P0口外接数码管来显示各个信号灯的时间。
系统设计简便、实用性强、操作简单、程序设计简便。
系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。
这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现
。
通过这次课程设计,我得到了一次用所学知识与技能分析和解决问题的可贵的锻炼机会,使我深刻邻会了单片机的基本原理和单片机应用系统开发的过程。
在常用编程设计思路技巧的掌握方面都向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。
通过本次的毕业设计,受益匪浅,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的工作奠定了一定的基础。
在撰写本文的过程中,深切地体会到当今科技技术飞速的发展,特别是单片机的发展使得许多技术难题迎刃而解,作者坚信,随着科学技术的不断发展,单片机技术的应用将是前途无量。
由于本设计涉及到的知识面比较广,再加上本人在相关领域知识的缺乏,所以本设计的性能指标还是有待改善的,然而,模拟仿真证明了本设计的设计思想和设计方法是现实可行的。
参考文献
[1]余发山王福忠单片机原理及应用技术[M].徐州:
中国矿业大学出版社2008.
[2]吴黎明单片机原理及应用技术[M].北京:
科学出版社2003.
[3]刘乐善微型计算机接口技术及应用[M].北京:
华中科技大学出版社2004.
[4]李伯成.基于MCS-51单片机的嵌入式系统的设计[M].北京:
电子工业出版社,2004.
[5]吴黎明,王桂棠,洪添胜,等.单片机原理及应用技术[M].北京:
科学出版社,2005.
[6]韩克,柳秀山,等.电子技能与EDA技术[M].广州:
暨南大学出版社,2004.
[7]夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社,2001
[8]郭磊.电能质量实时监测装置的研究与设计[D].西安科技大学,2008
[9]张娟.单片机原理及接口技术[M].广西大学,2005
[10]陈森.单片机高级教程.南京理工大学,2004
致谢
经过三个月的学习和试验,终于完成了我的毕业设计。
看着自己辛勤的成果,心里非常高兴。
在这期间遇到了很多从来都没有遇到过的问题,但是通过自己的努力和老师、同学的帮助最后把它们一一解决了。
其中在老师的精心安排和指导下,对题目有了较深入的理解,也尝到了电路系统设计的艰辛。
在本次设计中我在各个环节中都做到了深入实际,动手实践,不仅对我们学过的理论知识进行了一次全面的复习和巩固,而且还在电子电路、单片机等方面拓展了我们的知识面,为将来的实际工作打下良好的基础,特别是在分析问题,解决问题的方面得到了良好的锻炼机会,受益匪浅。
由于本人水平和经验有限,在设计的过程中难免存在一些不足甚至一些错误,敬请各位老师和同学批评指正。
最后,向我的指导教师老师表示诚挚的感谢,同时,也向帮助过我的同学们表示感谢!
附录一
系统总电路图
附录二
/*#include
#include
#defineucharunsignedchar/*定义字符串类型为无符号型*/
ucharcodea[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
ucharcodeb[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/
ucharcodec[4]={0xDE,0xDD,0xF3,0xEB};/****P1口,低有效*/
charSN=25,WE=30;
charSN_G=25,WE_G=15,Y=5;
uchari,k=0,count=0;
voiddelay(uchart);/*定义函数*/
voidlight();/*定义函数*/
voidled();/*定义函数*/
sbitK0=P3^7;/*开关K0接P3^7管脚*/
sbitK1=P3^6;/*开关K1接P3^6管脚*/
sbitK2=P3^3;/*开关K2接P3^3管脚*/
sbitK3=P3^5;/*开关K3接P3^5管脚*/
sbitK4=P3^2;/*开关K4接P3^2管脚*/
/*程序初始化*/
voidinit(void)
{
/*12MHz*/
TMOD=0x01;/**计数器用模式1,为16位计数器*****/
TH1=(65536-50000)/256;/*0x3C*/
TL1=(65536-50000)%256;/*0xB0*//*计50000个数,用时50ms*/
IT0=1;/*外部中断0为边沿触发方式*/
ET0=1;/*允许T0中断*/
TR0=1;/*启动计数器*/
EA=1;/*CPU开放总中断*/
EX0=1;/*允许外部中断0中断,即允许响应端口P3^2(K4)中断*/
EX1=1;/*允许外部中断1中断,即允许响应端口P3^3(K2)中断*/
}
/*中断0处理程序*/
voidint0(void)interrupt0
{
EA=0;/*CPU禁止响应一切中断*/
P1=0xDB,P0=a[0];/*东西南北方向均红灯亮,P0口输出0*/
for(;;)/*无条件循环*/
{
P2=b[0],P0=a[(SN_G+Y)%10];/*南北方向数码管显示可通行时间的个位*/
delay(5);/*延时*/
P2=b[1],P0=a[(SN_G+Y)/10];/*南北方向数码管显示可通行时间的十位*/
delay(5);/*延时*/
P2=b[2],P0=a[(WE_G+Y)%10];/*东西方向数码管显示可通行时间的个位*/
delay(5);/*延时*/
P2=b[3],P0=a[(WE_G+Y)/10];/*东西方向数码管显示可通行时间的十位*/
delay(5);/*延时*/
/*设置南北方向通行时间*/
if(K0==0)/*P3^7=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K0==0)
{
while(!
K0)/*当松开K0开关时,跳出空循环,执行后面的程序*/
{
}
SN_G++;/*南北方向绿灯时间+1*/
if(SN_G==100)
SN_G=0;/*由于使用的是两位数码管,当南北方向绿灯时间加到100后清零*/
}
}
/*设置东西方向通行时间*/
if(K1==0)/*P3^6=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K1==0)
{
while(!
K1)/*当松开K1开关时,跳出空循环,执行后面的程序*/
{
}
WE_G++;/*东西方向绿灯时间+1*/
if(WE_G==100)
WE_G=0;/*由于使用的是两位数码管,当东西方向绿灯时间加到100后清零*/
}
}
/*返回*/
if(K3==0)/*P3^5=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K3==0)
{
while(!
K3)/*当松开K3开关时,跳出空循环,执行后面的程序*/
{
}
count=0;/*清零*/
k=0;/*南北方向通车,东西方向不通车*/
SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/
light();/*调用交通灯函数*/
led();/*调用数码管函数*/
EA=1;/*CPU开放总中断*/
break;/*跳出*/
}
}
}
}
/*中断1处理程序*/
voidint1(void)interrupt2
{
P1=0xDB,P0=a[0];/*东西南北方向均红灯亮,P0口输出0*/
EA=0;/*CPU禁止响应一切中断*/
TR0=!
TR0;/*计数器停止工作*/
for(;;)/*无条件循环*/
{
/*数码管扫描程序,*/
P2=b[0];/*显示南北方向个位*/
delay(5);/*延时*/
P2=b[1];/*显示南北方向十位*/
delay(5);/*延时*/
P2=b[2];/*显示东西方向个位*/
delay(5);/*延时*/
P2=b[3];/*显示东西方向十位*/
delay(5);/*延时*/
/*返回*/
if(K3==0)/*P3^5=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(K3==0)
{
while(!
K3)/*当松开K3开关时,跳出空循环,执行后面的程序*/
{
}
EA=1;/*CPU开放总中断*/
TR0=!
TR0;/*启动计数器*/
break;/*跳出*/
}
}
}
}
/*键盘程序*/
voidkey()
{
/*南北有车而东西无车*/
if(K0==0)/*K0=0*/
{
delay(10);/*延时,把抖动的时间抛掉*/
if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 交通灯 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)