交通灯课程设计.docx
- 文档编号:9646712
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:20
- 大小:263.60KB
交通灯课程设计.docx
《交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
交通灯课程设计
目录
摘要I
AbstractII
1课程设计题目1
2设计内容及要求2
2.1设计的目的及主要任务2
2.1.1设计的目的2
2.1.2设计任务及主要技术指标2
2.2设计思想2
3设计原理及单元模块设计3
3.1设计原理及方法3
3.2方案的论证3
3.3单元模块设计[4]4
3.3.1时钟电路的设计4
3.3.2复位电路的设计5
3.3.3LED数码管显示模块5
3.3.4LED红黄绿灯显示模块5
4电路仿真6
5电路安装与调试8
6心得体会9
参考文献10
附录1整体电路图11
附录2元件清单12
附录3源程序13
摘要
交通灯在我们日常生活中随处可见,它在交通系统中处于至关重要的位置。
交通灯的使用大大减少了交通繁忙路口的事故发生,给行人和车辆提供一个安全的交通环境,人们的生命和财产安全有了保障。
本设计旨在模拟十字路口的交通灯,以AT89S52单片机为基础,结合按键和数码管等元器件设计出一个简单且完全的交通灯系统。
关键词:
交通灯AT89S52单片机
Abstract
Trafficlightscanbeseeninourdailylives,itisvitalinthetrafficsystem.Useoftrafficlightssignificantlyreducestrafficaccidentsoccurredinthetrafficjam,topedestrianandvehicletraffictoprovideasafeenvironment,protectionoflifeandpropertysafetyofthepeople.Thisdesignedistosimulatetrafficlightsatthecrossroads,basedonAT89S52microcontroller,combinationwithkeysanddigitalcomponents,designasimpleandfulltrafficlightsystem.
Keywords:
trafficlightsAT89S52microcontroller
1课程设计题目
题目:
交通灯控制电路的设计
绪论:
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
2设计内容及要求
2.1设计的目的及主要任务
2.1.1设计的目的
(1)加强对单片机认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
(2)提高利用已学知识分析和解决问题的能力。
(3)提高实践动手能力。
2.1.2设计任务及主要技术指标
(1)单片机采用用AT89S52芯片,使用发光二极管(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时。
(甲车道和乙车道两条交叉道路上的车辆交替运行,每次通行时间都设25秒,时间可设置修改。
在红绿灯转换时,要求黄灯先亮5秒钟,才能变换运行车道,且黄灯亮时,要求每秒亮一次。
)
(2)设计并绘制硬件电路图
(3)焊接好元器件
(4)编写程序并将调试好的程序固化到单片机
2.2设计思想
通过分析,可以用单片机P3和P0口、锁存芯片和显示译码芯片的配合来实现控制LED灯和数码管。
通过锁存芯片实现单片机口的分时复用,简单易行,且编程简单,能实现数据的快速交换以及单片机的资源的充分利用。
采用分模块设计的思想,程序设计实现的基本思想是一个计数器,选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换,对不同的状态输入要产生相应状态的下一个状态的预置数,控制数码管的数字显示,并通过LED灯模拟交通灯的状态变化。
3设计原理及单元模块设计
3.1设计原理及方法
甲车道(东西)、乙车道(南北)交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为两干道的公共停车
时间。
30S
5S
30S
5S
……
东西道
红灯亮
黄灯亮
绿灯亮
黄灯亮
……
南北道
绿灯亮
黄灯亮
红灯亮
黄灯亮
……
说明:
(1)当甲车道为红灯,此道车辆禁止通行;乙车道为绿灯,此道车辆通过,时间为25秒。
(2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当甲车道为绿灯,此道车辆通行;乙车道为红灯,车辆禁止通过,时间为25秒。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
3.2方案的论证
方案一:
采用纯数字电路来设计,用多谐振荡器产生脉冲,用两块74LS192级联成25进制计数器,输出数据再通过74LS48译码器输出最终由数码管显示出来。
[1]
方案二:
采用单片机控制,P0口接一个四位八段数码管段选,P2口接数码管的片选以及一个方向的红黄绿灯,P3口接另一个方向上的红黄绿灯。
[4]
由于方案一用纯数字电路设计本系统,完成任务较困难,电路过于复杂,对于电路各个部分电路的设计连线非常复杂,且容易出错。
相比较而言,方案二系统灵活,若需要更新,只需要修改程序在重新写入,而且出错的时候比较容易复查。
整个设计以AT89S51单片机为核心,由时钟电路,复位电路,数码管显示,LED红黄绿灯显示组成。
[3]
硬件模块如图3-2-1。
复位电路
图3-2-1硬件模块图
根据原理分析,初步设计出整体电路图(附录一)。
3.3单元模块设计[4]
3.3.1时钟电路的设计
如图所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡,其发出的时钟脉冲直接送入片内定时控制部件,为单片机提供工作信号脉冲。
本次设计采用12M的晶振,即单片机工作速度是12M/S。
为了电路的稳定性起见,在晶振的两引脚处接入两个30pF瓷片电容接地来削减谐波对减电路的稳定性的影响。
3.3.2复位电路的设计
图3-3-2-1复位电路
如上图所示,采用上电+按钮电平复位方式,当按下按键开关时,RST管脚高电平触发。
为保证复位可靠,RC时间常数应大于两个机器周期,电容取10uf,电阻取10K。
3.3.3LED数码管显示模块
本设计中采用一个四位八段共阳数码管,共阳极数码管的8个发光二极管的阳极(二极管负端)连接在一起,接高电平(一般接电源正),为低电平驱动[1]。
片选部分和数码段显示部分,分别接单片机管脚的P2口和P0口,如图所示。
其中,A到G、DP为码段控制端口,1~4为片选端口。
图3-3-3-1四位八段共阳数码管
3.3.4LED红黄绿灯显示模块
本设计有四种状态:
状态1:
甲车道绿灯亮,乙车道红灯亮(持续25秒)。
状态2:
甲、乙车道黄灯闪(持续5秒)。
3-3-4-1状态转换图
状态3:
甲车道红灯亮,乙车道绿灯亮(持续25秒)。
状态4:
甲、乙车道黄灯闪(持续5秒)。
4电路仿真
各状态仿真结果如下[5]:
图4-1状态一仿真图
图4-1状态一
图4-2状态二仿真图
图4-2状态二
图4-3状态三的仿真
图4-3状态三
图4-4状态四
5电路安装与调试
5.1硬件调试
1、焊完电路后,按照焊接方式画一遍原理图,认真对照原有的原理图,看两者是否一致。
2、检查电源系统,以防止电源短路和极性错误。
3、利用数字万用表的短路测试功能重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路,确认各元器件可以正常工作。
将程序写入单片机以后,接电源出现数码管显示过暗的情况,通过查资料[4]和咨询同学,得知出现此种情况是由于单片机驱动电流过低所致,开始时使用三极管增大驱动电流,但是由于后来数码管出现了问题,有一段可能是被烧坏了,于是重新焊了一块电路板,这次为了增大驱动电流,我选择了添加锁存器,因为设置锁存器可以使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。
5.2软件调试
软件调试利用软件编程的方法来实现[2]。
程序写好后用protues进行仿真,发现数字的跳变不正常,经检查发现是数字代码写错,改正后显示正常。
确认无误后再将程序写入单片机,完成整个电路板的制作。
6心得体会
单片机一直是自己自学,但是对其了解还不是很多,懂得也很少,通过交通灯的学习和制作,对单片机有了初步的了解,知道了它的组成、工作原理等等。
在软件编写这一块,主程序是一位学计算机的同学给我的,我在此基础上做了些改动使其符合设计要求。
开始时遇到了很大的难题,因为我C语言学得不是特别好,所以软件这一块花了很大的一部分时间,经过自己的努力和同学的帮助,最后终于出现“0warning”和“0error”的字样。
焊接也是比较麻烦,需要连接的线有很多根,所以首先必须考虑到元器件的排布问题,尽量让自己的焊接的时候方便一点,后来又重新添加三极管的时候把数码管烧坏了一段,所以干脆重新焊了一块。
由于之前的错误,第二次焊板子的时候比较小心,所以这一次的焊接没有出现问题。
借鉴别人的经验,数码管和排阻之间用排线相连接,很大程度上节省焊接的时间,并且让板子看起来更加整洁、美观。
除了学会很多东西以为,也发现了自己的不足。
由于自己在这一方面知识的短缺,所以很多问题都需要查阅资料或者向别的同学请教。
不管是写程序还是proteus和keil的使用方法,都存在很大的不足。
还有在焊接这一方面,有时候会把器件的引脚看错,然后用吸锡器慢慢清理,这不仅浪费时间而且还可能破坏万能板,这一点说明了焊接能力还有待提升。
实验的结果是成功的,模拟出了交通灯的功能,各个按键的功能也和模拟时一致,看着数字的跳动自己信息也感到十分开心。
其实对于这个设计,它只是正常的按照时间变化使两车道正常通行或停止,其实可以多加一些设计,比如说有紧急车辆要求通过时,系统要能禁止东西和南北两条路上所有的车辆通行,或者当一套车道很空而另一条很堵塞时,可是适当缩短堵塞车道的红灯时间。
后者可以通过复位电路直接实现,而前者可能需要修改程序,由于自己知识的局限性而放弃,有点遗憾,不过能够学到东西就好。
此次试验增长了自己的单片机知识外也让我知道实践和理论学习的差别。
实践过程中学到的知识自己记得会更加牢固一些,不容易忘记。
总的来说,单片机的制作让我收获不小。
参考文献
[1]吴友宇.数字电子技术基础.北京:
清华大学出版社.2009.4
[2]谭浩强.C语言程序设计.北京:
高等教育出版社.2001.01
[3]周坚.单片机C语言轻松入门.北京:
北京航空航天大学出版社.2006.1
[4]楼然苗李光飞.单片机课程设计指导.北京:
北京航空航天大学出版社.2007.1
[5]周润景,张丽娜,刘印群.PROTEUS入门实用教程.北京:
机械工业出版社.2007.9
附录1整体电路图
附录2元件清单
数量
51型号单片机AT89S52
1
74HC573N锁存器
3
瓷片电容
30pF×2
电解电容
10μF
电阻
470Ω×610KΩ×1
排阻
10KΩ×1
12MHz晶振
1
LED灯
6(红2,黄2,绿2)
四位八段共阳数码管
1
单片机底座
1
锁存器底座
3
按键开关
1
排针
若干
附录3源程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitx1=P2^5;
sbitx2=P2^7;
sbitx_red=P2^1;
sbitx_yellow=P2^2;
sbitx_green=P2^3;
sbity1=P2^6;
sbity2=P2^4;
sbity_red=P3^3;
sbity_yellow=P3^6;
sbity_green=P3^7;
bitzwq;
ucharnumt=1;
charsmli=25;
voiddelay(ucharx);
voiddisplay();
voidinit();
ucharcodetable[]={0xa0,0xbb,0x62,0x32,0x39,0x34,0x24,0xba,0x20,0x30};
ucharcodetable0[]={0x80,0x9b,0x42,0x12,0x19,0x14,0x04,0x9a,0x00,0x10};
voidmain()
{
init();
while
(1)
{
display();
}
}
voiddelay(ucharx)
{
uchari,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay()
{
uchars,g;
s=smli/10;g=smli%10;
x1=1;
P0=table[s];
delay(5);
x1=0;
x2=1;
P0=table[g];
delay(5);
x2=0;
y1=1;
P0=table[s];
delay(5);
y1=0;
y2=1;
P0=table0[g];
delay(5);
y2=0;
}
voidinit()
{
x1=0;
x2=0;
y1=0;
y2=0;
x_green=1;x_red=0;x_yellow=0;
y_green=0;y_red=1;y_yellow=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
voidT0_time()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
numt++;
if(numt==20)
{
numt=0;
smli--;
if(smli>0&&smli<6){x_yellow=~x_yellow;y_yellow=~y_yellow;x_green=0;x_red=0;y_red=0;y_green=0;}
else{x_yellow=0;y_yellow=0;}
if(smli==-1){zwq=~zwq;}
if(smli==-1&&zwq==0){x_green=0;x_red=~x_green;y_green=1;y_red=~y_green;}
if(smli==-1&&zwq==1){x_green=1;x_red=~x_green;y_green=0;y_red=~y_green;}
if(smli==-1){smli=25;}
}
}
本科生课程设计成绩评定表
姓名
性别
专业、班级
课程设计题目:
交通灯控制电路的设计
课程设计答辩或质疑记录:
1、单片机程序怎么写进的?
答:
ISP程序下载。
2、1S怎么算出来的?
答:
晶振的频率是12MHZ,取倒之后再乘以12(单片机本身是12分频),得到1×10-6S,即每加一次时钟增加1×10-6S,我选取的是50ms中断一次,即要加50000次,那么得到1S需要中断20次,即1S=1×10-6S×50000×20。
3、复位方式是怎样的?
答:
上电+按键的复位方式。
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 课程设计