-基于单片机的交通灯显示系统的设计与研究讲解_第1页
-基于单片机的交通灯显示系统的设计与研究讲解_第2页
-基于单片机的交通灯显示系统的设计与研究讲解_第3页
-基于单片机的交通灯显示系统的设计与研究讲解_第4页
-基于单片机的交通灯显示系统的设计与研究讲解_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、萍乡学院课程设计单片机课程设计交通灯系统机电系专业班级学生姓名学生学号指导教师2016年03月20日目录摘要3引言31 .设计目的42 .设计要求43 .系统总体方案硬件设计43.1 设计思想及总体设计43.2 硬件设计53.3 复位电路93.4 数码管显示93.5 红绿灯显示103.6 键盘:独立键盘+中断103.7 系统原理图114软件设计114.1 总体流程114.2 循环流程控制思路124.3 源程序125调试运行175.1 正常运行状态175.2 左右行显示185.3 黄灯闪烁显示186.设计心得体会197参考文献19摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频

2、繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。本设计系统由单片机,交通灯状态显示系统、LED数码显示系统等几大部分组成。系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。本系统采用单片机C语言编写,主要编写了主程序,LED数码管显示程序等。总体上完成了软件的编写。关键词:交通灯;控制;AT89C51;倒计时显

3、示引言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果交通信号灯在大多数城市得到了广泛的应用。传统的交通信号灯控制一般采用了电子线路和继电器控制,结构复杂,可靠性低,故障率高。本次设计是基于AT89C51单片机的交通灯控制系统,东西南北的通行时间可调,倒计时显示通行时间灯功能,该系统具有设

4、计周期短、可靠性高维护方便、使用简单等优点。1 .设计目的1.1 巩固和加深对单片机原理和接口技术知识的理解;1.2 培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3 学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4 掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5 能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。2 .设计要求1 )东西干道和南北干道的通行分左行,右行,直行,其中左行,右行固定15秒;直行固定30秒。2 )信号灯分绿灯,红灯,黄灯,每次绿灯换红灯时,黄灯亮3秒。3 )东西干道和

5、南北干道交替控制,每次干道绿灯交替时,有3秒钟所有干道的交通灯都是黄灯闪烁3秒钟,提示已经进入路口的车辆迅速通过。4 )当遇到突发状况时,各个方向静止通行,显示红灯,并维持5秒倒计时。3 .系统总体方案硬件设计3.1 设计思想及总体设计1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示。3)进行显示电路,灯状态电路,按键电路的设计和各器件的选择及连接,大体分配各个器件及模块的基本功

6、能要求。4)进行软件系统的设计,对于本系统,本人采用C语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的设计。图1系统框图3.2硬件设计1 )单片机选型:AT89C51与MCS-51单片机产品兼容,8k字节在系统可编程Flash存储器,1000次可榛写周期,全静态操作:0Hz33Hz,三级加密程序存储器,32个可编程I/O口线,三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。功能特性描述:AT89C51是一种低功耗、高性能CMOS瓶微控制器,具有8K在系统

7、可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51具有以下标准功能:8k字节Flash,256字节RAM32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作

8、,允许RAM定日器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89C52P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程5序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p

9、l输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在

10、系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVXRI访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/

11、O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C51特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLAS

12、H闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVXF口MOVC旨令才能将ALE激活。此外

