




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于STC90C5单片机的交通灯设计1、设计题目基于STC90C51单片机的智能交通灯设计2、设计要求2.1、 系统功能(1)根据交通规那么,限制宝田路和前进路方向及其人行道的交通信号灯(红、黄、绿)的通断.(2)设置信号灯的通断时间.(3)可人工干预,使交通信号灯开启不同模式.2.2、 性能参数:(1)电源:5VDC(2)LED灯电流:10mA(3)定时时间:10s-200s3、总体设计根据系统功能和设计要求,系统采用单片机限制的方案,基于HC6800s开发板,由STC90C5174HC573,交通灯模块,动态数码显示管以及4*2独立按键组成.3.1 系统工作原理在十字路口,分为宝田路和前进
2、路,正常情况下,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换.其具体状态如下:(1)普通模式:状态一:宝田路通行阶段(宝田路及其人行道亮绿灯30秒、前进路及其人行道亮红灯30秒);状态二:黄灯阶段(宝田路和前进路亮黄灯5秒、两侧人行道亮红灯5秒);状态三:前进路通行阶段(前进路及其人行道亮绿灯30秒、宝田路及其人行道亮红灯30秒);状态四:黄灯阶段(宝田路和前进路亮黄灯5秒、两侧人行道亮红灯5秒);返回到状态一.(2)顶峰期模式(设宝田路为主干道):按下按键2(key2),开启顶峰期模式;60秒、前进路及其人行道亮红灯状态一:宝田路通行阶段(宝
3、田路及其人行道亮绿灯30秒);状态二:黄灯阶段(宝田路和前进路亮黄灯5秒、两侧人行道亮红灯5秒);状态三:前进路通行阶段(前进路及其人行道亮绿灯30秒、宝田路及其人行道亮红灯30秒);状态四:黄灯阶段(宝田路和前进路亮黄灯5秒、两侧人行道亮红灯5秒);返回到状态一;按键2释放,回到普通模式.(3)紧急模式:按下按键1(keyl),开启紧急模式,所有道路及其人行道均红灯亮,数码管不显示.释放按键1,回到普通模式.3.2 单片机交通限制系统的功能要求本设计能模拟根本的交通限制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,通行时间调整功能和紧急情况全面禁行.(1)倒计时显示倒计
4、时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止和“通过两者间作出适宜的选择.驾驶员和行人普遍都愿意选择有倒计时显示的信号限制方式,并且认为有倒计时显示的路口更平安.倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的一种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止和“通过两者间作出适宜的选择.(2)时间的设置本设计中对时间进行了人为限制设置,正常情况下宝田路和前进路的绿灯通行与红灯禁行时间均设置为30秒、黄灯等待时间设置为5秒.假设前进路为主干道,考虑到主干道在上下班顶峰期车流量和人流量较大,人为增加开关K2.当K2开启时,主干道前进路上绿灯通行时间和宝田
5、路上的红灯禁行时间更改为60秒,其余设置均不变;当K1关闭时,又恢复正常情况下的时间设置.(3)紧急情况全面禁行本设计中在紧急情况下增加了全面禁行状态,增加开关K1.当K1开启时,宝田路和前进路及其各自人行道均量红灯禁行;当K1关闭时,交通灯恢复正常状态.4、详细设计一硬件设计为了实现本设计要求的具体功能,选用STC90C51单片机及外围器件构成最小限制系统,10个发光二极管分别分成两组红黄绿和两组红绿灯构成信号灯指示模块,4个LED动态数码管构成各个方向倒计时显示模式,两个按键分别用来设置顶峰期模式和紧急模式.4.1、 单片机系统设计更具人性化.同时将时间数据倒HC6800s整体结构视图:部
6、单片机设计交通灯限制系统,可用单片机直接限制信号灯的状态变化,根本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,单片机上电后,系统进入正常工作状态,执行交通灯状态显示限制,计时输入到LED数码管上实时显示.PlM-l.K.E'J1-1STC90C51内部结构图:STT9OC51RC/RD-前刊内部第掷幅图IWJ.D心凡AFlUFLJFl1出MlrdyM-ijSJyM-lnrijn.3wn口mswI/FJ.frmr:XTAI.:AbUJpnlpL户藤注71M口-sv*TfrT14J十一Lo4yThvl411L453*1-J3JJs33,IT;上,;*,/士
7、12郎.|1313b/n上口<JbsJ3MIDXLw,TnhrouHk图再肛吐此总灯已印0也nRnBggngsnnnMSTC90C51芯片引脚图:4.2、 LED数码管显示屏设计LED动态数码管的显示原理为:2位8段数码管电路采用“共阳连接驱动代码,如右图所示.段码和位码,段码即段选信号SEG,它负责数码管显示的内容,图中ag、dp组成的数据a为最低位,dp为最高位就是段码.位码即位选信号DIG,它决定哪个数码管工作,哪个数码管不工作.LED数码管显示代码表如下表所示:显示数值dp,g,f,e,d,c,b,a代码0011111110x3f1000001100x062010110110x5
8、b3010011110x4f4011001100x665011011010x6d6011111010x7d7000011010x078011111110x7f9011011110x6fHC6800s开发板中动态数码管模块原理图如下列图所示:CADEC-力add一耻侬心里包Em-鼾一SSI:l3KI叫小llllumm炉芯IF4.3、 交通灯设计HC6800S开发板中交通灯模块原理图如下列图所示,宝田路红黄绿灯及其人行道上的红绿灯和前进路上的红黄绿灯由JP1限制,前进路人行道上的红绿灯由J22限制.交通灯)IQ.口5、详细设计一软件设计5.1、 软件开发工具和环境keilC51科Vision6.1
9、25.2、 软件总体设计5.2.1 总体结构流程图如下5.2.2 子结构软件设计(1)普通模式程序流程简图如下:程序源代码如下:while(1)if(S=71)S=0;/*宝田路通行,宝田路绿灯亮30秒*/if(S<31)Data0=0x00;Data1=0x00;Data2=duan(30-S)/10;Data3=duan(30-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;GREEN10=0;GREEN11=0;RED00=0;RED01=0;)/*黄灯
10、阶段,5秒*/elseif(S<36)Data0=0x00;Data1=0x00;Data2=duan(35-S)/10;Data3=duan(35-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;)/*前进路通行,前进路绿灯亮elseif(S<66)Data0=0x00;Data1=0x00;Data2=duan(65-S)/10;Data3=duan(65-S)%10;/将所
11、有的灯都熄灭/宝田路人行道绿灯亮/宝田路绿灯亮/前进路人行道红灯亮/前进路红灯亮/将所有的灯都熄灭/宝田路人行道红灯亮宝田路黄灯亮/前进路人行道红灯亮/前进路黄灯亮30秒*/Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;GREEN00=0;GREEN01=0;/*黄灯阶段,5秒*/elseData0=0x00;Data1=0x00;Data2=duan(70-S)/10;Data3=duan(70-S)%10;Data4=0x00;Data5=
12、0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;所需延时子函数源代码如下:voiddelayms()延时子函数,延时约10msuinta,b;for(a=10;a>0;a-)for(b=110;b>0;b-);程序源代码如下:*/*按下按键1,开启紧急模式,所有红灯亮,数码管不显示if(key1=0)delayms();去抖延时if(key1=0)Data0=0x00;Data1=0x00;Data2=0x00;Data3=
13、0x00;Data4=0x00;Data5=0x00;Data6=0x00;Data7=0x00;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;RED00=0;RED01=0;while(!key1);按键1释放)keyscan();(4)顶峰模式程序流程简图如下:程序源代码如下:60秒*/*按下按键2,开启上下班顶峰期模式,主干道宝田路绿灯时间为voidkeyscan()if(key2=0)delayms();/去抖延时if(key2=0)while(1)if(key2!=0)break;当按键2释放,跳出循环if(M=101)M=
14、0;if(M<61)Data0=0x00;Data1=0x00;Data2=duan(60-M)/10;Data3=duan(60-M)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;GREEN10=0;GREEN11=0;RED00=0;RED01=0;elseif(M<66)Data0=0x00;Data1=0x00;Data2=duan(65-M)/10;Data3=duan(65-M)%10;Data4=0x00;Data5=0x00;Data6=D
15、ata2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;elseif(M<96)Data0=0x00;Data1=0x00;Data2=duan(95-M)/10;Data3=duan(95-M)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;GREEN00=0;GREEN01=0;elseData0=0x
16、00;Data1=0x00;Data2=duan(100-M)/10;Data3=duan(100-M)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;while(!key2);/等待按键释放)5.3、 定时程序设计进入主程序后,首先要对定时器和中断有关的存放器初始化.初始化过程如下:(1) 对TMOD赋值,确定定时器的工作方式;(2) 计算初值,并将初值写入;(3) 中断方式时,那么对IE赋值
17、,开放中断;(4) 使定时器运行限制端置位,启动定时器来计数.本次设计使用了定时器0的工作方式,50ms中断一次,而交通信号灯倒计时计数需要定时1s,通过计算,确定TH0和TL0应装入的初值为60和176,即0x3C和0xB0.定时程序源代码如下:voidinit()TMOD=0x01;/设置定时器工作方式TH0=0x3C;/装初值TH1=0xB0;EA=1;/开启总中断ET0=1;/开启定时器中断TR0=1;启动定时器)voidT0_time()interrupt1TH0=0x3C;/重装初值TH1=0xB0;T+;if(T=20)S+;/S计数M+;/M计数T=0;/1秒时间到,T清0重新
18、再计20次)5.4、 数码管显示程序设计通过单片机的定时器中断程序设计,可以限制数码管在动态显示时每1秒变换一次,也就是计数一次,根据定义的全局变量和I/O,在显示子函数中实现数码管的位选和段选并能够在主函数中调用实现倒计时循环显示.显示子函数代码如下:voidDisplay./显示子函数uchari;uintj;for(i=0;i<8;i+)Weixuan=weii;送位选数据Duanxuan=Datai;/送段选数据j=10;扫描间隔时间设定while.-);Duanxuan=0x00;/消隐6、系统制作、调试和实验6.1、系统制作1 .使用keilC51编写程序;2 .将编好的程序
19、“.C文件用KeilC51转换成“.hex文件;3.将开发板根据如下图的连线方式连接成功;4.用普中科技自己的下载软件PAISP自动下载软件将“.hex下载到开发板上,下载步骤如下:1) .插上USB口,翻开开发板电源开关,然后翻开普中ISP下载软件,在usb转串口驱动安装成功后,翻开软件应该有串口号;2) .芯片类型选择STC90C5XX3) .同时需要把开发板中J0跳线帽拔掉,设置成USB接口,加载我们要下载到单片机里的翻开文件程序,单击,选择下载的后缀为.Hex的文件;下羲程序4) .点击下载程序,即可下载成功.5) 观察运行现象是否与设计结果相符;6.2、 硬件调试硬件局部是在51单片
20、机上完成,所以调试过程比拟简单.首先根据电路原理图进行检查,检查无误后进行按键、数码管和发光二极管的检测.6.3、 软件调试首先用keilC51软件对程序进行编译和调试,经过对程序屡次修改后,编译通过,结束软件调试.6.4、 联合调试硬件调试和硬件调试结束之后,将最终调试好的程序下载到单片机上,观察结果并进行调试.6.5、 系统实验经过屡次调试,最终可以在单片机上观察到本次设计的实验结果:(1) 用发光二极管模拟的红黄绿交通信号灯有序闪烁,实验现象正确;(2) 动态数码管可以显示到信号灯颜色改变所剩时间,并采用倒计时方式计数;(3) 按下按键1,所有道路及其人行道的红灯亮,数码管均不显示,开启
21、紧急模式;(4) 按下按键2,主干道绿灯时间变为60秒,其余均不变,开启顶峰期模式.7、总结7.1、 工作总结在本次智能交通信号灯的设计中,我主要负责的是软件局部以及最后的联合调试局部.主要有:(1) 编写代码.本次程序的编写我用的是C语言,一是由于之前在大一有上过C语言的课,对C语言不会感到很陌生,二是学习过程中,教材也都是C语言教程.一开始我们方案仅实现普通模式下的智能交通信号灯的限制.同时我们参考了单片机自带的程序,后来经过深入学习,发现只有普通模式太过简单,所以我们就打算尝试一下能否实现紧急模式和顶峰期模式.(2) 联合调试.由于单片机自带交通灯模块,所以我觉得调试应该比拟简单,直接将
22、程序烧录到单片机上就可以了.没想到在这个过程中还出现了很多了问题.比方发光二极管一直亮或者不亮,数码显示管显示错误等.我以为是程序出了问题,就一直在修改程序,结果发现,很大一局部原因是由于我们太粗心了,把线接反了或者接触不良,原来是硬件的问题.所以在联合调试的过程中,一定要同时兼顾软件和硬件的调试.本次设计还存在一些问题如下:(3) 由于我主要负责软件局部,所以在后期的联合调试局部出了很多问题,主要是由于我对硬件局部不够熟悉,这是本次实验中我主要需要改良的地方;(4) 在编写代码的过程中,我还发现了一些自身存在的问题,比方说主函数写的过长,容易造成里面的括号丧失,代码后面不加注释,代码没有层次
23、感,使程序看起来很舌L,而且在查找问题时也不方便,还有就是对语句运用不够熟悉,容易犯一些语法错误,这一点还需要加以改良.(5) 本次设计编译程序之后直接在单片机上调试较为麻烦,这一点需要改良,可参加仿真调试.7.2、 心得体会本次科研练习接近尾声,从一开始根本不了解科研练习是什么,需要做什么,到确定题目,一起学习,编写程序,硬件软件调试到最后的报告撰写,我真的觉得自己收获了很多.不仅仅是感受到了我们这个团队的合作精神,还有自己的那一份责任感,既然是小组合作完成一个工程,那就必须要每个人确确实实的做好自己的工作,只有这样,我们的设计才是完整的.本次科研练习我们选择的是智能交通灯的设计,说实话,老
24、师让我们确定题目时,我们也不知道自己能做什么擅长做什么,甚至不确定是否能完成这个工程.确定这个题目之后,也是没有头绪,不知道要怎么开始.后来我们明确了一下分工,我主要负责软件局部,硬件我们是用的单片机,所以我就开始学习单片机的C语言.我用的教材是郭天祥老师主编的?51单片机C语言教程?,我觉得这本书最大的好处就是通俗易懂,很适合我这样的单片机新手.一边看书学习,一边就开始编写程序,编写程序首先得确定算法,我还是没有概念,所以我就参考了别的交通信号灯的程序,我觉得编程是一件很神奇的事情,我们的很多想法靠着这些代码就能够实现,这极大的激发了我的好奇心,就想一定要完成这个程序.我们本来是打算做个普通
25、模式就结束,做出来之后又想挑战一下自己,就做了个紧急模式和顶峰期模式.在做普通模式时还觉得很简单,想着变成也不是那么难的一件事,但是在做顶峰期模式时,就出现了很多问题,反复调试了很屡次还是不行,我们就去请教别人,别人一眼就发现了其中的问题,我们也恍然大悟了.所以以后还是要不断的学习,积攒经验,才能够少犯一些低级错误.通过这次科研练习,真的学到了很多东西,也发现了自己本身的一些局限性,希望自己以后能够多向优秀的人学习,弥补自身缺乏.本次科研练习使我们团队合作的结果,每一个人都不可缺少,真的很感谢此次练习,让我体会到了团队合作的重要性,感谢我的队友们.附:交通信号灯程序源代码#include<
26、;reg51.h>#defineucharunsignedchar#defineuintunsignedint# defineWeixuanP1# defineDuanxuanP0# defineledP2sbitRED10=P2A0;/sbitGREEN10=P2A1;/sbitRED11=P2A2;sbitYELLOW11=P2A3;sbitGREEN11=P2A4;sbitRED00=P3A0;sbitGREEN00=P3A1;sbitRED01=P2A5;sbitYELLOW01=P2A6;sbitGREEN01=P2A7;sbitkey1=P3A3;sbitkey2=P3A5;
27、/定义使用的I/O口上人行道红灯上人行道绿灯/右人行道红灯/右人行道绿灯位选限制ucharcodewei=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/ucharcodeduan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/段选显示码ucharData8;ucharT,S,M;/*声明全局函数*/voidDisplay();voidinit();voiddelayms();voidkeyscan();voidmain()S=0;M=0;ini
28、t();/初始化函数while(1)if(S=71)S=0;/*宝田路通行,宝田路绿灯亮30秒*/if(S<31)Data0=0x00;Data1=0x00;Data2=duan(30-S)/10;Data3=duan(30-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();将所有的灯都熄灭/宝田路人行道绿灯亮/宝田路绿灯亮/前进路人行道红灯亮/前进路红灯亮led=0xFF;/RED00=1;GREEN00=1;GREEN10=0;GREEN11=0;RED00=0;RED01=0;/*黄灯阶段,5秒*/elsei
29、f(S<36)Data0=0x00;Data1=0x00;Data2=duan(35-S)/10;Data3=duan(35-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();将所有的灯都熄灭/宝田路人行道红灯亮/宝田路黄灯亮/前进路人行道红灯亮/前进路黄灯亮30秒*/led=0xFF;/RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;/*前进路通行,前进路绿灯亮elseif(S<66)Data0=0x00;Data1=0x00;Data2=du
30、an(65-S)/10;Data3=duan(65-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;GREEN00=0;GREEN01=0;/*黄灯阶段,5秒*/elseData0=0x00;Data1=0x00;Data2=duan(70-S)/10;Data3=duan(70-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1
31、;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;YELLOW01=0;/*按下按键1,开启紧急模式,所有红灯亮,数码管不显示*/if(key1=0)delayms();/去抖延时if(key1=0)Data0=0x00;Data1=0x00;Data2=0x00;Data3=0x00;Data4=0x00;Data5=0x00;Data6=0x00;Data7=0x00;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;RED00=0;RED01=0;while(!key1);/按键1释放)keyscan();/*按下按键2,开启上下班顶峰期模式,主干道宝田路绿灯时间为60秒*/voidkeyscan()if(key2=0)delayms();/去抖延时if(key2=0)while(1)if(key2!=0)break;/当按键2释放,跳出循环if(M=101)M=0;if(M<61)Data0=0x00;Data1=0x00;Data2=duan(60-M)/10;Data3=duan(60-M)%10;Data4=0x00;Data5=0x00;Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年幼儿园上年工作方案
- 高三下学期《好心态、好状态》主题班会课件
- 2025年电子视力测量仪项目可行性研究报告
- 阅读区自制图书教案
- 2025年玻璃卡项目可行性研究报告
- 2025年特氟龙加热器项目可行性研究报告
- 2025年燃煤添加剂项目可行性研究报告
- 上海财大北郊高级中学2025年高三下学期期末复习检测试题(一模)数学试题含解析
- 长江艺术工程职业学院《体育舞蹈理论与实践Ⅰ》2023-2024学年第一学期期末试卷
- 郑州食品工程职业学院《私教实践指导》2023-2024学年第二学期期末试卷
- 东湖高新区2023-2024学年下学期期中七年级数学试题(含答案)
- 劳务派遣劳务外包项目方案投标文件(技术方案)
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 一种基于STM32的智能门锁系统的设计-毕业论文
- 《种子法》知识考试题库(含答案)
- T∕CAAA 030-2020 澳洲白绵羊种羊
- 微波-PATHLOSS软件的应用-入门指导
- 蓝牙音响成品检验规范
- 材料5:个人征信系统机构接入和接口验收工作流程
- 项目选址比选方案分析参考范本
- 初三化学酸碱盐的鉴别
评论
0/150
提交评论