重庆xxx大学毕业设计系部名称:专业班级:课题名称:十字路口道路交通信号灯控制指导教师:学生姓名:学号:二O一二年十一月红绿灯控制是智能交通系统的一个重要部分。
在高度科技化的今天,交通系统也在自动化上不断地更新、发展和完善,道路更宽敞,路口更复杂。
交通灯出现了更多的变化,从最早的红绿灯,发展到现今的箭头指向红绿灯,人行红绿灯等。
这些改变都只有一个目的,为使道路更通畅,更安全。
随着社会的不断进步,传统的交通灯的缺陷也日益出现,其中设计过于死板,达不到道路的最大通行效率是最明显的问题,红绿灯交替变换时间过于程式化。
基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。
利用单片机控制技术提出了软件和硬件设计方案,能够实现道路的最大通行效率。
本文所设计的单片机控制交通灯系统是基于十字路口交通信号灯控制,并对放行和禁行时间进行倒计时显示(秒)。
单片机即单片微型计算机。
由RAM,ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。
它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。
而51系列单片机是各类单片机中最为典型和富有代表性的一种。
单片机的十字路口道路交通信号灯控制器设计,利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只LED数码管显示器显示十字路口南北、东西两个方向的通行时间(绿灯点亮的时间)、暂缓通行时间(黄灯点亮的时间)、禁止通行时间(红灯点亮的时间)。
C语言是一种结构化的高级语言,以其优点是可读性好、移植容易的特点被普遍应用于单片机编程。
本设计即使用C语言编程,使程序条理清晰、功能扩展性好、实用性强。
关键词:单片机红绿灯AT89C51 Proteus仿真1 概述 (1)1.1课题名称 (1)1.2设计要求 (1)2 系统总体方案及硬件设计 (1)2.1 AT89S51单片机简介 (1)2.2 AT89S51芯片内部结构简介 (2)2.3主要引脚功能 (4)2.4系统方框图 (6)2.5工作原理 (6)2.6电路原理图 (7)2.7单片机最小系统 (8)2.8时间显示电路 (8)2.9交通灯电路 (9)3 软件设计 (10)3.1整体系统分析 (10)3.2通行方案设计 (10)3.2程序主体设计流程 (11)3.3子程序模块设计 (12)4 Proteus软件仿真 (13)参考文献 (14)附录源程序代码 (15)设计体会 (20)1 概述1.1课题名称基于MCS-51单片机的十字路口道路交通信号灯控制器设计1.2设计要求1)信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作,且南北红灯亮,东西绿灯亮,反之则东西红灯亮,南北绿灯亮。
当起动开关断开时,所有信号灯都熄灭。
2)南北红灯亮,维持25S。
在南北红灯亮的同时东西绿灯也亮,并维持20S。
到20S时,东西绿灯闪烁,闪烁3S后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2S。
到2S时,东西黄灯熄,东西红灯亮。
同时,南北红灯熄灭,南北绿灯亮。
3)东西红灯亮,维持30S。
南北绿灯亮,维持25S。
然后闪烁3S,熄灭。
同时南北黄灯亮,维持2S后熄灭,这时南北红灯亮,东西绿灯亮。
4)每个灯亮时,辅以电子秒表并倒计时。
如按前面描述,南北红灯亮25秒并倒计时,最后3秒钟时闪烁,归零时即切换为绿灯并同时开始倒计时;东西绿灯与南北红灯同时亮25秒并倒计时,20秒起闪烁3秒钟,然后再变成黄色2秒钟。
5)周而复始6)Proteus软件仿真2 系统总体方案及硬件设计2.1 AT89S51单片机简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。
如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。
2.2 AT89S51芯片内部结构简介8051单片机(其管脚图如图-1所示)包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:1.中央处理器(CPU)中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
(图-1)2.数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
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内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
5.时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。
6.中断系统:中断系统的作用主要是对外部或内部的终端请求进行管理与处理。
AT89S51共有5个中断源:2个外部中断,即/INT0(P3.2)和/INT1(P3.3);3个片内中断,即定时器T0的溢出中断、定时器T1的溢出中断和串行口中断。
除去图中的存储电路和I/O部件,剩下的是CPU,它可以分为运算器和控制器两部分。
运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器TMP1、TMP2、程序状态字寄存器PSW等。
控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。
7.定时/计数器8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
2.3主要引脚功能·P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
·P1口:Pl 是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,Pl接收低8位地址。
如下表1所示:表1·P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。
在访问8 位地址的外部数据存储器(如执行MOVX @Ri 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR )区中P2寄存器的内容),在整个访问期间不改变。
Flash 编程或校验时,P2亦接收高位地址和其它控制信号。
·P3 口:P3 口是一组带有内部上拉电阻的8 位双向I /0 口。
P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。
对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL )。
P3口除了作为一般的I /0口线外,更重要的用途是它的第二功能,如下表2所示:表2P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
·RST:复位输入。
当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。
WDT 溢出将使该引脚输出高电平,设置SFR AUXR 的DISRT0 位(地址8EH )可打开或关闭该功能。
DISRT0位缺省为RESET 输出高电平打开状态。
·ALE/PROG ————:当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。
对F1ash 存储器编程期间,该引脚还用于输入编程脉冲(PROG )。
如有必要,可通过对特殊功能寄存器(SFR )区中的8EH 单元的D0 位置位,可禁止ALE 操作。
该位置位后,只有一条M0VX 和M0VC 指令ALE 才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无效。
·PSEN ————程序储存允许(PSEN ————)输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN ————有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN ————信号。
2.4系统方框图2.5工作原理由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。