基于单片机的交通灯设计.docx
《基于单片机的交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计.docx(15页珍藏版)》请在冰豆网上搜索。
![基于单片机的交通灯设计.docx](https://file1.bdocx.com/fileroot1/2023-1/14/49f74a36-eac1-4374-af09-5450feedc315/49f74a36-eac1-4374-af09-5450feedc3151.gif)
基于单片机的交通灯设计
单片机课程设计
题目基于单片机的交通灯设计
1前言
今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
1914年,电气启动的红绿灯出现在美国。
这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。
道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。
现在交通系统已不能满足经济发展的需求。
由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。
在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。
并在一定程度上尽可能的降低由道路拥挤
造成的经济损失,同时也减小了工作人员的劳动强度。
中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。
智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。
使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
2课程设计的目的
了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED显示问题的解决。
2.1设计思路
1分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
2确定系统交通控制的总体设计,包括,十字路口具体的通行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示。
3进行显示电路,灯状态电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。
4进行软件系统的设计,对于本系统,本人采用语言编写程序,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。
3课程设计的任务和要求
3.1设计任务
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
红灯的设计时间为15秒,绿灯为15秒,黄灯5秒。
设A道和B道的车流量相同。
3.2基本要求
1.打印单片机课程设计说明书一份,给出课题的设计和制作、调试过程。
2.根据技术指标要求,画出设计电路图,画出印制电路版图。
3.设计时间:
一周。
4.制作实物。
5.人员分组,两人一组,选择同一课题的电路相同,但课程设计报告不能完全相同。
4设计方案与论证
4.1电路设计
图4-1电路原理图
东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间、指示灯燃亮的方案如表4-1。
红绿灯状态转换:
S1:
南北绿灯亮,东西红灯亮。
S2:
南北黄灯亮,东西红灯亮。
S3:
南北红灯亮,东西绿灯亮。
S4:
南北红灯亮,东西黄灯亮。
状态
S1
S2
S3
S4
时间
15s
5s
15s
5s
东西道
红灯亮
红灯亮
绿灯亮
黄灯亮
南北道
绿灯亮
黄灯亮
红灯亮
红灯亮
表4-1 十字路口指示灯燃亮方案
4.2仿真
图4-2S1仿真图
图4-3S2仿真图
图4-4S3仿真图
图4-5S4仿真图
5设计原理及功能说明
5.1设计原理
根据十字路口交通灯的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括LED灯和数码管;第三是电源模块,给各模块提供电源,让各模块工作。
采用单片机AT89C51作为控制器。
单片机运算能力强,软件编程灵活,自由度大。
在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用AT89C51单片机稳定可靠、应用广泛、通用性强。
采用全数码管显示。
这种方案只显示有限的符号和数码字符,简单,方便。
该系统要求完成状态灯显示的功能。
求于要求简单,我们把各个路口的红灯、绿灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需三个状态灯,一个共有的绿灯,一个共有的红灯,一个共有的黄灯。
5.2功能说明
东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
红灯的设计时间为15秒,绿灯为15秒,黄灯5秒。
6硬件的制作与调试
6.1硬件制作
焊接时注意烙铁的使用方法,先使烙铁预热,一定时间后再焊接,把烙铁放在电路板的小铜片上使铜片预热,再把锡丝放在铜片上,让锡丝融化,再抽去焊锡丝,移开烙铁。
连接导线时最好使导线中间留一层绝缘皮,就不容易短路。
最后用胶棒再对电路板进行密封,以进一步防止短路现象发生。
三极管的极性一定不能接错,元件排列整齐美观。
本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:
单片机控制系统、状态显示模块、倒计时模块、电源模块。
经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;以电池供电作为系统电源部分,可对各个模块供电并便于演示。
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
它由单片机振荡电路、复位电路等组成。
STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[1]
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.共3个16位定时器/计数器。
即定时器T0、T1、T2
10.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
11.通用异步串行口(UART),还可用定时器软件实现多个UART
12.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
13.PDIP封装
6.2实物调试
为安全起见,防止硬件烧坏,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确,各个线路的电平是否正常。
经检测,未出现短路现象以及各个电平都正常。
1关掉交流电源开关,用万用表直流电压档测量稳压输出电压,测量结果只有4.2V,用12V电源直接接入7805输入端,测量输出电压达到4.99V。
经检查分析为稳压芯片7805输入端电容没有接入,输入电压变化太大,造成7805无法稳压。
经处理问题解决。
2 检查系统时钟是否正常工作,用万用表直流电压档测量XTAL1与AXTAL2两端间的电压,检测到电压若为2.5V左右,则视为正常工作。
3 检查复位电路是否正常工作。
4检查数码管显示和LED灯是否正常。
5.3 基本要求部分的测试与分析
5系统上电后,显示交通灯基本状态,按中断按键,中断正常,直接进入S5状态,按复位按键,整个系统复位成功。
6 按高低峰切换按键,系统即时切换到高峰时段方案,再按下高低峰切换按键,系统即时切换到低峰时段方案,最后按下高低峰按键,系统重新进入预定流程。
7在未进行任何的中断和复位操作时,交通灯按照预定流程进行,在高低峰两个设定时段内变化。
7结论
经过一个星期的课程设计,留给我印象最深的是设计一个成功的电路,必须要有扎实的知识基础。
本产品能通过声音的频率来控制灯的闪烁,个人感觉其功能还算比较完善。
此次的设计并不奢望十全十美,当中不完美的地方有:
所设计的电路比较简单,但这也让我有更多的时间对所学的专业知识运用到一些细微的方面,我们组每个人也都做了一个成品,还一块做了一个上交上去;答辩时准备不是太充分,让我明白了演讲前一定要有所准备和演讲时一定要摆正好自己的心态。
做设计的目的是希望能检查下对所学知识的运用能力的好坏,并对以后的课程学习打好基础,提高自己的动手能力,并且开始慢慢走上电子产品创新的道路。
在焊接的过程中,焊接技术对我们来讲是一个考验,焊接的过程中尽管我们已经很认真的焊接了,可是仍然出现了虚焊的问题,而且后来的排查过程也非常的麻烦,所以这让我们懂得,做技术还是做工程,要脚踏实地,每一个环节都要做好,做到位。
俗话说:
"磨刀不误砍柴工",这句话应该是我以后在做设计时应该牢记的。
首先,应该对电路的布局有一个整体的考虑,做到元件的布置合理,避免出现短路,断路情况,而且应尽量使元件均匀地分布在整个电路板上,注意对称。
其次在焊接过程要谨慎,避免出现接点之间的粘连和虚焊等情况。
最后,要认真检查电路在确认准确无误后,接通电源进行调试在调试过程中,会遇到许多麻烦,我发现三极管的焊接有问题,原来是引脚焊接反了。
还有,应该接在同一个点的线没有接在一起,但是这样还是不行经过仔细检查后发现,问题是两排接地线没有连在一起。
但是,结果还是没有想象中的那么完美。
通过我们不懈的尽力与切实寻求,终于做完了课程设计。
在这次课程设计进程中,我也碰到了良多问题。
在做本次课程设计的过程中,我感触最深的当属查阅了很多次设计书和指导书。
但是问题并没有得到根本性的解决。
首先,我只是知道此次的课程设计任务需要的一些新的元器件,例如驻级话筒,三极管等。
但是并不知道如何把它们组合起来,组成一个系统的,模块清晰,能够很好完成功能的整体。
于是我们上网搜,图书馆查阅资料,看书,问老师。
终于能够从整体上来把握。
思路也逐渐的清晰了起来,整体的框架在我的脑海里慢慢的显现。
很快,便有了整体的方案。
接下来分别考虑了电路的细节,最后如期的完成了初步的设计雏形。
为了让自己的设计更加完善,更加符合工艺标准,一次次翻阅热处理方面的书籍是十分必要的,同时也是必不可少的。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作铺展了道路。
另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,这也是我作本次课程设计的一大收获。
整个设计我基本上还满意,由于水平有限,难免会有错误,还望老师批评指正。
这次课程设计让我学到了许多,不仅是坚固了先前学的模电、数电的实践常识,而且也培育了我的着手才能,更令我的发明性思维得到拓展。
参考文献
[1]李海滨.片春媛.许瑞雪编.《单片机技术课程设计与项目实例》,中国电力出版社,2009
[2] 王静霞主编.《单片机应用技术》.电子工业出版社,2009
[3] 雄建云主编.《Protel99 se EDA技术及应用》.北京机械工业出版社,2007 。
[4] 曹天汉主编.《单片机原理与接口技术》,电子工业出版社,2009
[5]何立民主编.《单片机高等教程》.北京航空航天大学出版社,2000
[6] 何立民主编.《单片机应用系统设计系统配置与接口技术》,北京航空航天大学出版社,200
附录一:
总体电路原理图
附录二:
元器件清单
序号
名称
型号
数量
1
单片机
STC89C52
1
2
双位数码管
共阳极
1
3
LED灯
红黄绿
12
4
电阻
220欧
8
5
电阻
4.7k
2
6
电阻
1k
12
7
三极管
PNP
2
8
电容
22pf
2
9
晶振
11.0592
1
10
电解电容
10uf
1
11
按键
普通
1
附录三:
运行程序
#include//我们对51单片机编程,要引用头函数
#include
sbitled_A=P3^5;//数码管位
sbitled_B=P3^4;//数码管位
//***************led指示灯引脚定义*****************//
sbitdx_R=P2^0;
sbitdx_Y=P2^1;
sbitdx_G=P2^2;
sbitnb_R=P2^3;
sbitnb_Y=P2^4;
sbitnb_G=P2^5;
bitflag=0;
sbitkey_stop=P3^3;
charN=25;//初始时间是25
chartab_disp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳极码表
/*延时子函数*/
voiddelay(intt){while(t--);}
/*显示子函数*/
voiddisplay(chardat)
{
led_A=1;//先位灭显led_A=
P1=0XFF;//再段灭显
P1=tab_disp[dat/10];//赋显示的数
if(dat/10)led_B=0;
delay(1000);//延时
led_B=1;//段灭显位灭显led_B=
P1=0XFF;
P1=tab_disp[dat%10];//赋显示的数
led_A=0;
delay(1000);//延时
}
//这个是循环显示60遍显示的函数
voiddeal(charm)
{
intt=30;
while(t--)display(m);//循环显示60遍显示的函数
}
voidKEY()
{
unsignedcharsave;
if(key_stop==0)
{
delay(20);
if(key_stop==0)
{
flag=1;
save=P0;
P0=0x84;
while(key_stop==0);
while(flag==1)
{
if(key_stop==0)
{
delay(50);
if(key_stop==0)
{
flag=0;
P0=save;
while(key_stop==0);
}
}
}
}
}
}
/*主函数*/
voidmain(void)
{
unsignedchari;
while
(1)
{
N=15;//初始时间是25
dx_R=0;dx_Y=1;dx_G=1;//指示灯0是亮,1是灭
nb_R=1;nb_Y=1;nb_G=0;//指示灯0是亮,1是灭
for(i=N;i>0;i--)//一秒一秒的减
{
deal(i);
deal(i);
}
N=5;//初始时间是25
dx_R=0;dx_Y=1;dx_G=1;//指示灯0是亮,1是灭
nb_R=1;nb_Y=0;nb_G=1;//指示灯0是亮,1是灭
for(i=N;i>0;i--)//一秒一秒的减
{
deal(i);
nb_Y=1;
deal(i);
nb_Y=0;
}
N=15;
dx_R=1;dx_Y=1;dx_G=0;//指示灯0是亮,1是灭
nb_R=0;nb_Y=1;nb_G=1;//指示灯0是亮,1是灭
for(i=N;i>0;i--)//一秒一秒的减
{
deal(i);
deal(i);
}
N=5;//初始时间是25
dx_R=1;dx_Y=0;dx_G=1;//指示灯0是亮,1是灭
nb_R=0;nb_Y=1;nb_G=1;//指示灯0是亮,1是灭
for(i=N;i>0;i--)//一秒一秒的减
{
deal(i);
dx_Y=1;
deal(i);
dx_Y=0;
}
}
}
附录四:
实物图