版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、0单片机课程设计交通灯系统机电系萍乡学院课程设计课 程 题 目 院 系 专业班级 学生姓名 学生学号 指导教师20162016年 0303月2020日目录摘要. 2引言. 211. 设计目的 . 32. 设计要求 . 33. 系统总体方案硬件设计 . 33.1设计思想及总体设计 . 33.2硬件设计 . 43.3复位电路 . 83.4数码管显示 . 83.5 红绿灯显示 . 93.6键盘:独立键盘+中断. 93.7系统原理图. 104软件设计 . 104.1总体流程. 104.2循环流程控制思路. 114.3源程序. 115调试运行 . 165.1正常运行状态. 165.2左右行显示. 175
2、.3黄灯闪烁显示. 176.设计心得体会. 187参考文献 . 18摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现, 使交通得以有效管制,对于疏导交通流量、提高道路通 行能力,减少交通事故有明显效果。本系统采用单片机 AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展强。本设计就是采用单片机模拟十字路口交通灯的各 2种状态显示以及倒计时时间。本设计系统由单片机,交通灯状态显示系统、LED数码显示系统等几大部分组成。系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口 可能出现的
3、状况。本系统采用单片机 C语言编写,主要编写了主程序,LED数码管显示程序等。总体上完成了软件的编写。关键词:交通灯;控制;AT89C51 ;倒计时显示引言近年来随着科技的飞速发展, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制, 对于疏导交通流量、 提高道路通行能力,减少交通事故有明显效果交通信号灯在大多数城市得到了广泛的应用。 传统的交通信号灯控制一般采用了电子线路
4、和继电器控制,结构复杂,可靠性低,故障率高。本次设计是基于AT89C51单片机的交通灯控制系统,东西南北的通行时间可调,倒计时显示 通行时间灯功能,该系统具有设计周期短、可靠性高维护方便、使用简单等优点。3)东西干道和南北干道交替控制,每次干道绿灯交替时,有3秒钟所有干道的交通1.设计目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实
5、验成果,能用计 算机绘制电路图和流程图。2.设计要求1)东西干道和南北干道的通行分左行,右行,直行,其中左行,右行固定15 秒;直行固定30秒。2)信号灯分绿灯,红灯,黄灯,每次绿灯换红灯时,黄灯亮3秒。灯都是黄灯闪烁 3秒钟,提示已经进入路口的车辆迅速通过。4)当遇到突发状况时,各个方向静止通行,显示红灯,并维持5秒倒计时。3. 系统总体方案硬件设计3.1设计思想及总体设计1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制
6、能实现基本的交通功能,还增加了倒计时显示提示。3)进行显示电路,灯状态电路,按键电路的设计和各器件的选择及连接,大体分配各 个器件及模块的基本功能要求。4) 进行软件系统的设计,对于本系统,本人采用C语言编写,对单片机内部结构和工 作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的设计。4图1系统框图3.2硬件设计1 )单片机选型:AT89C51与MCS-51单片机产品兼容,8k字节在系统可编程 Flash存储器,1000次可檫写周期,全静 态操作:0Hz33Hz,三级加密程序存储器,32个可编程I/O 口线,三个16位定时器/计数器 八个中断源、全双工 UART串行通道、
7、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗 定时器、双数据指针、掉电标识符。功能特性描述:AT89C51是一种低功耗、高性能CMOS啦微控制器,具有8K在系统可编程 Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统 可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C51具有以下标准功能:8k字节Flash,256字节RAM 32位I/O 口线,看门狗定时器,2个数据指针,三个16
8、位 定时器/计数器,一个 6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89C51可降至0Hz静态逻 辑操作,支持 2种软件可选择节电模 式。空闲模式下,CPU停止工作,允许RAM定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器 8K字节在系统可编程Flash AT89C52P0 口: P0 口是一个 8位漏极开路的双向I/O 口。作为输出口,每位能驱动8个TTL逻辑电平。对 P0端口写“ 1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8位地址/
9、数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。5P1 口: P1 口是一个具有内部上拉电阻的8位双向I/O 口,pl输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“ 1 ”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电 流(IIL )。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2 )和时器/ 计数器2的触发输入(P1.1/T2EX ),具体如下表所示。在flash 编程和校验时,P1 口接收
10、低 8位地址字节。引脚号第二功能P1.0 T2 (定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI (在系统编程用)P1.6 MISO (在系统编程用)P1.7 SCK (在系统编程用)P2 口: P2 口是一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“ 1 ”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电 流(IIL )。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行 MOVX
11、DPTR时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如 MOVX R)访问外部数据存储器时,P2 口输出P2锁存器的内容。在flash 编程和校验时,P2 口也接收高 8位地址字节和一些控制信号。P3 口: P3 口是一个具有内部上拉电阻的8位双向I/O 口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输 出电流(IIL )。P3 口亦作为 AT89C51特殊功能(第二功能)使用,如下表所示。在flash 编程和校验时,P3
12、 口也接收一些控制信号。端口引脚第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)6P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR( 外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3 口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST 复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频
13、率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部 数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的DO位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将 ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数
14、据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使 CPU仅访问外部程序存储器(地址为 0000H-FFFFH), EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态如 EA端为高电平(接 Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源 Vpp,当然这必须是该器件是使用12V编程电压 Vpp。7引脚图如下:U219XTAL1PO.Q/ADOPO 1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4PO.5/AD5PO.6/AD6RSTP0.7/AD7P2.O/A8P2
15、.1/A9P2.2/A10PSENP2.3/A11ALEP2 4/A12EAP2.5/A13P2.5/AMP2 7/A15P1 0P3.0/RXDPI 1P3 1/TXDP1 2巴:爪而P1.3P3 3/INTFP1.4P3.4/TBP1 5P2.5/T1PI .6P3.6/WRP1 7P3.7/RDISAT83C5150731 12329303?图2 89C51引脚图3939373S3534333221222324 2?262728101112TT141?7?17893.3复位电路当8051的ALE及/PSEN两引脚输出高电平,RST引脚高电平到时,单片机复位。RST/VPD 端的高电平,若
16、直接由启动瞬间产生,则为启动复位,若通过按动按钮产生高电平复位称手动复位。图中,上电时,接通电源,电容器C相当于瞬间短路,+5V加到了 RST/VPD端,该高电平使8051全机复位。若运行过程中,需要程序从头执行,只需按动按钮S,则直接把+5V加到了 RST/VPD端,从而复位。显然,该电路即可以上电复位,也可以手动复位,是常用复位电路之一。3.4数码管显示图4数码管显示此处采用的数码管时共阴极数码管,G F、E、D C、B、A七个端口是输入端口,对其各位进行赋值,置位则亮,复位则灭,用此来显示出相应的数字;1、2两端用来控制高位和低位的选通显示, 只要对端口置位,便可以选择该端口,并对其所代
17、表的位进行赋值,显 示。正常通行状况下,数码管从30秒开始倒计时,各个方向,对应点亮红绿黄灯。遇到突发状况,数码管从 5秒开始倒计时,各方向禁止通行,点亮红灯。10BREEN LED-GREEM D81CH 匕T3nuo C3.5红绿灯显示图5红绿灯显示每个路口都采用了 3个LED灯来显示,分别代表红绿黄三种灯,来模拟路口交通的变换。 其中D7和D8表示转弯模块。以南北方向举例,正常状况下,从30秒开始倒计时,南北方向可直行,即绿灯(D6)亮起,东西方向禁止通行,亮红灯(D2)。当显示至15秒时,南北方向可直行和转弯,即两个绿灯(D6和D7)亮起,东西方向禁止通行,亮红灯(D2)。当显示至3秒
18、时,通知车辆快速通过,南北黄灯(D5)闪烁,东西方向禁止通行,亮红灯(D2)。3.6键盘:独立键盘+中断采用开关来控制进入中断, 可以在路口出现紧急情况时,拉动开关。使红绿灯发生相应的改变,已处理紧急情况下车辆通行。当发生突发情况时, 如救护车通过,接通上面的按键,各个方向中止当前状态,即禁止 通行,各个方向点亮红灯,并维持 5秒倒计时。当结束5秒倒计时,各个方向恢复到中止前 的状态。RESPACk-0D2F?7100D7DEDr LE1G0100-YELLOWR6R11LE6GRNEd6XE113.7系统原理图crTAL3b时-IF-posi-ra fQ.VJi.U1L D4LMIHEDFD
19、kDQ5 * P+PDfVkDSHIAAM叩 TWP7甲 NU.PP2.IIS FZAtJ 那舌和 尽,亟它 g” .u FZSTAl* R2.?iJ.SPZ3MnffcxD 亍蓟!厂:切 pjrnn nwnT3.7O P3JSTT1FJJteiTl.F.Fl 7-fTT11TJMPZjir-cTS-F-图7总电路图4软件设计4.1总体流程黄灯亮3s南北绿东西红图8流程图12134.2循环流程控制思路图9流程控制图4.3源程序#in clude#in clude#defi ne uint un sig ned int#defi ne uchar un sig ned charuchar tem
20、p,aa ,nn;sbit rn=P2A0;sbit nb=P2Al;sbit g n=P2A2;sbit rw=P2A3;sbit dx=P2A4;sbit gw=P2A5;sbit shi=P3A6;sbit ge=P3A7; /*对要使用的单片机各个口进行定义*/bit flag=0;ucharcodetable=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; /* 将数字0123456789的16进制数定义成数组用以显示*/void dela
21、y( uint z);void disp( uint n);14void n b_flash(void);void dx_flash(void);void xi ntO();void timer0();void LED_ON();void xi nt1();void nan bei();void don gxi();/*将所使用的子函数定义 */void mai n()uint num;num=0;aa=0;TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;EX0=1;IT0=0;EX仁 1;IT仁1
22、; /*中断初始化*/while(1)nan bei();n b_flash();don gxi();void delay( uint z)ui nt x,y;for(x=z;x0;x-)15for(y=110;y0;y-);void timerO() in terrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;if(aa=9)aa=0;flag=1;void disp(uint n) /*显示子函数 */while(!flag)ge=0;PO=table n%10;delay(50);shi=1;ge=1;shi=0;P0=tabl
23、e n/10;delay(50);shi=1;ge=1;if(flag=1)flag=0;void nan bei() /*南北方向的红绿灯和数码管显示子函数*/uint num;num=30;disp( nu m);16while( num15)num-;P2=0 xf3;disp( nu m);while( num4) /*南北方向及转弯的红绿灯和数码管显示子函数*/num-;P2=0 xb3;disp( nu m);void nb_flash(void) /*南北方向的黄灯和数码管显示子函数*/uint a;for(a=3;a0;a-)P2=0 xf5;n b=1;delay(100);
24、n b=0;disp (a);void don gxi() /*东西方向的红绿灯和数码管显示子函数*/uint num;num=30;while( num15)P2=0 xde;disp (nu m);nu m-;17while( num 3) /*东西方向及转弯的红绿灯和数码管显示子函数*/num-;P2=0 x5e;disp( nu m);while( num0)/*东西方向的黄灯和数码管显示子函数*/P2=0 xee;dx=1;delay(100);dx=0;disp (nu m);num-;void xintO() interrupt 2/*中断定义 */TH0=(65536-5000
25、0)/256;TL0=(65536-50000)%256;LED_ON();void LED_ON()uint b;rn=O;rw=0;gn=1;gw=1;n b=1;dx=1;for(b=5;b0;b-)18ge=0;shi=1;P0=tableb; delay(IOOO);ge=1;shl=1;return;5调试运行5.1正常运行状态*2-*AF*Itow燔uTE:eLB4 sTExbhrh-Y.UWU uJEXTR801XIALEU1KTAIZRWrearALEp:a=TE:T- ET-P2M帕EWD pn -Mbii凹加旧 P 口 .昭皿 PDJIMI.M FDJHTAM PD.TW
26、IWPH腿 F71/) 競* f FZA11 削 N.gfS PSJfAG rzjAi+ P2.1MV3 P2 *2 XT7T.fiP3DI0F3.-M1XD 想Mm F3JWHPHfcTD pssrn “i顾TF3F/W命KTIT-sirnr 11星百L曰6E曰1=T&Tt-DS1D4 !严r T1IZRIO| R31 R2(im1EDJ cTEJ :TLuiieDAEGiR4iCD vTE图10正常运行状态19205.2左右行显示if;:U5fpg.1*14PHAl*FX1lTt PHNTTF pjanrlP3*g FJSfl衬JdCJJdCJLJLJ;: ;:图11左右行显示5.3黄灯闪
27、烁显示I91R4 imCDTFXD 阻A9CDEFG丄c.g创ETIF:C卜 jchwiiFUUAttJ PHWDI pniLHi灯心IPElWJIEidiPLlJV/.ltaiPWFP.TWPFPZGFSLTP7 GW 11唱自ALE1EKFX.WAE P2fVX 口 F2WA1 P2.7/AiCFinIP3DTFMIM;rar-rtiPIT IIII PPlTfllTIMZP13 r ir*r3aHOM* F1M.IP3L5T1 PJ颐K ra-Tff3U1rrKEf.UJia.MST-IIn ft時J111R3fJ P遇T图12黄灯闪烁显示2122提高动手实践能力,提高科 使知识更加丰富
28、,使自己 只有通过合理的分工合作,6.设计心得体会一周的单片机课程设计很快就结束了,在这一周当中,虽然开始有点困难, 但是经过我们们分工合作,合理地进行设计安排, 再加上老师的耐心指导, 我们们终于顺利地完成了本 次单片机课程设计,同时也学到了很多东西。在本次课程设计中,我们通过动手实践操作, 进一步学习和掌握了单片机原理的有关知识,特别是程序的编程方面,加深了对单片机原理及应用技术的认识,进一步巩固了对单片机知识的理解,掌握简单单片机应用系统的设计、 制作、调试的方法。在设计时根据课题要求,复习相关的知识,查询相关的资料。根据实验条件,找到适合的方案,找到需要的元器件及工具,进行实验。这次的单片机课程设计重点是通过实践操作和理论相结合, 学的思维能力,更在一周的时间了解了更多的有关单片机的知识, 更加充实。与此同时,我们也对团队分工合作有了进一步的认识,我们们才能够在短短一周的时间内完成设计任务,相信这对以后在社会上工作和学习会有很多帮助,让我们能更好的进入工作状态。最重要的是,这次课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论