十字路口道路交通信号灯控制毕业设计.doc

上传人:精*** 文档编号:826117 上传时间:2023-09-05 格式:DOC 页数:23 大小:1.22MB
下载 相关 举报
十字路口道路交通信号灯控制毕业设计.doc_第1页
第1页 / 共23页
十字路口道路交通信号灯控制毕业设计.doc_第2页
第2页 / 共23页
十字路口道路交通信号灯控制毕业设计.doc_第3页
第3页 / 共23页
十字路口道路交通信号灯控制毕业设计.doc_第4页
第4页 / 共23页
十字路口道路交通信号灯控制毕业设计.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、摘要红绿灯控制是智能交通系统的一个重要部分。在高度科技化的今天,交通系统也在自动化上不断地更新、发展和完善,道路更宽敞,路口更复杂。交通灯出现了更多的变化,从最早的红绿灯,发展到现今的箭头指向红绿灯,人行红绿灯等。这些改变都只有一个目的,为使道路更通畅,更安全。随着社会的不断进步,传统的交通灯的缺陷也日益出现,其中设计过于死板,达不到道路的最大通行效率是最明显的问题,红绿灯交替变换时间过于程式化。基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。利用单片机控制技术提出了软件和硬

2、件设计方案,能够实现道路的最大通行效率。本文所设计的单片机控制交通灯系统是基于十字路口交通信号灯控制,并对放行和禁行时间进行倒计时显示(秒)。单片机即单片微型计算机。由RAM,ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。而51系列单片机是各类单片机中最为典型和富有代表性的一种。单片机的十字路口道路交通信号灯控制器设计,利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只LED数码管显示器显示十字路口南北、东西两个方向的通行时间(绿灯点亮的时间)、暂缓通行时间(黄灯点亮的时间)、禁止通行时间

3、(红灯点亮的时间)。C语言是一种结构化的高级语言,以其优点是可读性好、移植容易的特点被普遍应用于单片机编程。本设计即使用C语言编程,使程序条理清晰、功能扩展性好、实用性强。关键词:单片机 红绿灯 AT89C51 Proteus仿真目录1 概述11.1课题名称11.2设计要求12 系统总体方案及硬件设计12.1 AT89S51单片机简介12.2 AT89S51芯片内部结构简介22.3主要引脚功能42.4系统方框图62.5工作原理62.6电路原理图72.7单片机最小系统82.8时间显示电路82.9交通灯电路93 软件设计103.1整体系统分析103.2通行方案设计103.2程序主体设计流程113.

4、3子程序模块设计124 Proteus软件仿真13参考文献14附录 源程序代码15设计体会20211 概述1.1课题名称基于MCS-51单片机的十字路口道路交通信号灯控制器设计1.2设计要求1)信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作,且南北红灯亮,东西绿灯亮,反之则东西红灯亮,南北绿灯亮。当起动开关断开时,所有信号灯都熄灭。2)南北红灯亮,维持25S。在南北红灯亮的同时东西绿灯也亮,并维持20S。到20S时,东西绿灯闪烁,闪烁3S后熄灭。在东西绿灯熄灭时,东西黄灯亮,并维持2S。到2S时,东西黄灯熄,东西红灯亮。同时,南北红灯熄灭,南北绿灯亮。3)东西红灯亮,维持30S。

5、南北绿灯亮,维持25S。然后闪烁3S,熄灭。同时南北黄灯亮,维持2S后熄灭,这时南北红灯亮,东西绿灯亮。4)每个灯亮时,辅以电子秒表并倒计时。如按前面描述,南北红灯亮25秒并倒计时,最后3秒钟时闪烁,归零时即切换为绿灯并同时开始倒计时;东西绿灯与南北红灯同时亮25秒并倒计时,20秒起闪烁3秒钟,然后再变成黄色2秒钟。5)周而复始6)Proteus软件仿真2 系统总体方案及硬件设计2.1 AT89S51单片机简介 AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术

6、生产,兼容标准8051指令系统及引脚。它集Flash程序存储器 既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。2.2 AT89S51芯片内部结构简介8051单片机(其管脚图如图-1所示)包含中央处理器(CPU)、

7、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1.中央处理器(CPU)(图-1)中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2.数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存

8、放读写的数据,运算的中间结果或用户定义的字型表。3.程序存储器(内部ROM):程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其又多种类型,在89系列单片机中全部采用闪存。AT89S51内部配置了4KB闪存。 3.1.定时/计数器(ROM):定时/计数器用于实现定时和计数功能。AT89S51共有2个16位定时/计数器。3.2.并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。每个口都由1个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。4.全双工串行口:A89S51内置一

