




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于AT89C51单片机的交通灯控制系统设计摘要本文研究的是以AT89C51单片机为控制器的智能交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,并由74HC244驱动LED数码管显示通行倒计时;左拐、右拐、直行及行人的通行指示灯采用双色高亮度发光二极管,设计中还添加了声音提示电路,方便盲人过人行道。本设计是以软件和硬件相结合的方式来实现,文中给出了具体的硬件电路图和软件流程图及程序源码。关键词智能交通灯,AT89C51,车辆检测,74HC244,LED1方案设计及论证11方案设计论证111交通灯控制系统的总体方案设计本设计研究的是基于AT89C51单片机的交通灯智能控制系统。的设计原理,阐述。主控系统采用AT89C51单片机作为控制器,控制通行倒计时及右拐、右拐、直行、行人的通行,占用端口少,耗电也最小。系统电源采用独立的5V稳压电源,有各种成熟电路可供选用,使此方案可靠稳定5。该设计可直接在I/O口上接按键开关,精简并优化了电路。结合实际情况,显示界面采用点阵LED数码管动态扫描的方法,满足了倒计时的时间显示输出和状态灯提示信息输出的要求,减少系统的复杂度。12交通灯控制系统硬件框图该交通灯控制系统有以下几个部分组成车辆检测、紧急控制、单片机、驱示电路。、P1P2AT89C51P0RSTP3南北通行灯东西通行灯LED驱动器3位LED显示器特种车辆自动通行控制模块车辆检测电路上电复位自动/手动键盘图12系统硬件组成总框图13交通灯控制系统工作原理本系统运用单片机对交通灯控制系统实施控制,通过直接控制信号灯的状态变化,指挥交通的具体运行,运用了LED数码管显示倒计时以提醒行驶者,更添加了盲人提示音电路,方便视力障碍群体通行,更具人性化。在此基础上,加入了特种车辆自动通行控制模块和车流量检测电路为系统采集数据,经单片机进行具体处理,及时调整通行方向。由此,本设计系统以单片机为控制核心,构成最小系统,根据特种车辆自动通行控制模块、车辆检测模块和按键设置模块等产生输入,由信号灯状态模块,LED倒计时模块和盲人提示音模块输出7。系统进入工作状态,LED数码管实时显示数据倒计时,执行交通灯状态显示控制,在此过程中若有控制信号和实时车流量检测信号,可对异常状态进行实时控制,随时调用中断,达到修正通行时间满足不同时间不同路况的需求。2交通灯控制系统硬件设计21系统硬件组成及原理图根据要实现的具体功能,经过比较,我选用AT89C51单片机及外围器件构成最小控制系统,4组双色灯构成信号灯指示模块,东西南北方向分别构成倒计时显示模块,CCD采集车辆数量数据,红外线接收器接收中断信号,使实时中断来响应特种车辆的通行要求,接LED显示器8。硬件原理图如图31所示单片机控制系统模块CCD时间显示模块特殊车辆转换模块二值化电路驱动电路图21硬件电路原理图22单片机AT89C51AT89C51是一种高效微控制器,它是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KBYTES的可反复擦写的FLASH只读程序存储器和1288位的随机存取数据存储器RAM,该器件采用ATMEL公司的高密度、非易失性存储技术生产,它与MCS51系统产品兼容,AT89C51单片机功能强大,具有8KB中央处理器(CPU)和4KBFLASH程序存储器,性价比高,可应用于很多要求高性价比的场合,灵活地应用于各个控制领域9。221AT89C51的主要性能内含4KB可重编程的FPEROM;与MCS51产品指令系统完全兼容;1288位的内部RAM;4个8位32根双向可位寻址的I/O端口;2个16位的计数/定时器;全双工方式的串行通道UART;6个中断源;5个向量二级中断结构;最高时钟振荡频率可达12MHZ;指令集中64条为单周期指令,支持6种寻址方式,共111条指令;低功耗空闲和掉电方式;片内振荡器和时钟电路。222AT89C51的引脚功能AT89C51为双列直插(DIP)式封装的51单片机芯片,有40条引脚,其引脚示意及功能分类如图22所示。图2289C51单片机引脚图各引脚功能说明如下(1)主电源引脚VCC(40脚)接5(120)V电源正端;VSS(20脚)接地。(2)I/O引脚P0口(3932脚)P00P07统称为P0口。P0口是一组8位漏极开路型双向I/O口,分时复用为低8位地址总线和双向数据总线。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0口输出原码,此时P0外部必须被拉高。P1口(18脚)P10P17统称为P1口,可作为准双向I/O口使用。P1是一个带内部上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P1口被外部下拉为低电平时,输出电流,是因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在FLASH编程和校验时,P1口作为第八位地址接收。P2口(2128脚)P20P27统称为P2口,一般作为准双向I/O使用。P2是一个带内部上拉电阻的8位双向I/O口。P2的输出缓冲器可驱动4个TTL逻辑门电路。当对P2端口写“1”时,内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在接有片外存储器或扩展I/O口且寻址范围超过256B时,P2口用作高8位地址总线。当给出地址为“1”时,它就利用内部上拉优势,当对外部八位地址数据存储器进行读/写时,P2口便输出其特殊功能寄存器的内容。在FLASH编程和校验时,P2口接收高八位地址信号和控制信号。P3口(1017脚)P30P37统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。此时由于外部下拉为低电平,P3口将输出电流(IIL)。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口第二功能祥见表21表21P3口第二功能表口线第二功能信号名称P30RXD串行数据接受P31TXD串行数据发送P32ERROR外中断0申请P33ERROR外中断1申请P34T0定时器/计数器0计数输入P35T1定时器/计数器1计数输入P36ERROR外部数据存储器写选通P37ERROR外部数据存储器读选通(3)外接晶体引脚XTAL119脚它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。XTAL218脚它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。(4)控制线ALE/ERROR30脚地址锁存允许/编程信号。在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲ERROR的输入端。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率FOSC的1/6,可作为对外输出的时钟脉冲或用于定时目的。但要注意的是在访问片外数据存储器期间,ALE脉冲会跳空一个。若想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE执行MOVX,MOVC指令使ALE起作用。另外,该引脚将被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。ERROR(29脚)片外程序存储器读选通信号输出端,低电平有效。在由外部程序存储器读取指令或常数期间,每个机器周期内ERROR两次有效,P0口读回指令或常数。当访问内部程序存储器时,ERROR信号不跳变。RST/VPD9脚RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10MS以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(5V)为内部RAM供电,以保证RAM中的数据不丢失。ERROR/VPP(30脚)ERROR为片外程序存储器选用端,访问内部程序存储器控制信号。当ERROR端接高电平时,CPU访问内部程序存储器。当ERROR接低电平时,则在此期间外部程序存储器0000HFFFFH,则强调CPU访问外部存储器,而不管程序计数器的内容是多少。此外,该引脚还用做EPROM编程电压的输入端。在编程期间,此引脚用作21V编程电源VPP的输入端。223AT89C51的内部结构89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件10。其内部结构框图如图23所示。图中PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器。图23AT89C51单片机内部结构框图运算器和控制器89C51的运算器和控制器功能类似于一般微机中的微处理器CPU,是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括累加器ACC、寄存器B、暂存器1TEMP1和暂存器2TEMP2、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。存储器MCS51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。程序存储器程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H0FFFH,外部地址范围1000HFFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表22。复位后,CPU从0000H地址开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序。表2251单片机复位、中断入口地址操作入口地址复位0000H外部中断00003H定时器/计数器0溢出000BH外部中断10013H定时器/计数器1溢出001BH串行口中断0023H定时器/计数器2溢出或T2EX端负跳变(52子系列)002BH数据存储器MCS51系列单片机数据存储器也有内部、外部之分。但与程序存储器不同,片内、片外存储器是分别独立编址的,片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块,其中片内数据存储器有128个字节,其编制为00HFFH;特殊功能寄存器也占128个字节,其编制为80HFFH;二者连续而不重叠。外部RAM地址范围0000HFFFFH,共64KB。内部存储器可直接寻址。尽管片内、片外地址空间的低256B有重叠,但寻址并不会造成混乱。这是因为片内、片外存储器使用不同的指令MOV和MOVX。扩展的I/O地址也占用数据存储器空间。对I/O端口操作无须特殊指令且访问程序存储器是用ERROR信号选通,而访问片外数据存储器时,由ERROR信号(读)和ERROR信号(写)选通。寄存器区内部数据存储器分为4个区域,数据RAM用于存放临时变量,下面介绍其他三个寄存器区A工作寄存器区它占用地址00FFH的32个内存单元,又分成4个区。每个区有R0R7共8个工作寄存器。工作寄存器区的选择又由程序状态寄存器PSW的第4位和第3位RS1和RS0共同指定。单片机复位时,RS1和RS0为零,故指向0区。通过位操作改变RS1和RS0的值,可以方便地指向任一个区间。B位寻址区每位都有一个独立的8位地址占据空间007F,共128位。此外,在专用寄存器SFR中还有一部分是可以位寻址的有些位可能无定义。C专用寄存器区共有21个专用寄存器SFR,位于80FFH地址空间。这些寄存器又可以分为CPU专用寄存器和接口专用寄存器。CPU专用寄存器前面己经提过,而接口专用寄存器包括两部分。一部分就是单片机的I/O端口P0P3,分别编址为80H、90H、A0H、B0H,共4个单元,32位,每一位都可以独立寻址。另一部分为定时/计数器,串行口、中断的一些控制寄存器。定时/计数器89C51有两个16位定时/计数器T0,T1。在定时功能中,每个机器周期定时器加1,由于L个机器周期包含12个振荡周期,因而它的计数频率为1/12,即由定时器计数到的脉冲为振荡周期频率的1/12。在计数器功能中,在外部事件相应输入脚T0或T1产生负跳变时,计数器加1。由于计数器的计数过程需要2个机器周期24个振荡周期,所以,最高的计数频率为振荡频率的1/24。这两个定时/计数器的工作状态定时/计数及工作方式方式0方式3的选择是由定时/计数器方式寄存器TMOD中的每位值所决定的。定时/计数器的控制由控制寄存器TCON完成。I/O口89C51不仅有4个8位并行口,供单片机和外部RAM、EEPROM等扩展连接用或与其它设备交换信息用,它还有一个全双工串行口,能同时发送和接收数据。在前面的引脚功能中已对并行口作了简要介绍,在此就主要介绍一下串行口。串行口也就是P30和P31的第二功能。它既能工作在异步方式,又能工作在同步方式。该串行口是全双工的,它在物理上分为两个独立的发送缓冲器和接收缓冲器SBUF,但它们占用一个特殊功能寄存器的地址99H,只需对SBUF进行写或读的操作,就可以同时发送和接收了。串行口的工作方式选择、波特率选择、串行通信协议的完成,由两个特殊功能寄存器,即串行口控制寄存器SCON和功耗控制寄存器PCON完成。中断89C51单片机提供了6个中断源,而每一个中断源都能被程控为高优先级或低优先级。其中5个中断源包括2个外部中断和3个内部中断。两个外部中断源为INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0而和INT1引脚输入,向CPU提出中断申请,INT0和INT1的中断请求标志IE0、IE1分别设在TCON寄存器的TCON1、TCON3。3个内部中断源为T0、TL溢出中断源及片内串行发送或接收中断源,T0、TL中断请求标志TF0和TF1分别设在TCON寄存器的TCON5、TCON7,串行发送或接收中断标志TI或RI设在SCON寄存器的第SCON0、SCON1。5个中断源中的一个、几个或全部中断源的开、关由中断允许寄存器IE完成,而每个中断源的优先级别的高低由中断优先级控制寄存器IP完成。89C51单片机中断源简要特性见表23。表23中断源特性表名称符号标志符号标志符号位置矢量地址优先级别外部中断INT0IE0TCON10003H定时器0溢出中断TF0TF0TCON5000BH外部中断1INT1IE1TCON30013H定时器1溢出中断TF1TF1TCON7001BHR1SCON0串行口中断R1T1T1SCON10023H最高最低23各模块电路231主控制系统主控器采用AT89C51,是美国ATMEL公司生产的一款性能稳定、低功耗的单片机,兼容MCS51系列产品指令系统及引脚。片内含4KB的可重复编程的FLASH程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,使用5(120)V的电源电压,1288位的内部RAM,4个8位的双向可位寻址的I/O端口,2个16位定时/计数器,6个中断源,AT89C51单片机可提供许多高性价比的应用,灵活应用于各种控制领域。单片机的P1口及P2口分别应用于控制南北及东西方向的通行灯,P0口及P30P32口应用于4组LED计时器的控制,T0和T1分别作为东西方向和南北方向和车流量流量控制,INT0和INT1分别用于东西方向和南北方向的特种车辆通行紧急转换电路11。232车辆检测电路为了达到对红绿灯开启时间的控制,需要对十字路口各个方向的车辆进行检测,本文研究的是用CCD图像传感器实时拍摄(本文选取距十字路口100M内)路况,采用微分二支电路处理CCD信号,使成二值化信号,单片机再读入数据,判断车队长度。实现对路口红绿灯时间进行动态调节。这样就可以大大提高车辆通过率,有效缓解交通压力。车辆检测电路如图24所示。图14车辆检测电路233通行灯输出控制道口交通灯指示采用高亮度红绿双色发光二极管,左拐、右拐、直行及行人各一个。当发光电流为6MA时,可按公式R(518)0006计算,限流电阻为510。因为南北通行时双向指示牌相同,所以每个端口应具有12MA的吸收电流的能力,而人行道口按4个灯算,因此需24MA的吸收电流,在单片机的输出口接驱动电路74HC244,保护单片机的输出端口12。道口指示灯电路如图25所示。图25城市道口交通指示灯电路234时间显示电路红绿灯通行时间采用数码管显示,这是一种很好的方法。通行剩余时间采用高亮7段LED发光数码管,采用共阳数码管。由于每个道口时间显示相同,4组三极管就需192MA,所以设计中采用三极管9012。因为每段输出口需吸收24MA电流,所以电路设计中使用驱动集成块74HC244。LED显示接口硬件电路由74HC244缓冲器、LED显示器组成。如图39所示74HC244用来提高LED显示器的驱动能力。在实际使用中LED显示器都是多位的。对多位LED显示器,通常采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。虽然这样在任一时刻只有一位显示器被点亮,但由于视觉残留效应,看起来与全部显示器同时点亮效果完全一样。为了显示LED显示器的动态扫描,不仅要给显示器提供段(字形代码)的输入之外,还要对显示器加位控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。时间显示驱动电路如图26所示。图26时间显示驱动电路235特种车辆自动通行电路一般情况下交通灯都按车流量大小分配通行时间,按固有规律变化,但有特殊车辆(如119、120)急需通行时,如何控制呢本文中设计紧急通行开关,当特种车辆到来时能自动关闭所有绿灯,让特种车辆通过。设计中特种车辆可采用红外线发生器为发信器,用实时中断来响应特种车的通行要求。接收的红外信号通过内部的集成电路来进行放大、解调,由输出端的输出编码脉冲信号经过三极管反相放大送至接收器,解调模块再进行译码。红外接收器采用的是一体化红外接收器,具有灵敏度高和抗干扰能力强的性质13。红外遥控接收电路原理框图如图27所示。信号接收信号放大电源驱动单片机控制红外接收装置信号解调图27红外接收原理框图236盲人提示音电路为方便盲人通过行人道,在道口自动控制系统中设计了声音提示电路,该声音控制电路与人行道控制灯的绿灯是同步的,当绿灯亮时响一次,在结束通行前10S绿灯闪烁,期间盲人提示音会间隔响5次,每次1S。盲人提示音采用的是悦耳、柔和的低音。盲人提示音电路如图28所示。图28盲人提示音电路237电源电路整个系统采用的是5V电压,因此采用不可调的3端稳压器件,用LM7850就可以满足系统电源的要求。LM7850内部是由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成的三端集成稳压电源,且其低功耗,高效率,纹波系数小,输出电压稳定。24LED显示接口电路241LED显示器简介通常所说的LED显示器由7个发光二极管组成因此也称之为七段LED显示器,其排列形状如图210所示。此外,显示器中还有一个圆点型发光二极管(在图中以DP表示),用于显示小数点。通过七个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他符号。LED显示器中的发光二极管共有两种连接方法1共阳极接法把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。2共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。图29LED显示器结构图使用LED显示器时要注意区分这两种不同的接法。为了显示数字或符号,要为LED显示器提供代码,这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如表34。表24代码对应关系表代码位D7D6D5D4D3D2D1D0显示段DPGFEDCBA24274HC244缓冲器芯片介绍74HC244是一种三态输出的八缓冲器和线驱动器,该芯片的引脚图如图38所示。由图可见,该缓冲器有8个输入端,分为两路1A11A4,2A12A4,同时8个输出端,也分为两路1Y11Y4,2Y12Y4,分别由1G和2G作为它们的选通工作信号。当记为低电平时,1Y11Y4的电平与1A11A4的电平相同,即输出反映输入电平的高低;同样,当2G为低电平时,2Y12Y4的电平与2A12A4的电平相同。而当1G(或2G)为高电平时,呈高阻态,输出1A11A4(或2A12A4)为高阻态。经74HC244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。、图21074HC244引脚示意图3交通灯控制系统软件设计31软件设计思路及流程图交通道口交通灯控制系统的控制程序主要包括以下几个部分主程序、红绿灯时间动态调节程序、显示程序、定时中断程序、车辆检测延时程序和特种车辆实时响应程序等。311主程序主程序主要是负责总体程序的管理功能,实现人与机的交互设定。因为设计采用动态扫描方式显示时间,所以主程序大部分时间要调用扫描显示程序。主程序流程图如图31所示。YN显示程序开始P370键功能程序初始化图31主程序流程图312定时中断服务程序定时中断服务程序是用于行车及行人通行的通行指示,按通行的规律,红绿灯的控制转换逻辑如表31所示。表31道口通行方式控制码数据表通行规则如下(1)南北方向的行车直行,各路右拐,南北向行人通行,设置南北向通行时间为端口控制功能120110S11070S7060S6010S100SP7左拐红00011P6左拐绿11100/1P5直行红11100P4直行绿000/111P3右拐红01111P2右拐绿10000/1P1行人红11100P0行人绿000/111南北方向道口控制字66H6AH6AH/7BH99H99H/DDHP7左拐红00000P6左拐绿11111P5直行红00000P4直行绿11111P3右拐红01111P2右拐绿10000/1P1行人绿00000P0行人红11111东西方向道口控制字55H99H59H59H59H/5DH1MIN,且各路右拐比直行滞后10S放行。(2)南北方向的行车向左拐,各路右拐,行人禁止通行。通行时间为1MIN。(3)东西方向的行车直行,各路右拐,东西方向的行人通行。东西方向通行时间为1MIN,且各路右拐比直行要滞后20S放行。(4)东西方向的行车向左拐,各路右拐,行人禁止通行。通行时间为1MIN。上述的4种交通规则是通过控制红绿灯端口送控制码的方式来实现。其原理是根据不同规则通行时各路口的红绿灯亮灭情况转换为单片机端口的控制码。指示灯功能通过T0定时中断服务程序实现。定时器T0定时溢出的中断周期设为50MS,中断累计20次时对120S倒计时单元进行减1操作。本设计中将4种通行规则分成几种不同的亮灯方式,通过查询秒倒计时单元的数据,以实现在不同的时间段给控制端口送不同的控制数据码。控制码分为120S110S、110S70S、70S60S、60S10S、10S0S这5个时间段。交通灯管理定时功能程序流程图如图32所示。YYYYYNNNNNT0中断程序现场保护关中断T0T0初值重装东西或南北标志位取反MOVSN,99HMOVEW,59HMOVSN,99HMOVEW,59HMOVSN,6AHMOVEW,59HMOVSN,6AHMOVEW,59HMOVSN,66HMOVEW,55HTIME110TIME70TIME60TIME10TIME0中断返回图32T0定时中断服务程序流程图313特种车辆自动放行中断服务程序当有特种车辆经过时,车中就发射红外线信号,其信号将被道口控制板上的红外信号接收器接收,并有一个低电平输出触发外中断。特种车辆自动放行的中断流程图如图33所示。N外中断程序现场保护关外中断1开定时器1送全红灯,数据缓存15S倒计时结束关定时器T1,开外中断1现场恢复,中断返回红灯显示Y图33特种车辆自动放行的中断流程图314车辆检测中断服务程序车辆检测电路主要是测量由于红灯而导致的滞留车队的长度,因此在红灯结束时读入的车队长度才是真正的滞留车队长度。本文选取红灯还剩2S时读入路况信息14。车辆检测中断流程图如图34所示。YN中断响应现场保护关外中断东西方向红灯还剩2S时读入该方向的路况南北方向红灯还剩2S时读入该方向的路况关定时器,开外中断开启定时器相应方向通行时间增加中断返回东西方向车数量南北方向车数量图34车辆检测中断流程图32存储器及I/O口接口地址本设计中,单片机的程序起始地址为0000H,定时器T0中断程序入口地址为000BH定时器T1的中断程序入口地址为001BH,命令/状态寄存器地址为0080H,P1口地址为0090H,P2口地址为00A0H。33LED显示电路有关编程LED显示电路中最重要的是十六进制数字形代码表,如表42所示表42十六进制数字形代码表字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHFBEH71H7F8H07H灭FFH00H880H7FH4交通灯控制系统的调试41调试及性能分析411红绿灯控制程序不通过定时器T0,直接可按照表71算好的数据吗送出控制灯,再观察其逻辑状态是否符合要求。可以反复多次进行调试,直到逻辑关系正确,但要注意,东西方向、南北方向的指示灯要同时调试。412特殊车辆通行时红外线检测电路的调试可将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,并在模拟小车中放一块红外线发射模块,当小车通过路口时,可检测红外线是否被接收。如果该引脚输出为低电平,则说明可以接收到信号,电路正常。413车辆检测电路的调试可在将示波器输入端端接在交通控制灯的车辆检测模块的输出引脚上,给CCD一个一定距离里的车队信号,可检测车队长度是否能被检测。如果该引脚输出为低电平,则说明可以检测车队长度,调整绿灯时间,电路正常。4心得体会本文主要论述了基于AT89C51单片机的智能交通灯控制系统,虽然智能交通灯控制系统已经取得不少成就,且道路相对好的地方,传统的固定时间的交通灯控制还是有一定的作用。通过这次课设,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力。经历了从最初的设计到最后做出产品的开发过程,提高了对专业的认识及兴趣,对于我们工科来说,对以后就业有及其重大的影响。6参考文献1胡汉才单片机原理与接口技术2北京清华大学大学出版社,200415052徐维祥单片微型机原理及应用大连理工大学出版社,2006123闫胜利ALTIUMDESIGNER6中文版使用教程电子工业出版社20076附录1系统原理图附录2源程序;汇编程序;TIMEEQU50H;秒计数用TIMESFREQU51H;临时寄存器CONR5EQU52H;T11秒定时计数用TIMED0EQU55H;单向最大定时时间,直行开始,人行开始120TIMED1EQU56H;各路右转开始时间110TIMED2EQU57H;前行结束提醒70TIMED3EQU58H;前行结束,人行结束,左转开始60TIMED4EQU59H;左转结束提醒TIMED5EQU5AH;左转结束TIMED6EQU5BHTIMED7EQU5CHSNEQUP1;南北口EWEQUP2;东西口SCANEQUP3;扫描口LEDOUTEQUP0;段码口SNEWFLAGBIT09H;东西口与南北口转换标志;按键在扫描口的最高位,按一下,全红灯,再按一下,恢复原状态;定时器T0、T1溢出周期为50MS,T0为秒计数用;中断入口程序ORG0000H;程序执行开始地址LJMPSTART;跳到标号START执行ORG0003H;外中断0中断程序入口LJMPINT22;外中断0中断返回ORG000BH;定时器T0中断程序入口LJMPINTT0;跳至INTTO执行ORG0013H;外中断1中断程序入口LJMPINT11;外中断1中断返回,119、120中断ORG001BH;定时器T1中断程序入口LJMPINTT1ORG0023H;串行中断程序入口地址RETI;串行中断程序返回;主程序STARTMOVSP,80HMOVR0,00H;清70H7AH共11个内存单元MOVR7,8FHCLEARDISPMOVR0,00HINCR0DJNZR7,CLEARDISPMOVTIMED0,78H;单向最大定时时间,直行开始,人行开始(120S)MOVTIMED1,6EH;各路右转开始时间110SMOVTIMED2,46H;前行结束提醒70SMOVTIMED3,3CH;前行结束,人行结束,左转开始(60S)MOVTIMED4,0AH;左转结束提醒CLRSNEWFLAG;南北先通行标志位MOVTMOD,11H;设T0、T1为16位定时器MOVTL0,0B0H;50MS定时初值(T0计时用)MOVTH0,3CH;50MS定时初值MOVTL1,0B0H;50MS定时初值(T1闪烁定时用)MOVTH1,3CH;50MS定时初值JBSCAN7,SSST;120S秒管理;以下为60秒管理LCALLDL1MSLCALLDL1MSLCALLDL1MSJBSCAN7,SSST;干扰MOVTIMED0,60;单向最大定时时间,直行开始,人行开始60SMOVTIMED1,55;各路右转开始时间55SMOVTIMED2,35;前行结束提醒35SMOVTIMED3,30;前行结束,人行结束,左转开始30SMOVTIMED4,05;左转结束提醒SSWAITJNBSCAN7,SSWAITLCALLDL1MSLCALLDL1MSLCALLDL1MSJNBSCAN7,SSWAITSSSTMOVTIME,TIMED0;120秒LCALLTUNBCDMOVSN,66HMOVEW,55HSETBEA;总中断开放SETBPX1SETBEX1SETBET0;允许T0中断SETBTR0;开启T0定时器MOVR4,14H;1秒定时用初值(50MS20)MOVCONR5,20START1LCALLDISPLAY;调用显示子程序JNBSCAN7,KEYFUN;手动状态SJMPSTART1;P10口为1时跳回START1KEYFUNLCALLDISPLAYLCALLDISPLAYJBSCAN7,START1CLRET0CLRTR0MOVSN,056H;全车道停,行人通MOVEW,056HMOVTIME,00H;时间显示0LCALLTUNBCDKEYWAITLCALLDISPLAYJNBSCAN7,KEYWAITKEYYLCALLDISPLAY;等待按键按下JBSCAN7,KEYYLCALLDISPLAYJBSCAN7,KEYYKEYWAIT1LCALLDISPLAYJNBSCAN7,KEYWAIT1MOVTIME,TIMED0;从新开始计时初值LCALLTUNBCDCLRSNEWFLAG;南北先通行标志位SETBTR0SETBET0AJMPSTART1;1秒计时程序;T0中断服务程序INTT0PUSHACC;累加器入栈保护PUSHPSW;状态字入栈保护CLRET0;关T0中断允许CLRTR0;关闭定时器T0MOVA,0B7H;中断响应时间同步修正ADDA,TL0;低8位初值修正MOVTL0,A;重装初值(低8位修正值)MOVA,3CH;高8位初值修正ADDCA,TH0MOVTH0,A;重装初值(高8位修正值)SETBTR0;开启定时器T0DJNZR4,OUTT00;20次中断未到中断退出MOVR4,14H;20次中断到(1秒)重赋初值JBSNEWFLAG,INT22DECTIMEMOVA,TIMECJNEA,TIMED1,LOOP11;判断是否小于110秒LOOP11JCLOOP22;120110MOVSN,66H;IMOVEW,55H;ILJMPOUTT0;120110LOOP22MOVA,TIMECJNEA,TIMED2,LOOP33;判断是否小于70秒LOOP33JCLOOP44;11070MOVSN,6AH;IMOVEW,59H;ILJMPOUTT0;11070LOOP44MOVA,TIMECJNEA,TIMED3,LOOP55;判断是否小于60秒LOOP55JCLOOP66;7060MOV20H,SNCPL04HCPL00HMOVSN,20H;IMOVEW,59H;ILJMPOUTT0;7060LOOP66MOVA,TIMECJNEA,TIMED4,LOOP77;判断是否小于10秒LOOP77JCLOOP88;6010MOVSN,99H;IMOVEW,59H;ILJMPOUTT0;6010LOOP88MOVA,TIMEJZOUT88MOV20H,SNCPL06HCPL02HMOVSN,20HMOV20H,EWCPL02HMOVEW,20H;ILJMPOUTT0;7060OUT88MOVTIME,TIMED0;120秒初值CPLSNEWFLAGOUTT0LCALLTUNBCDOUTT00POPPSW;恢复状态字(出栈)POPACC;恢复累加器SETBET0;开放T0中断RETI;中断返回INT22DECTIMEMOVA,TIMECJNEA,TIMED1,LOOP111;判断是否小于110秒LOOP111JCLOOP221;120110MOVEW,66H;IMOVSN,55H;ILJMPOUTT01;120110LOOP221MOVA,TIMECJNEA,TIMED2,LOOP331;判断是否小于70秒LOOP331JCLOOP441;11070MOVEW,6AH;IMOVSN,59H;ILJMPOUTT01;11070LOOP441MOVA,TIMECJNEA,TIMED3,LOOP551;判断是否小于60秒LOOP551JCLOOP661;7060MOV20H,EWCPL04HCPL00HMOVEW,20H;IMOVSN,59H;ILJMPOUTT01;7060LOOP661MOVA,TIMECJNEA,TIMED4,LOOP771;判断是否小于10秒LOOP771JCLOOP881;6010MOVEW,99H;IMOVSN,59H;ILJMPOUTT01;6010LOOP881MOVA,TIMEJZOUT881MOV20H,EWCPL06HCPL02HMOVEW,20HMOV20H,SNCPL02HMOVSN,20H;ILJMPOUTT01;7060OUT881MOVTIME,TIMED0;120秒初值CPLSNEWFLAGOUTT01LCALLTUNBCDPOPPSW;恢复状态字(出栈)POPACC;恢复累加器SETBET0;开放T0中断RETI;中断返回;显示程序;显示数据在70H75H单元内,用六位LED共阳数码管显示,P0口输出段码数据,P2口作;扫描控制,每个LED数码管亮1MS时间再逐位循环。DISPLAYMOVR1,70H;指向显示数据首址MOVR5,0FEH;扫描控制字初值PLAYMOVA,R5;扫描字放入AMOVSCAN,A;从P2口输出MOVA,R1;取显示数据到AMOVDPTR,TAB;取段码表地址MOVCA,ADPTR;查显示数据对应段码MOVLEDOUT,A;段码放入P0口LOOP6LCALLDL1MS;显示1MSINCR1;指向下一地址MOVA,R5;扫描控制字放入AJNBACC2,ENDOUT;ACC50时一次显示结束RLA;A中数据循环左移MOVR5,A;放回R5内MOVLEDOUT,0FFHAJMPPLAY;跳回PLAY循环ENDOUTMOVLEDOUT,0FFH;一次显示结束,P2口复位MOVSCAN,0FFH;P0口复位RET;子程序返回TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共阳段码表“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“不亮”,“A”,“”延时程序1MS延时程序,LED显示程序用DL1MSMOVR6,14HDL1MOVR7,19HDL2DJNZR7,DL2DJNZR6,DL1RET10MS延时程序DL10MSMOVR3,2GODL1LCALLDLIMSDJNZR3,GODL1RET300MS延时程序DL300MSMOVR0,12GOON1LCALLDL10MSDJNZR5,GOON1RET将TIME装换为BCD码存储TUNBCDPUSHACCPUSHPSWPUSHBMOVA,TIMEMOVB,100DIVABMOV72H,AJNZJJ0MOV72H,0AH;最高位为零,不点亮JJ0MOVA,BMOVB,10DIVABMOV71H,AJNZJJ1MOVA,72H;次高位为0,先看最高位是否为不亮SUBBA,0AHJNZJJ1MOV71H,0AH;最高位不亮,次高位也不亮JJ1MOV70H,BPOPBPOPPSWPOPACCRET;119、120车中断程序;INT11PUSHACCPUSHPSWCLREX1CLRET0CLRTR0CPLEX1FLAGLCALLDL1MSJNBEX1FALGEX1OVERMOVA,TIMECJNEA,21,GO11GO11JCGO22MOVTIMESFR,TIME;保存道口数据GO22MOVSN,055H;全红灯MOVEW,055HLCALLDL10MSMOVTIME,20MOVCONR5,20LCALLTUNBCDSETBET1SETBTR1EX1OVERLCALLDL10MSSETBEX1POPPSWPOPACCRETI车辆检测中断程序INT22PUSHACCPUSHPSWCLRET0CLRTR0CLRTR0CPLEX1FLAGLCALLDL1MSJNBEX1FALGEX1OVERMOVA,TIMECJNEA,21,GO33GO33JCGO44MOVTIMESFR,TIME;保存道口数据GO44MOVSN,055H;全红灯MOVEW,055HLCALLDL10MSMOVTIME,20MOVCONR5,20LCALLTUNBCDSETBET1SETBTR1EX1OVERLCALLDL10MSSETBEX1POPPSWPOPACCRETI;15秒计时程序;T1中断服务程序INTT1PUSHACC;累加器入栈保护PUSHPSW;状态字入栈保护CLRET1;关T0中断允许CLRTR1;关闭定时器T0JNBEX1FLAGOUT444MOVA,0B7H;中断响应时间同步修正ADDA,TL1;低8位初值修正MOVTL1,A;重装初值(低8位修正值)MOVA,3CH;高8位初值修正ADDCA,TH1MOVTH1,A;重装初值(高8位修正值)SETBTR1;开启定时器T0DJNZCONR5,OUTT333;20次中断未到中断退出MOVCONR5,14H;20次中断到(1秒)重赋值DECTIMELCALLTUNBCDMOVA,TIMEJZOUT444OUTT333SETBET1POPPSWPOPACCRETIOUT444CLRTR1CLRET1MOVTIME,TIMESFRLCALLTUNBCDSETBET0SETBTR0SETBEX1POPPSWPOPACCRETIEND;程序结束GANEMPLOYMENTTRIBUNALCLAIEMPLOYMENTTRIBUNALSSORTOUTDISAGREEMENTSBETWEENEMPLOYERSANDEMPLOYEESYOUMAYNEEDTOMAKEACLAIMTOANEMPLOYMENTTRIBUNALIFYOUDONTAGREEWITHTHEDISCIPLINARYACTIONYOUREMPLOYERHASTAKENAGAINSTYOUYOUREMPLOYERDISMISSESYOUANDYOUTHINKTHATYOUHAVEBEENDISMISSEDUNFAIRLYFORMOREINFORMATIONABOUTDISMISSALANDUNFAIRDISMISSAL,SEEDISMISSALYOUCANMAKEACLAIMTOANEMPLOYMENTTRIBUNAL,EVENIFYOUHAVENTAPPEALEDAGAINSTTHEDISCIPLINARYACTIONYOUREMPLOYERHASTAKENAGAINSTYOUHOWEVER,IFYOUWINYOURCASE,THETRIBUNALMAYREDUCEANYCOMPENSATIONAWARDEDTOYOUASARESULTOFYOURFAILURETOAPPEALREMEMBERTHATINMOSTCASESYOUMUSTMAKEANAPPLICATIONTOANEMPLOYMENTTRIBUNALWITHINTHREEMONTHSOFTHEDATEWHENTHEEVENTYOUARECOMPLAININGABOUTHAPPENEDIFYOURAPPLICATIONISRECEIVEDAFTERTHISTIMELIMIT,THETRIBUNALWILLNOTUSUALLYACCEPTIIFYOUAREWORRIEDABOUTHOWTHETIMELIMITSAPPLYTOYOU,TAKEADVICEFROMONEOFTHEORGANISATIONSLISTEDUNDERFURTHERHELPEMPLOYMENTTRIBUNALSARELESSFORMALTHANSOMEOTHERCOURTS,BUTITISSTILLALEGALPROCESSANDYOUWILLNEEDTOGIVEEVIDENCEUNDERANOATHORAFFIRMA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区公共休闲广场创新创业项目商业计划书
- 供应货品合作合同范本
- 佳丽模特签约合同范本
- 代理退税协议合作合同
- 内部控制管理合同范本
- 住宅水管安装合同范本
- 体能器材出租合同范本
- 供电合同解除协议范本
- 人员保险服务合同范本
- 公司招聘总监合同范本
- 2025年物流行业审核合规性提升方案
- 台球厅吸引人活动方案
- 《人工智能语言与伦理》章节测试题及答案
- 免疫系统趣味讲解
- 2025-2026学年湘科版(2024)小学科学三年级上册(全册)教学设计(附目录P208)
- 2025年产业规模预测新能源产业发展趋势深度分析方案
- 建筑垃圾现场分拣作业流程方案
- 储能电池产品售后服务与维保方案
- 银行监控中心保密协议书
- 架空输电线路线路检测质量缺陷及预控措施
- 胃肠镜检查课件
评论
0/150
提交评论