1、摘要 摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器,利用发光二极管和数码管实现了设置红、绿灯燃亮时间的功能,红绿灯循环点亮,绿灯倒计时结束为5秒的黄灯闪烁警示,利用按键使得系统具有倒计时,时间设置,
2、紧急情况处理,根据具体情况手动控制等功能。本系统实用性强、操作简单、扩展功能强等特点。 关键词:STC89C52,发光二极管,数码管,按键ABSTRACTWith the rapid development of science and technology in recent years, SCM applications are deepening at the same time promote more traditional control detection update. SCM applications in automatic control systems, SCM is
3、often used as a core component, only the MCU is not enough knowledge, but also hardware and software based on specific hardware combination to be improved.Crossroads shuttle vehicles, pedestrians bustling, car dealers Drive, people walkways, orderly. Then rely on to achieve the discipline of the ord
4、er then? Rely on the automatic traffic light is the chain of command. Many ways to control traffic lights. In this system, MSC-51 Series MCU devices designed STC89C52 center traffic light controller, use light-emitting diode and digital control to achieve a set of red, green kindle function of time,
5、 traffic light cycle light, countdown 5 seconds left when the yellow light flashes warning, use of keys makes the system has countdown time setting, emergency treatment, according to manual control and other functions specific circumstances. The system practical, simple, powerful extensions. Key wor
6、ds:STC89C52,LED,Digital tube,key-pressi目录目录第一章 绪 论- 1 -1.1引言- 1 -1.2 概述- 2 -第二章 芯片简介- 3 -2.1 MSC-51芯片简介- 3 -2.1.1 MCS-51单片机内部结构- 3 -2.1.2 中央处理器- 3 -2.1.3 数据存储器(RAM)- 3 -2.1.4 程序存储器(ROM)- 4 -2.1.5 定时/计数器(ROM)- 4 -2.1.6 并行输入输出(I/O)口- 4 -2.1.7 全双工串行口- 4 -2.1.8 中断系统- 4 -2.1.9 时钟电路- 4 -2.2 MCS-51的引脚说明- 5
7、 -第三章 交通灯系统方案论证与硬件设计- 7 -3.1设计目的和要求- 7 -3.1.1 交通灯工作状态分析- 7 -3.2 方案比较与论证- 8 -3.21硬件系统设计具备的原则- 8 -3.2.2 程序选择方案- 8 -3.2.3 显示界面方案- 8 -32.4 输入方案- 9 -3.3 硬件电路设计- 9 -3.3.1交通灯控制系统的硬件要求- 9 -3.3.2硬件结构框图- 9 -3.3.3交通灯流程图- 10 -iii目录3.3.4 交通灯控制系统的原理框图- 10 -3.3.5 电路原理框图的解释与说明- 11 -3.3.6 基于交通灯电路原理图绘制的PCB板- 20 -第四章
8、交通信号灯软件的系统编程- 21 -4.1 信号灯亮灭的定时功能- 21 -4.1.1 单片机的定时器- 21 -4.1.2 定时器数值的设置应该注意的事项- 21 -4.2 51单片机的中断系统- 22 -4.2.1 中断系统的概念- 22 -4.2.2 单片机中断系统的作用- 22 -4.2.3 如何实现单片机的中断- 23 -4.2.4 中断源- 23 -4.2.5 交通灯源程序(见附录)- 23 -第五章 系统仿真- 24 -5.1 proteus软件介绍- 24 -5.2 keil软件介绍- 27 -5.2.1 系统概述- 27 -5.2.2 Keil C51单片机软件开发系统的整体
9、结构- 27 -第六章 调试功能说明- 29 -6.1 硬件调试- 29 -6.1.1最小系统调试- 29 -6.1.2 故障点分析- 29 -6.2软件调试- 30 -第七章 结束语- 32 -致 谢- 33 -参考文献- 34 -附录(交通灯源程序)- 35 -1第一章 绪 论第一章 绪 论1.1引言1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。 1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表
10、示“注意”。 1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914 年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918 年,又出现了带控制的红绿灯和红外线红绿灯,带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交
11、通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定,绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车,黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。交通信号灯的出现,使交通得以有效管制,对于疏导交通流
12、量,提高道路通行能力,减少交通事故有明显效果。1.2 概述单片机微型计算机是微型计算机一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用控制领域,故又称为微控制器。 单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件,中央处理器,存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过 1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在不断增强,内部资源在增多,引角的多功能化,以及低电压底功耗。本设计是采用 MSC-51系列单片机 STC89C52为中心器件来设计交通灯控制
13、器,再设计之前,必须要先了解实际交通灯的变化规律,假设一个路口为东西南北走向,即十字路口,初始状态零为东西南北灯都熄灭,然后转状态一东西绿灯通车,南北为红灯。过段时间转状态二,东西绿灭转黄灯,延时5秒,南北仍为红灯。再转状态三南北绿灯通车,东西红灯。过段时间转状态四南北绿灯灭转黄灯,延时5秒,东西仍为红灯,最后循环至状态一。利用MSC-51系列单片机STC89C52为中心器件,发光二极管和数码管实现了设置红、绿灯燃亮时间和显示的功能,控制十字路口红绿灯交替亮和熄灭。5第二章 芯片简介第二章 芯片简介2.1 MSC-51芯片简介2.1.1 MCS-51单片机内部结构8051作为MCS-51系列单
14、片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051单片机包含中央处理器,程序存储器(ROM),数据存储器(RAM),定时/计数器,并行接口,串行接口和中断系统等几大单元及数据总线,地址总线和控制总线等三大总线,现在我们分别加以说明。2.1.2 中央处理器中央处理器(CPU)是整个单片机的核心,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制,指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2.1.3 数据存储器(RAM)8051内部有128个8位用户数据存储单元和128 个专用寄存器单元,它们是统一编址,专用寄存器只能用于存放控制指令数据,
15、用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2.12.1.4 程序存储器(ROM)8051有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。2.1.5 定时/计数器(ROM)8051有两个16位可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。2.1.6 并行输入输出(I/O)口8051有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。2.1.7 全双工串行口8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可用作异步通信收发器,也可当同步
16、移位器使用。2.1.8 中断系统8051具备较完善的中断功能,有两个外中断,两个定时/计数器中断和一个串行中断,可满足不同控制要求,并具有2级的优先级别选择。2.1.9 时钟电路8051内置最高频率达12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需要外置振荡电容。单片机的结构有两种,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton )结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则是采用普
17、林斯顿结构。下图是MCS-51系列单片机的内部结构示意图 (图2.2)。图2.22.2 MCS-51的引脚说明MCS-51系列单片机中8031,8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40 个引脚,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O 口,中断口线与P3口线复用。现在对这些引脚的功能加以说明: 如图2.3 图2.3Pin9: RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位,初始化后,程序计数器PC 指向0000H,P0-P3输出口全部
18、为高电平,堆栈指针写入07H,其它专用寄存器被清“0”,RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。但是,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式即可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM 的数据不丢失。图2.4Pin30: ALE/当访问外部程序器时,ALE (地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个1/6时钟频率的正脉冲信号,这个信号可用于识别单片机是否工作,也可以当作一个
19、时钟向外输出。更有一个特点,当访问外部程序存储器,ALE跳过一个脉冲。如果单片机是EPROM ,在编程其间,将用在输入编程脉冲。Pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU 读入并执行。Pin31: EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB程序存储器,EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,E
20、A 端必须接地。在编程时,EA/Vpp 脚还需加上21V的编程电压。19第三章 交通灯系统方案论证与硬件设计第三章 交通灯系统方案论证与硬件设计3.1硬件设计目的和要求本毕业设计的目的是设计一个符合十字路口结构的交通灯控制系统。每个方向上都有三个交通灯分别是控制直行方向的红、绿、黄灯。假设一个十字路口为东西南北走向。初始状态0为东西南北灯都熄灭。然后转状态1东西绿灯通车,持续50秒,南北红灯。过一段时间转状态2,东西绿灯灭转亮黄灯,闪烁5秒,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭转亮黄灯,闪烁5秒,南北仍然红灯。最后循环至状态1。交通信号灯控制系统设计
21、利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间。如图3.1为交通灯十字路口图图3.13.1.1 交通灯工作状态分析图3.23.2 方案比较与论证3.21系统设计具备的原则1.能满足系统的设计要求,易于操作维护。2.系统功能要灵活,便于扩展。3.需具有自动诊断功能。3.2.2 程序选择方案为使交通灯系统工作,须对单片机进行软件编程控制,可选择的方案有两种,C-51与ASM-51,我选择的编程方式是C-51,其理由如下:1. 对单片机的指令系统不要求太了解,仅要对8051的存储器结构有初步了解;2寄存器分配,不同存储器的寻址及数据类型等细节可由编译器管理;3程
22、序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4提供的库包含许多标准子程序,具有较强的数据处理能力;5由于具有方便的模块化编程技术,使已经编好的程序易于移植。3.2.3 显示界面方案该系统要完成倒计时,状态灯等功能。基于上述条件和要求,我考虑了三种方案:1完全使用数码管显示,这种方案只显示有限的的符号和数码字符,无法胜任要求。2只用LED显示红,黄,绿三种状态,该方案效果单一,没有办法显示时间,不符合设计要求,不能很好的实现交通灯的功能。3采用数码管与LED相结合的方法,因为设计即要求倒计时又要求状态灯输出等,为方便观看且考虑到现实情况,用数码管与LED满足系统功能要求,既直观也能
23、很好的实现交通灯功能,故选择第三种方案。32.4 输入方案题目要求能手动控制时间,紧急情况处理,我考虑两种方案:1.采用8155扩展I/O口及按键显示。该方案的优点是,使用灵活,并且有RAM,及计数器。若用该方案,可提供较多的I/O口,但操作起来复杂。2.直接在I/O口线上接上按键开关所以剩余口资源还较多。由于该系统对于交通灯及数码管的控制,用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。3.3 硬件电路设计3.3.1交通灯控制系统的硬件要求 STC89C52,LED数码管,按键开关,电阻,发光二极管。3.3.2硬件结构框图图3.33.3.3交通灯流程图图3.43
24、.3.4 交通灯控制系统的原理框图 图3.53.3.5 电路原理框图的解释与说明利用STC89C52芯片,数码管,发光二极管,以及开关按键通过编程完成交通灯的设计与实现,实现交通灯东西南北四个方向的指示功能,而且基于人性化的考虑,融入了倒计时,交通灯东西强行或南北强行等功能设计。如图9为STC89C52图3.61.对所需原件的简单介绍(a) STC89C52功能与引脚说明:与MCS-51单片机产品兼容 ,8K字节在系统可编程Flash存储器,1000次擦写周期,全静态操作:0Hz33Hz ,三级加密程序存储器 , 32个可编程I/O口线,三个16位定时器/计数器八个中断源,全双工UART串行通
25、道,低功耗空闲和掉电模式,掉电后中断可唤醒,看门狗定时器,双数据指针, 掉电标识符 。STC89C52 是一种低功耗, 高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造 ,与工业 80C51 产品指令和引脚完全兼容,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能:8k字节Flash, 256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个
26、16 位定时器/计数器,一个 6 向量2级中断结构,全双工串行口,片内晶振及时钟电路,另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式,空闲模式下,CPU 停止工作,允许RAM,定时器/计数器,串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作暂停 ,直到下一个中断或硬件复位为止。P0 口:P0 口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平,对P0端口写“1”时,引脚用作高阻抗输入。而访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0 具有内部上拉电阻。而在flash编程
27、时,P0口也用来接收指令字节,在程序校验时,输出指令字节, 程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动 4 个 TTL 逻辑电平,对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用,作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下所示。 在flash编程和校验时,P1 口接收低8位地址字节。引脚号第二功能:P1.0 T2(定时器/计数器T2
28、的外部计数输入),时钟输出;P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);P1.5 MOSI(在线系统编程用);P1.6 MISO(在线系统编程用);P1.7 SCK(在线系统编程用);P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口。P2 输出缓冲器能驱动4 个 TTL 逻辑电平,对P2 端口写“1”时,内部上拉电阻把端口拉高,可以作为输入口使用。而作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL) 。访问外部程序存储器或用 16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址,在这种应用中,P2
29、 口使用很强的内部上拉发送1。在使用 8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的 8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为 STC89C52特殊功能(第二功能)使用,如下所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚 第二功能P3.0 RXD(串行输入口);P3.1
30、 TXD(串行输出口);P3.2 INTO(外中断0);P3.3 INT1(外中断1);P3.4 TO(定时/计数器0);P3.5 T1(定时/计数器1);P3.6 WR(外部数据存储器写选通);P3.7 RD(外部数据存储器读选通);P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST 复位输入,当振荡器工作时,RST 引脚出现两个机器周期以上高电平为单片机复位。ALE/PROG 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注
31、意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对FLASH 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH单元的D0位置位,可禁止ALE 操作。该位置位后,只有一条 MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE禁止位无效。PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN信号。EA/VPP 外
32、部访问允许,欲使 CPU仅访问外部程序存储器(地址为0000H- FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器的指令。FLASH 存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。(b)数码管数码管按段数分为7段数码管和8 段数码管,8段数码管比7段数码管多一个发光二极管单元(由小数点显示);按能显示多少个“8”可分为1 位、2位、4 位等数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将
33、所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮,本系统选用的是共阴数码管。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
34、静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,如驱动5个数码管静态显示则需要5840根I/O 端口来驱动,要知道一个 89S51单片机可用的I/O端口才32个),实际应用必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电
35、路,位选通由各自独立的 I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显出字形,没有选通的数码管就不亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动,在轮流显示过程中,每位数码管的点亮时间为12 ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度够快,给人的感觉就是一组稳定的显示数据,不会有闪烁的感觉,动态显示的效果和静态显示是一样的,能够节省大量的I/O 端口,
36、而且功耗更低基于交通灯所要实现的的功能要求,所以选用第二种,动态显示驱动。(C)发光二极管(图3.7)图3.7发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN 结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使 P区的空穴注入到N 区, N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,此时产生的能量大部分以光的形式出现,因此而发光,当所有二极管都发出光时,大多数都不是很有效的,在普通二极管里,半导体材料本身吸引大量的光能而结束。发光二极管是由一个塑性灯泡覆盖集中灯光于一个特定方向。由于不同
37、材料的禁带宽度不同,所以由不同材料制成的发光二极管会发出不同波长的光。另外,有些材料由于组分和掺杂不同,例如,有的具有很复杂的能带结构,相应的还有间接跃迁辐射等,因此有各种各样的发光二极管。发光二极管在制作时,使用的材料有所不同,那么就可以出现不同颜色的光。 发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等等。 发光二极管的外形有:圆形,长方形,三角形,正方形,组合形,特殊形等。 常用的发光二极管应用电路有4种,即直流驱动电路,交流驱动电路,脉冲驱动电路,变色发光驱动电路。 在使用LED作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和LED所需工作电流来决定。发光
38、二极管的压降LED的光学参数与PN结结温有很大关系。工作在小电流IF10mA,或者1020 mA长时间连续点亮LED温升不太明显。因此我们选的二极管颜色为红色,黄色,绿灯是通行信号,面对绿灯的车辆可以直行红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车,黄灯是警告信号,面对黄灯的车辆不能越过停车线。2交通灯部分电路功能解释单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统(图3.8)。对51系列单片机来说,最小系统一般应该包括:电源,晶振电路,复位电路.图3.8通过该部分电路,单片机可实现初始状态为东西南北灯都熄灭,然后转状态1东西绿灯通车,南北红灯。过
39、一段时间转状态2,东西绿灯灭转亮黄灯,闪烁5秒,南北仍然红灯。 再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭转亮黄灯,闪烁5秒, 南北仍然红灯。最后循环至状态1。交通信号灯控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,控制LED 数码管显示时间。复位电路(图3.9):由电容串联电阻构成,由图并结合电容电压不能突变的性质,可知,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST 脚的高电平持续两个机器周期以上就将复位,所以,适当组合 RC的取值就可以保证可靠的复位,一般C取10u,R 取8.
40、2K.也有其他取法,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.图3.9晶振电路(图3.10):典型的晶振取11.0592MHz (因为可以准确地得到9600波特率和 19200波特率,用于有串口通讯的场合)/12MHz (产生精确的uS级时歇,方便定时操作) 图3.10如图3.11,该部分电路主要由数码管和发光二极管组成,负责实现交通灯状态的显示,数码管显示红、黄、绿灯持续时间,发光二极管实现红、黄、绿三种颜色的显示,从而实现东南西北四个方向交通灯的燃亮以及时间显示情况。图3.11如图3.12,该部分电路通过按键可实现倒计时加一减一,东西南北各路强行,方向切换等功能,使
41、得交通灯更加人性化。图3.123.3.6 基于交通灯电路原理图绘制的PCB板 图3.13 交通灯PCB板23第四章 交通信号灯软件系统编程第四章 交通信号灯软件系统编程4.1 信号灯亮灭的定时功能4.1.1 单片机的定时器在单片机应用系统中,实现定时的方法一般有以下三种方法:(1)软件定时:让计算机执行一段程序来进行事件延时,这个程序段本身份没有安排其他的执行目的,只是利用该程序段的执行花费的一个固定时间,通过适当的选择指令和安排循环次数,可调节这段程序执行所需花费的时间的长短。其特点是定时时间精确,不需外加硬件电路,但占用时间。因此软件定时的时间不宜过长。(2)硬件定时:利用硬件电路实现定时
42、。其特点是不占用 时间,通过改变电路元器件参数调来节定时,但使用不够灵活方便,对于时间较长的定时,常用硬件电路来实现 。(3)可编程定时器:通过专用的定时计数器芯片来实现,其特点是通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序设定的方法改变,使用灵活简便。也可实现对外部脉冲的计数功能,单片机交通控制器的设计 。当定时计数器设置为计数工作方式时,技术器对来自输入引脚 T0和T1的外部信号计数,外部信号的下降沿将触发计数,最高检测频率为振荡频率的二十四分之一,计数器对外部输入信号的占空比没有特别限制,但是必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上 。当设置了定时器的工作方
43、式并启动定时器工作后,定时器就按照设定的工作方式独立工作,不在占用 CPU的操作时间,只有在计数器计满溢出才能中断CPU当前操作。4.1.2 定时器数值的设置应该注意的事项延时方法可以有两种一中是利用MCS-51 内部定时器溢出中断来确定1秒的时间,另一种采用软件延时方法。定时器工作时必须给计数器送初值,这个值是送到TH和TL中。他以加法记数的,并能从全1到全0时自动产生溢出中断请求,因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算公式:TC=M-C,式中,M为计数器模值,该值和计数器工作方式有关系。在方式0时M 为8196 ;在方式1时 M的值为6553
44、6;在方式2和3为256。T=(MTC)T计数 或 T计数;T计数 是单片机时钟周期 的12倍;为定时初值,如单片机的主脉冲频率为 12,经过12分频。方式0: 213微秒8.192 毫秒方式1: 216微秒65.536毫秒在这里采用的是方式 1,则初始值TC = 65536-50000THO = (65536-50000)%256 TL0 = (65536-50000)/256显然1 秒钟已经超过了计数器的最大定时时间,所以只有采用定时器和软件相结合的办法才能解决这个问题我们采用在主程序中设定一个初值为0的软件计数器和使定时50毫秒这样每当到50毫秒时就响应它的溢出中断请求,进入他的中断服务
45、子程序。在中断服务子程序中,先使软件计数器加1,然后判断它是否为20。为20表示1 秒已到可以返回到输出时间显示程序4.2 51单片机的中断系统 4.2.1 中断系统的概念计算机在执行正常程序时,如果系统出现某些急需处理的异常情况和特殊请求,CPU 会暂时中止正在执行的指令,转去对随机发生的更紧迫事件进行处理;处理完后,CPU 会自动返回原来的程序继续执行。4.2.2 单片机中断系统的作用CPU 响应中断申请时,首先使先级有效位置位,以阻止同级或低级的终端申请;然后把程序计数器PC 的内容压入堆饯,再把与中断服务程序入口地址送到程序计数器PC;同时清除某些中断标志。以上过程均由端系统自动完成。
46、4.2.3 如何实现单片机的中断8052具备较完善的中断功能,有两个外部中断,两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。4.2.4 中断源MCS-51单片机的中断源共有5 个,分为3类:外部中断源,片内溢出中断源,串行口中断源。外部中断源可以分为由片内 P3.2引脚输入的INT0中断,以及由P3.3引脚输入的INT1 中断。片内溢出中断分为定时器T0中断和定时器T1中断。串行口中断只有一个,片内串行数据的接收和发送中断,这5个中断源在程序存储器中各有中断服务程序的入口地址,这个地址也称为矢量地址。在CPU响应中断时,硬件自动形成各自的入口地址,由此进入中断服务程序,从而实现了正确的转移。4.2.5 交通灯源程序(见附录)27基于单片机的交通灯设计与实现第五章 系统仿真5.1 proteus软件介绍Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS,ARES等软件模块,ARES 模块主要用来完成 PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus 的软件仿真基于VSM 技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等