9、个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。5.时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。6.中断系统:中断系统的作用主要是对外部或内部的终端请求进行管理与处理。AT89S51共有5个中断源:2个外部中断,即/INT0(P3.2)和/INT1(P3.3);3个片内中断,即定时器T0的溢出中断、定时器T1的溢出中断和串行口中断。除去图中的存储电路和I/O部件,剩下的是CPU,它可以分为运算器和控制器两部分。运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器TMP1、TMP2、程序状态字

10、寄存器PSW等。控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。7.定时/计数器8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。2.3主要引脚功能P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓

11、冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,Pl接收低8位地址。如下表1所示:端口引脚第二功能:P1.5MOSI(用于ISP编程)P1.6MOSI(用于ISP编程)P1.7MOSI(用于ISP编程)表1P2 口:P2 是一个带有内部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引

12、脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX Ri 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部上拉电阻的8 位双向I0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上

13、拉电阻输出电流(IIL)。P3口除了作为一般的I0口线外,更重要的用途是它的第二功能,如下表2所示:端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外中断0)P3.3/ INT1(外中断1)P3.4T0(定时计数器0外部输入)P3.5T1(定时计数器1外部输入)P3.6/ WR(外部数据存储器写选通)P3.7/ RD外部数据存储器读选通)表2P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的D

14、ISRT0 位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALEPROG():当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活

15、。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN()程序储存允许(PSEN())输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN()有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN()信号。2.4系统方框图电 源交通灯AT89C52交通灯时间显示部分时钟电路复 位电 路2.5工作原理由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。系统控制电路东西方向 EWG Y

16、R南北方向 NSG Y R2.6电路原理图(图-2)2.7单片机最小系统(图-3)单片机最小系统以80C52为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强,成本相对较低,非常符合本设计的所有要求。时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器。本系统采用的为12MHz的晶振,一个机器周期为1us,C1,C2为30pF。复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C3和电阻R1来实现,按键手动复位是图中复位键来实现的。2.8时间显示电路(图-4)倒计时显示可以提醒

17、驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间(如图-4所示)。数码管使用共阴数码管,需要接上470上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安

18、。2.9交通灯电路本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图-5所示)(图-5)3 软件设计3.1整体系统分析总体流程图(实现各种状态间的转换):南北绿灯东西红灯南北绿灯闪东西红灯亮南北红灯东西绿灯南北红灯亮东西绿灯闪南北红灯东西黄灯南北黄灯东西红灯3.2通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:彩色表示亮,白色表

19、示灭。交通状态从状态1开始变换,直至状态6然后循环至状1,周而复始,直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们把其中灯颜色变化的4个状态归结如下:状态3状态1状态6状态43.2程序主体设计流程全部控制程序实际上分为若干模块:按键扫描程序,红绿灯控制程序,LED显示程序,消抖动延时程序,初始化程序,中断服务子程序等。流程图如图(图-6)所示: 倒计时按键扫描初始化开始启动or停止?启动停止YN计时完毕?切换状态结束(图-6)3.3子程序模块设计 3.3.1 按键扫描子程序首先系统不执行按键扫描子程序,以判断K1按键是否被按下。本系统要求信号灯受一个起动开关控制,当起动开关