13、,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN-程序储存允许(PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,

14、当然这必须是该器件是使用12V编程电压Vpp。引脚图如下:19U2>XTAL1KTAL2RSTPD.O/ADO3930PO.1/AD137P0.2/AD23?PD3/AD335P0.4/AD4PD.5/AD533P0.6/AD6P0.7/AD72930aT22345B7HPSENALEEAP2.0/A8P2.1/A9P2.2/A10P2,3/A11P2.4/A12P2.5/A13PZ6/A14P2.7/A1521工2526P1.0P1.1Pk2P1.3P14P1.5P1.6P17P3.0/RXDP3.1HXDF32/INTcTP3.3/imTP3.4/T0P35mP3.6/WRP3.7/

15、RD10n1213五正17AT89C51图289C51引脚图3.3复位电路当8051的ALE及/PSEN两引脚输出高电平,RST引脚高电平到时,单片机复位。RST/VPD端的高电平,若直接由启动瞬间产生,则为启动复位,若通过按动按钮产生高电平复位称手动复位。图中,上电时,接通电源,电容器C相当于瞬间短路,+5V加到了RST/VPD,该高电平使8051全机复位。若运行过程中,需要程序从头执行,只需按动按钮S,则直接把+5V加到了RST/VPD,从而复位。显然,该电路即可以上电复位,也可以手动复位,是常用复位电路之一。3.4 数码管显示此处采用的数码管时共阴极数码管,GF、E、DC、B、A七个端口

16、是输入端口,对其各位进行赋值,置位则亮,复位则灭,用此来显示出相应的数字;1、2两端用来控制高位和低位的选通显示,只要对端口置位,便可以选择该端口,并对其所代表的位进行赋值,显示。正常通行状况下,数码管从30秒开始倒计时,各个方向,对应点亮红绿黄灯。遇到突发状况,数码管从5秒开始倒计时,各方向禁止通行,点亮红灯。3.5 红绿灯显示图5红绿灯显示每个路口都采用了3个LED灯来显示,分别代表红绿黄三种灯,来模拟路口交通的变换。其中D7和D8表示转弯模块。以南北方向举例,正常状况下,从30秒开始倒计时,南北方向可直行,即绿灯(D6)亮起,东西方向禁止通行,亮红灯(D2)。当显示至15秒时,南北方向可

17、直行和转弯,即两当显示至3秒时,通知车辆快速D2)。个绿灯(D6和D7)亮起,东西方向禁止通行,亮红灯(D2)。通过,南北黄灯(D5)闪烁,东西方向禁止通行,亮红灯(3.6 键盘:独立键盘+中断采用开关来控制进入中断,图标泮|立键盘+中断可以若蓝h出现紧急情况时拉动开关。使红绿灯发生相应的改变,已处理紧急情况下车辆通行。当发生突发情况时,如救护车通过,接通上面的按键,各个方向中止当前状态,即禁止通行,各个方向点亮红灯,并维持5秒倒计时。当结束5秒倒计时,各个方向恢复到中止前的状态。103.7系统原理图ffiS1阳:rE106E,手一*等王-41C2XIc:aye_pXTALlFWM1rajmd

18、iFO2增R2RO,DQHL«D4Hl倒但paALE2CM事工9BZ*1FZ»,1rliF三912FZSEftO甲£&a1,FZJMB中由t.t11RP2PE雨#粕1.jUWpi2flfra”jwnFa-*=2STlraaWWraj标4软件设计4.1总体流程11RP1£"-310F13RIOim:T&«T图7总电路图R7irevTER1"QJF:11南北绿东西红30s倒计时显示图8流程图黄灯亮3s4.2 循环流程控制思路图9流程控制图4.3 源程序#include<reg52.h>#include

19、<intrins.h>#defineuintunsignedint#defineucharunsignedcharuchartemp,aa,nn;sbitrn=P2A0;sbitnb=P2Al;sbitgn=P2A2;sbitrw=P2A3;sbitdx=P2A4;sbitgw=P2A5;sbitshi=P3A6;sbitge=P3A7;/*对要使用的单片机各个口进行定义*/bitflag=0;ucharcodetable尸0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;

20、/*将数字0123456789的16进制数定义成数组用以显示*/voiddelay(uintz);voiddisp(uintn);voidnb_flash(void);12voiddx_flash(void);voidxint0();voidtimer0();voidLED_ON();voidxint1();voidnanbei();voiddongxi();/*将所使用的子函数定义*/voidmain()uintnum;num=0;aa=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;EX0=1

21、;IT0=0;EX1=1;IT1=1;/*中断初始化*/while(1)nanbei();nb_flash();dongxi();voiddelay(uintz)uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);13)voidtimer0()interrupt1(TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;if(aa=9)(aa=0;flag=1;)voiddisp(uintn)/*显示子函数*/(while(!flag)(ge=0;P0=tablen%10;delay(50);shi=1;ge=1

22、;shi=0;P0=tablen/10;delay(50);shi=1;ge=1;)if(flag=1)flag=0;)voidnanbei()/*南北方向的红绿灯和数码管显示子函数*/(uintnum;num=30;disp(num);while(num<=30&&num>15)14num-;P2=0xf3;disp(num);)while(num<=15&&num>4)/*南北方向及转弯的红绿灯和数码管显示子函数*/(num-;P2=0xb3;disp(num);)voidnb_flash(void)/*南北方向的黄灯和数码管显示子函

23、数*/(uinta;for(a=3;a>0;a-)(P2=0xf5;nb=1;delay(100);nb=0;disp(a);)voiddongxi()/*东西方向的红绿灯和数码管显示子函数*/(uintnum;num=30;while(num<=30&&num>15)(P2=0xde;disp(num);num-;)15while(num<=15&&num>3)/*东西方向及转弯的红绿灯和数码管显示子函数*/(num-;P2=0x5e;disp(num);while(num<=3&&num>0)/*东西

24、方向的黄灯和数码管显示子函数*/(P2=0xee;dx=1;delay(100);dx=0;disp(num);num-;voidxint0()interrupt2/*中断定义*/(TH0=(65536-50000)/256;TL0=(65536-50000)%256;LED_ON();voidLED_ON()(uintb;rn=0;rw=0;gn=1;gw=1;nb=1;dx=1;for(b=5;b>0;b-)(ge=0;shi=1;16P0=tableb;delay(1000);ge=1;shi=1;)return;)5调试运行5.1正常运行状态ACtk,nr4££

25、;¥KTALIXTAI2殖口前帕F0.VAB1PDAJDZif口*mFELWAJI.P口与痢IS叩H篇的FD.TCAW1OjIPW,PZ.TiWP工WAfDIP23A11P2.*ACP2SAEIfZSAUPLT砥F3£VPU>3>FD-lfMFlTWTOpiTirrP3*TDP3JmPmjSETPJ?WRFHRHEJ:zieH«21口d*FFHEKT'imfTExRIImhaPS.4时他4«TM*-JRSMes|gDerR11-P25NFT-FZ.-B图10正常运行状态IM£R印4TMs1CD175.2左右行显小U1J.E=

26、:FACt:-H匚匕AiiRI-1I:艮国,蛆叼MET-V2.1SC1II_ZT±:-11I1卜-rL-I75.3黄灯闪烁显示:XTA11fOITADDB.1陋口1口加丹ffUJADl口口.U.W口与内口,Ml-TCADTPSElALBEKP1J3P1.1P1ZFXWAffN.lf心12X10F2N>m依川其立f'2£VAi3PHjSM*17陋1,fOURXUF3.inx&E1-i'UTTManinP3.4HT3F3ST1ii«nw71PEOFnrrKP工EgPZ«Z?FHH:3PZ7FT因口um=TEOT图11左右行显示i

27、mELbOW<TEXEEIL”GREENTE-TEmPDIVADaFEM优。1PDAOZPQJ'Ain2MAM,口王他心PQj&AMiF口了京PTP2IT>EEgpza'AitPZ.AIZPZSAGRZSAUFS.Tfft*PIfVfO®P3.in>PP3iTinnF3i1ITTP3jST?I灯后MKPl.TiW!ITTTTLE6-OF.EB用TELgfCTB<T>图12黄灯闪烁显示186,设计心得体会一周的单片机课程设计很快就结束了,在这一周当中,虽然开始有点困难,但是经过我们们分工合作,合理地进行设计安排,再加上老师的耐心指导

28、,我们们终于顺利地完成了本次单片机课程设计,同时也学到了很多东西。在本次课程设计中,我们通过动手实践操作,进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、制作、调试的方法。在设计时根据课题要求,复习相关的知识,查询相关的资料。根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。提高动手实践能力,提高科使知识更加丰富,使自己只有通过合理的分工合作,这次的单片机课程设计重点是通过实践操作和理论相结合,学的思维能力,更在一周的时间了解了更多的有关单片机的知识,更加充实。与此同时,我们也对团队分工合作有了进一步的认识,我们们才能够在短短一周的时间内完成设计任务,相信这对以后在社会上工作和学习会有很多帮助,让我们能更好的进入工作状态。最重要的是,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论