单片机控制交通信号灯
- 格式:pdf
- 大小:161.13 KB
- 文档页数:8
计算机应用专业毕业设计《单片机控制交通信号灯》班级:学号:姓名:一.功能原理概述:本设计是以单片机80C51芯片为主控芯片进行平面十字路口交通信号灯的自动控制.并且具有在救护车到来或有紧急情况发生时实现双向禁行10秒钟的功能,以便使救护车优先通行.在主干道一侧具有通行/禁行到计时显示,防止发生闯红灯的现象发生.本系统的主要工作原理是将程序保存在80C51芯片中,通过80C51的P1并行接口输出A,B两条线的信号灯信号由锁存器锁定信号,经过驱动放大电路使发光二极管根据程序要求点亮或熄灭.P0并行接口输出的信号通过锁存器,驱动放大电路控制主干线上放行/禁行时间的到计时显示.其十位,个位控制由P2.4和P2.5接口输出信号经过反向驱动来实现.救护车到达时通过手动按键向80C51的外部中断0(P3.2接口)输入信号使单片机执行中断响应程序,达到救护车优先通行的目的.各芯片逻辑布线图二.硬件清单:80C51单片机1个LED 2EF501发光二极管6个74LS377锁存器2个6MHz晶振1个74LS244缓冲器/驱动器2个1K电阻7个74LS00或门电路1个30pF电容2个74LS04反向驱动器1个22μF电容1个LS5621BH数码管1个三.硬件选型基准与主要参数:由于本系统仅为实验室模型,因此选取74系列芯片.如实际应用应根据当地的环境温度,系统的工作电压负载的大小等方面重新选择.以下是介绍的是本系统选择硬件中考虑的一些参数.1.工作电压:本系统使用一个TTL型普遍使用的+5V电源.因此所有芯片的工作电压全部为+5V.采用一个电源可以很容易地定义高电平与低电平的输出电压,防止系统0,1判断错误.并且比使用多电源节约资金,减小系统的体积.2.工作频率:频率越高系统的处理速度越快,但成本也越高.考虑到本系统数据量很小.处理速度要求不高等因素并没有使用80C51常用的12MHz外接晶振,而是使用6MHz外界晶振.另外使用6MHz晶振使得机器周期计算变的容易.有利于程序的编写.3.工作温度:由于本系统是实验室模型,所以选用74系列民用型芯片,其工作温度为0~70℃.如实际应用应考虑当地的环境温度.如北京地区应使用CMOS型芯片(-40~85℃)或ECL-10K型(-30~85℃)但后者成本较高.4.功耗:功耗的大小取决与负载的大小及芯片的消耗.对选择电源有决定作用.本系统采用发光二极管及小型数码管示意显示因此功耗没有考虑.如实际使用中负载大时应在负载前加装大功率驱动电路或放大电路5.驱动能力:(扇出能力)驱动能力主要是指芯片在额定电压下的输出电流的大小.负载越大要求驱动能力越高.本系统使用小型数码管(LS5621BH)和发光二极管(LED 2EF501)做负载,74LS244的驱动能力完全满足.在发光二极管前加装1K1电阻完全出于安全考虑.不加装对系统影响不大.6.抗干扰能力:(容限)容限又是大家俗称的噪音.噪音会对逻辑电路的高低电平的电压产生影响,容易造成'0','1'判断错误.要受温度,电源电压,频率等影响.本系统温度稳定,电源电压,频率较低噪音影响很小.因此忽略不计.四.系统主要参数:工作电压:5V温度范围:0~70℃最小高电平输入电压:(Vih)2V最大低电平输入电压:(Vil)0.8V高电平输出电流:(Ioh)<-0.4mA低电平输出电流:(Iol)>8mA工作频率:(f)50MHz五.各芯片原理介绍:1.80C51单片机的组成及结构:80C51单片机在一块芯片上集成了一台计算机的主要组成部分,其中包括CPU,存储器,可编程I/O接口,定串行口等.并且各部分通过内部总线连接.其内部结构如图:P0.0~P0.7P2.0~P2.7a.中央处理器(CPU):包括运算器电路与控制器电路.运算器电路:包括运算逻辑单元(ALU),累加器(ACC),B寄存器,程序状态字(PSW),2个暂存器.控制器电路:包括程序计数器(PC),PC加1寄存器,指令寄存器,指令译码器,定时与控制电路.b.内部数据存储器:包括RAM,RAM地址寄存器.共256个RAM单元,其中128个为用户使用.c.内部程序存储器:包括4K*8ROM和程序地址寄存器.d.定时器/计数器:共有2个16位定时器/计数器.e.串行口:实现单片机与其他设备的串行数据传输.也可做同步移位器使用.f.中断控制系统:共5个中断源.外部中断2个,定时/计数中断2个,串行中断1个.g.并行I/O口:共4个8位I/O口.(P0~P3)实现数据的并行输入输出.h.时钟电路:(OSC) 片内有时钟电路.但片外需要外接晶振.本设计使用6MHz晶振.I.位处理器:通过运算器实现.j.总线:连接以上各个部件的传输线.有利于集成化.2.80C51管脚分布及功能:*Vcc:(40脚) +5V电源电压.*Vss:(20脚) 电路接地端.*P0.0~P0.7:(32~39脚) 通道0.它是8位漏极开路的I/O通道,当扩展外部存储器时,这也是低8位地址和数据总线,在编程和校验期间,它输入和输出字节代码,通道0吸收/发出2个TTL负载.*P1.0~P1.7:(1~8脚) 通道1.它是8位拟双向I/O通道,在编程和校验期间,发出低8位地址.*P2.0~P2.7:(21~28脚) 通道2.它是8位拟双向I/O通道,当/Vpp访问外部存储器时,用做高8位地址总线.通道2能吸收/发出PROG1个TTL负载.INT0*P3.0~P3.7:(10~17脚) 通道3.它是准双向I/O通道.通道3能INT1吸收/发出1个TTL负载.P3通道的每条线还有另外一种功能.*P3.0/RXD:(10脚) 串行输入口.*P3.1/TXD:(11脚) 串行输出口.WR*P3.2/INT0:(12脚) 外部中断0输入口.RD*P3.3/INT1:(13脚) 外部中断1输入口.*P3.4/T0:(14脚) 定时器/计数器0外部事件脉冲输入端.*P3.5/T1:(15脚) 定时器/计数器1外部事件脉冲输入端.*P3.6/WR:(16脚) 外部数据存储器写脉冲.*P3.7/RD:(17脚) 外部数据存储器读脉冲.*RST/VpD:(9脚) 复位输入信号,振荡器工作时,此引脚上持续2个机器周期的高电平时可以实现复位操作,在掉电情况下(Vcc减低到操作允许限度以下),后备电源加到此引脚,只对片内RAM供电.*ALE/PROG:(30脚) 地址锁存有效信号.其主要作用是提供一个适当的定时信号,在它的下降沿用于外部程序存储器或外部数据存储器的低8位地址锁存.使总线P0输入/输出口分时用做地址总线(低8位)和此信号每个机器周期出现2次,只是在访问外部数据存储器期间才不输出ALE.所以,在任何不使用外部数据存储器的系统中,ALE以1/6振荡频率的固定速率输出.因此它能用做外部时钟或定时,87C51内的EPROM编程时此端输入编程脉冲信号.*PSEN:(29脚) 程序选通有效信号,当从外部程序存储器读取指令产生低电平时,指令寄存器的内容将读到数据总线上.*EA/Vpp:(31脚) 当保持TTL高电平时,如果指令计数器小于4096,80C51执行内部ROM的指令,87C51执行内部EPROM的指令,当使TTL为低电平时,从外部程序存储器取出所有指令,在87C51内的EPROM编程时,21V编程电源输入端.*XTAL1:(18脚) 内部振荡器外接晶振的一个输入端,HMOS芯片使用外部振荡源时,此端必须接地.*XTAL2:(19脚) 内部振荡器外接晶振的另一个输入端,HMOS芯片使用外部振荡源时,此端用于输入外部振荡信号.3.74LS377(锁存器)管脚分布及功能:74LS377芯片是一个8位信号锁存器.其功能主要是在没有新的指令信号到达之前保持原有信号的输出.*G :(1脚) 锁存控制信号.低电平有效.*1D~8D:8位信号输入端.*1Q~8Q:8位信号输出端.*GND:(10脚) 接地端.*CLK:(11脚) 使能控制端.*Vcc:(20脚) +5V电源输入端.输入端接下一位G1位数据锁存器结构示意图真值表说明:1当G端为低电平,CLOCK端为高电平时,输入与输出端状态相同急输出跟随输入.2当G端为低电平,CLOCK端由低电平转为高电平(上升沿)时输入端数据锁入内部寄存器中,并与输出端相同.当G端保持低电平时,即使输入端信号变化也不会影响输出.从而实现锁存功能.3当G端为高电平时,三态门处于高阻状态.D0~D7与Q0~Q7被隔离,不能输出.4.74LS244 8位同相三态数据缓冲器/驱动器因为在任意时刻只能进行一个源和一个负载之间的数据传输,因此要求此刻其他所有外部设备在电性能上与总线隔离.外设在需要的时候与总线接通,不需要时与总线隔离开.这就是总线隔离问题.此外由于单片机功率有限,故每个I/O 引脚的驱动能力亦有限,因此要驱动负载就必须提高其功率.在电路上使用缓冲器/驱动器有效地解决了上述两个问题.74LS244是代表性的缓冲器/驱动器元件.4.1 74LS244的内部结构与管脚分布:Vcc 2G 1Y12A41Y22A31Y32A21Y42A1*Vcc:(20脚) 电源输入端.*GND:(10脚) 接地端.*1G,2G:(1,19脚) 使能端.低电平有效.*1A1~1A4,2A1~2A4:(2,4,6,8,11,13,15,17脚) 数据输入端.8位.*1Y1~1Y4,2Y1~2Y4:(3,5,7,9,12,14,16,18脚) 数据输出端.8位.缓冲器/驱动器主要是以三态门原理为基础.当使能端由低电平变为高电平时(上升沿),输出端跟随输入端.当使能端保持低电平状态时,输出信号不会受输入信号的影响.当使能端为高电平时,三态门处于高阻状态,停止输出.真值表5.74LS00或门集成电路74LS00是将4个或门电路集成的芯片.实现功能为输出(Y)=输入(A)+输入(B)或者输出(Y)=输入(A)*输入(B)其管脚分布与功能如下:*Vcc:电源接入端.*GND:芯片接地端.*1A~4A.1B~4B:(1,2,4,5,9,10,12,13脚) 输入端.*1Y~4Y:(3,6,8,11脚) 输出端.真值表逻辑图AB6.74LS06 六路反向驱动电路74LS06是由6个非门集成的芯片.并且具有驱动能力.其管脚分布如下:*Vcc:电源接入端.*GND:芯片接地端.*1A~6A:(1,3,5,9,11,13脚) 输入端.*1Y~6Y:(2,4,6,8,10,12脚) 输出端.逻辑原理图A Y=A六.程序编写思路:本程序主要由4部分组成.分别是主程序,中断程序,延时程序,显示程序.其中延时程序是主程序的一显示程序是延时程序的一级子程序,主程序的二级子程序.主程序作用:控制信号灯的4种状态(A线放行/警告/禁止,B线禁止/警告/放行)和数码管的显示.调用延时程序.接受中断申请.中断程序作用:接受外部中断申请,停止主程序运行.保护主程序中断时的现场.设置A,B线禁止显示并设定时间.调用延时子程序.恢复现场,中断返回.延时程序作用:控制数码管的段控与位控及倒计时显示.调用显示子程序.采用循环达到1秒延时.显示程序作用:输出信号控制数码管的显示.说明:1.由于硬件中有锁存器,因此显示程序每次只输出1次.不用连续输出.2.延时程序工作原理:将数码管要显示的数据存入通用寄存器,然后进行输出(数码管).进入1秒补时循环.根据外部送入的6MHz频率计算 1机器周期=12/6MHz=2微秒.1秒=50万机器周期.程序本身为56个机器周期.第一次循环中第一层循环111次共555个机器周期.第二层循环100次共55500个机器周期第三层循环9次共499500个机器周期.第二次循环共计444个机器周期.因此得出总共延时的机器周期=56+499500+444=500000机器周期=1秒.七.总结:。