20、接通时,信号系统开始工作;当起动开关断开时,所有信号灯都熄灭。关键程序如下,action为程序启动标志位。if(!action)P0=P1=P2=P3=0xff;(*(void(*)( )0) ( );检测到按下按键停止程序时,关闭显示,同时使程序回到起点,下一次启动时重头执行。 3.3.2 红绿灯控制程序分析得实际控制的灯只有6个,即:东西红灯,东西黄灯,东西绿灯,南北红灯,南北黄灯,南北绿灯。定义IO端口如下,其均是低电平有效。 将交通灯颜色变化的四种状态进行分析后整理P1口四种情况的编码表如下: unsigned char code c4=0xDE,0xEE,0xF3,0xF5;分别是:

21、0xDE 南北红灯,东西绿灯 0xEE 南北红灯,东西黄灯 0xF3 南北绿灯,东西红灯 0xF5南北黄灯,东西红灯程序应用: P1=ck;/*交通灯对应着k的值变化*/ 3.3.3 LED倒计时显示程序LED计时每一秒都要刷新一次,将时间数据的个位、十位分开送显。单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的时间。动态显示节省了I/O口,降低了能耗。应用实例如下:P2=b0,P0=aSN%10;/*显示南北方向个位*/ delay(5); P2=b1,P0=aSN/10;/*显示南北方向十位*/delay(5);P2=b2,P0=aWE%10;/*显示东

22、西方向个位*/delay(5); P2=b3,P0=aWE/10;/*显示东西方向十位*/delay(5);4 Proteus软件仿真系统仿真电路图交通灯控制系统正常运行时仿真图(见图-7)。(图-7)参考文献1王为青,邱文勋. 51单片机开发案例精选J.人民邮电出版社,2001,(5):45-47.2张鑫,华臻,陈书谦. 单片机原理及应用J.电子工业出版社,2008(5).3张洪润,张亚凡.单片机原理及应用J. 清华大学出版社,2005,(4).4黄智伟.凌阳单片机课程设计指导J. 北京航空航天大学出版社,2007,(6)5蒋辉平,周国雄. 基于Proteus的单片机系统设计与仿真实例M.机

23、械工业出版社,2009.6陈梓城 电子技术实训 M.北京:机械工业出版社 20037先锋工作室 单片机程序实例M.北京:清华大学出版社,2002.8李学海 标准80C51单片机基础教程M. 北京:北京航空航天大学出版社 20069张萌单片机应用系统开发综合实例第二版清华大学出版社2005年10张一工现代电力电子技术原理与应用第一版科学出版社2002年11吴黎明 单片机原理及应用技术M.北京:科学出版社 200312欧阳文ATMEL89系列单片机的原理与开发实践第一版中国电力出版社2007年附录 源程序代码#include #define uchar unsigned char /*定义字符串类

24、型为无符号型*/uchar code a10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;uchar code b4=0x0D,0x0E,0x07,0x0B; /*P2口,低有效*/uchar code c4=0xDE,0xEE,0xF3,0xF5; /*P1口,低有效*/char SN=25,WE=30; char SN_G=25,WE_G=15,Y=5; uchar i,k=0,count=0; bit action=0; sbit K1=P37;/*开关K1接P37管脚*/sbit SNG=P12;/*东西绿灯*/sbit WEG=

25、P15;/*南北绿灯*/void delay(uchar t);void start_keyscan();void light();void led();/*程序初始化*/void init(void) /*12MHz */ TMOD=0x01; TH1=(65536-50000)/256; TL1=(65536-50000)%256; /*计50000个数,用时50ms*/ ET0=1;/*允许T0中断*/TR0=1;/*启动计数器*/EA=1;/*CPU开放总中断*/*定时函数*/void time1(void) interrupt 1TH0=(65536-50000)/256;TL0=(

26、65536-50000)%256;count+; /*延时t毫秒*/void delay(uchar t)uchar i;for(t;t0;t-) for(i=255;i0;i-) ; /*开关键启动关闭*/void start_keyscan()if(K1=0)delay(10);if(K1=0)action=action;while(!K1);if(!action)EA=0;P0=P1=P2=P3=0xff;(*(void(*)()0)();/*交通灯函数*/void light() if(k=0|k=2) P1=ck;/*交通灯对应着k的值变化*/if(k=1)if(SN=2) P1=c

27、1;else if(count6) WEG=1;else WEG=0;if(k=3)if(SN=2) P1=c3;else if(count6) SNG=1;else SNG=0;/*数码管函数*/void led() if(k=1|k=3)&(SN4)&(count=20)/*历时1s,执行程序*/ SN-; WE-; count=0; if(SN=0|WE=0) k+; if(k3) k=0;switch(k) case 0:SN=WE_G+Y,WE=WE_G;break;case 1:SN=Y,WE=Y;break;case 2:SN=SN_G,WE=SN_G+Y;break;case

28、3:SN=Y,WE=Y;break;设计体会毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要体现,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在,因此作为二十一世纪的大学来说掌握单片机的开发技是十分重要的。本系统就是充分利用了AT89S52芯片的I/O引角。系统统采用MSC-51系列单片机为中心器件来设计交通灯控制器,通过单片机芯片的P1口控制红、黄、绿灯的燃亮与熄灭;P0口外接数码管来显示各个信号灯的时间。系统设计简便、实用性强、操作简单、程序设计简便。通过

29、这次毕业设计,我得到了一次用所学知识与技能分析和解决问题的可贵的锻炼机会,使我深刻领会了单片机的基本原理和单片机应用系统开发的过程。在常用编程设计思路技巧的掌握方面都向前迈了一大步,为日后成为合格的应用型人才打下了良好的基础。回顾起此次单片机毕业设计,感慨颇多,开始觉得无从下手,到后来找到系统的方法,构建框架,遇到问题查找资料逐个解决,最终看到了自己的成果,事实证明只要努力没有什么是做不到的。在设计的过程中遇到了许许多多的问题,可以说得是困难重重,这毕竟是第一次做这种系统化的设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,没有深刻之前所学,知识掌握得不够牢固。这次设计不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,在设计的过程中,查找了大量的资料,受益匪浅。通过这次毕业设计我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这里是大学生活的结点,也是社会生活的起点,经过这次历练我更有信心在以后的日子里迎战更复杂的难题。在此特别感谢敖朝华导师对我的悉心指导,还要感谢一直陪伴我的同学们!

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922