盐城师范学院毕业论文(设计)第1页共34页摘要:本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,并由74HC244驱动LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用双色高亮度发光二极管,设计中还添加了声音提示电路,方便盲人过人行道。本设计是以软件和硬件相结合的方式来实现,文中给出了具体的硬件电路图和软件流程图及程序源码。关键词:智能交通灯,AT89C51,车辆检测,74HC244,LED1方案设计及论证1.1方案设计论证1.1.1交通灯控制系统的总体方案设计本设计研究的是基于AT89C51单片机的交通灯智能控制系统。的设计原理,阐述。主控系统采用AT89C51单片机作为控制器,控制通行倒计时及右拐、右拐、直行、行人的通行,占用端口少,耗电也最小。系统电源采用独立的+5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定[5]。该设计可直接在I/O口上接按键开关,精简并优化了电路。结合实际情况,显示界面采用点阵LED数码管动态扫描的方法,满足了倒计时的时间显示输出和状态灯提示信息输出的要求,减少系统的复杂度。1.2交通灯控制系统硬件框图该交通灯控制系统有以下几个部分组成:车辆检测、紧急控制、单片机、驱示电路。、P1P2AT89C51P0RSTP3南北通行灯东西通行灯LED驱动器3位LED显示器特种车辆自动通行控制模块车辆检测电路上电复位自动/手动键盘盐城师范学院毕业论文(设计)第2页共34页图1.2系统硬件组成总框图1.3交通灯控制系统工作原理本系统运用单片机对交通灯控制系统实施控制,通过直接控制信号灯的状态变化,指挥交通的具体运行,运用了LED数码管显示倒计时以提醒行驶者,更添加了盲人提示音电路,方便视力障碍群体通行,更具人性化。在此基础上,加入了特种车辆自动通行控制模块和车流量检测电路为系统采集数据,经单片机进行具体处理,及时调整通行方向。由此,本设计系统以单片机为控制核心,构成最小系统,根据特种车辆自动通行控制模块、车辆检测模块和按键设置模块等产生输入,由信号灯状态模块,LED倒计时模块和盲人提示音模块输出[7]。系统进入工作状态,LED数码管实时显示数据倒计时,执行交通灯状态显示控制,在此过程中若有控制信号和实时车流量检测信号,可对异常状态进行实时控制,随时调用中断,达到修正通行时间满足不同时间不同路况的需求。2交通灯控制系统硬件设计2.1系统硬件组成及原理图根据要实现的具体功能,经过比较,我选用AT89C51单片机及外围器件构成最小控制系统,4组双色灯构成信号灯指示模块,东西南北方向分别构成倒计时显示模块,CCD采集车辆数量数据,红外线接收器接收中断信号,使实时中断来响应特种车辆的通行要求,接LED显示器[8]。硬件原理图如图3.1所示:图2.1硬件电路原理图2.2单片机AT89C51AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的Flash只读程序存储器和128×8位的随机存取数据存储器(RAM),该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS-51单片机控制系统模块CCD时间显示模块特殊车辆转换模块二值化电路驱动电路盐城师范学院毕业论文(设计)第3页共34页系统产品兼容,AT89C51单片机功能强大,具有8Kb中央处理器(CPU)和4KbFlash程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域[9]。2.2.1AT89C51的主要性能·内含4Kb可重编程的FPEROM;·与MCS-51产品指令系统完全兼容;·128×8位的内部RAM;·4个8位(32根)双向可位寻址的I/O端口;·2个16位的计数/定时器;·全双工方式的串行通道(UART);·6个中断源;·5个向量二级中断结构;·最高时钟振荡频率可达12MHz;·指令集中64条为单周期指令,支持6种寻址方式,共111条指令;·低功耗空闲和掉电方式;·片内振荡器和时钟电路。2.2.2AT89C51的引脚功能AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图2.2所示。图2.289C51单片机引脚图盐城师范学院毕业论文(设计)第4页共34页各引脚功能说明如下:(1)主电源引脚Vcc(40脚):接+5(1±20﹪)V电源正端;Vss(20脚):接地。(2)I/O引脚P0口(39~32脚):P0.0~P0.7统称为P0口。P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口作为原码输入口,当Flash进行校验时,P0口输出原码,此时P0外部必须被拉高。P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在Flash编程和校验时,P1口作为第八位地址接收。P2口(21~28脚):P2.0~P2.7统称为P2口,一般作为准双向I/O使用。P2是一个带内部上拉电阻的8位双向I/O口。P2的输出缓冲器可驱动4个TTL逻辑门电路。当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。P3口(10~17脚):P3.0~P3.7统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。此时由于外部下拉为低电平,P3口将输出电流(IIL)。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口第二功能祥见表2.1:盐城师范学院毕业论文(设计)第5页共34页表2.1P3口第二功能表口线第二功能信号名称P3.0RXD串行数据接受P3.1TXD串行数据发送P3.2INT0——————外中断0申请P3.3INT1——————外中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR————外部数据存储器写选通P3.7RD————外部数据存储器读选通(3)外接晶体引脚XTAL1(19脚):它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。XTAL2(18脚):它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。(4)控制线ALE/PROG——————(30脚):地址锁存允许/编程信号。在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲PROG——————的输入端。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率fosc的1/6,可作为对外输出的时钟脉冲或用于定时目的。但要注意的是:在访问片外数据存储器期间,ALE脉冲会跳空一个。若想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE执行MOVX,MOVC指令使ALE起作用。另外,该引脚将被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN——————(29脚):片外程序存储器读选通信号输出端,低电平有效。在由外部程序盐城师范学院毕业论文(设计)第6页共34页存储器读取指令或常数期间,每个机器周期内PSEN——————两次有效,P0口读回指令或常数。当访问内部程序存储器时,PSEN——————信号不跳变。RST/VPD(9脚):RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。EA————/VPP(30脚):EA————为片外程序存储器选用端,访问内部程序存储器控制信号。当EA————端接高电平时,CPU访问内部程序存储器。当EA————接低电平时,则在此期间外部程序存储器(0000H-FFFFH),则强调CPU访问外部存储器,而不管程序计数器的内容是多少。此外,该引脚还用做EPROM编程电压的输入端。在编程期间,此引脚用作21V编程电源VPP的输入端。2.2.3AT89C51的内部结构89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件[10]。其内部结构框图如图2.3所示。图中PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器。盐城师范学院毕业论文(设计)第7页共34页图2.3AT89C51单片机内部结构框图·运算器和控制器89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括:累加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。·存储器MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。①程序存储器程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H~0FFFH,外部地址范围1000H~FFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表2.2。复位后,CPU从0000H地址盐城师范学院毕业论文(设计)第8页共34页开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序。表2.251单片机复位、中断入口地址操作入口地址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口中断0023