1、基于单片机的智能交通灯控制系统设计与实现XXXXXX毕业设计基于单片机的智能交通灯控制系统设计与实现摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多.本系统采用STC89C52RC单片机以及单片机最小系统和74HC245电路以及外围的按键和数码管显示等部件,设计一个基于单
2、片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单、扩展功能强.关键词:交通灯;单片机;显示;计时;车流量Design and implementation of intelligent traffic lights control based on MCUAbstractIn recent years along with the rapid development of science and technology, SCM applications are continually deepening, and promote the
3、traditional control detection technology is updated。 In real-time detection and automatic control of the microcomputer application system, the microcontroller is often used as a core component, only SCM knowledge is not enough, should be based on specific hardware structure of hardware and software
4、combination, to be perfect。Crossroads shuttle vehicles, pedestrians bustling, car dealership traffic lane, people walkways, everything in good order and well arranged。 So what to rely on to realize it in order? Is the traffic lights on the automatic command system. A lot of traffic signal control. T
5、his system uses STC89C52RC and 74HC245 system and the smallest transistor driving circuit and a periphery of the keys and digital tube display and other parts, a design based on the single chip design of traffic lights。 Design through one of two common cathode nixie tube display, and can be key to r
6、egular set。 This system is practical, simple operation, strong expanding function.Keywords: Traffic light,SCM,Display,Timing,Traffic flow目录1前言11.1本设计的目的及意义11.2本设计在国内外的发展概况及存在的问题21。3本设计应解决的主要问题32方案介绍32.1设计原理32。2方案选择42。3分析问题53硬件设计73。1系统硬件总电路构成:73.2单片机系统及其历史73。3单片机内部组成以及引脚介绍83.4单片机最小系统103。5 LED显示123。6数
7、码管显示133.7信号显示驱动电路153。8键盘输入电路153.9红外接收原理164软件设计174.1定时器的设置184.2中断程序的设置185调试185。1断电调试185.2通电调试195。3功能部分的测试196结论20参考文献20谢辞22附录231前言当今社会,科技不断的发展,作为微控技术其中一部分的单片机也紧跟着脚步,正在迅速发展,普遍运用到了人们生活的各个领域。它的出现使传统的控制技术发生了本质上的转变。可以说单片机的创造对于以往的控制技术来说就像是一场革命。无论在日常生活中,我们所用到的电饭煲,洗衣机,冰箱等等,还是在工业领域的自动化控制,电子领域的数据收集等等,都能看到单片机存在的
8、身影,在微控领域占据了极高的地位。所以单片机的开发应用是高科技领域的一个里程碑。所以我们有必要更加深入掌握有关单片机的知识以及其应用技术。本文正是运用单片机来制作一个模拟的智能交通灯,通过此交通灯来智能控制十字路口的交通,有效、科学的控制引导过往的车辆和人流。11。1本设计的目的及意义本设计的目的是制作一个比较符合实际情况,价格低廉而不乏性能的交通灯智能操控系统。通过对现在的交通灯的了解和研究,本人打算使用红外线检测传感、根据实际情景来改变智能化控制的技术。系统除了一般的交通灯的功能之外,还可以通过检测十字路口车的数量的多少来控制红绿灯时间的改变。不仅如此,除了自动控制红绿灯的变化之外,在紧急
9、的特殊情况下,还可以手动的变换红绿灯来使一些特殊的车辆快速通过交通路口等.因为根据综合情况考虑到经济和实际运用等等,本人使用单片机来控制整个系统的运作,跟ARM这种功能等各方面更加完善的控制方案相比,单片机确实是无法比拟的。然而,正是因为如此,怎么通过单片机的设计来发挥出其最大的功效才能体现出本设计的难点所在。总的来说,本设计意义有如下4个方面:(a)用单片机这个完善的控制系统在交通灯应用的这个方面来实现与运用。(b)从人性话的角度来设计交通灯.(c)探究全新的交通灯管理系统。(d)通过红外线传感器来检测车流量,以达到自动调整红绿灯时间的功能。这次除了运用单片机,还运用了可编程并行输入输出接口
10、芯片当作中心件来完成交通灯控制器的设计,对交通十字路口路口进行管理.通过单片机来控制硬件电路,进行现实情况的模拟,实现红绿灯之间的转换,使之按次序点亮。通过LED数码管来显示倒计时的时间,红绿灯采用红、黄、绿3种发光二极管来显示,而特殊紧急车辆的通过通过实时中断来实现.用红外线作为检测车流量的方法,根据车流量的多少来智能的计算倒计时时间。1。2本设计在国内外的发展概况及存在的问题现在,交通灯遍布在各个道路上,疏通交通、管理交通秩序全靠它.然而它确起始于上个世纪.早在1850年,城市交叉口处持续增多,对交通带来极大的不便,这个问题开始引起了大家的留意。在1868年英国的伦敦,开始了首次对交叉路口
11、交通的控制,在那个时候,通过警察不断的更换其手上的旗子来指挥,这个控制的命令在当时叫作旗语。40年后,它被传到了美国的纽约,而且迅速的在传遍了全国。由于城市电气化的快速发展壮大,在1914年,俄亥俄州的克利夫兰市出现了世界上第一台通过电力来控制的交通信号灯。5年之后,纽约市开始将人工旗子控制的方式更换成电机控制的信号灯。在1923年的时候,GarrettMorgan申请了专利Morgan交通信号灯,通用电气公司买了这个专利。9年后,电机控制信号灯取代了最后一个人工控制的旗子。由1920年至1970年将50年的过程中,电机驱动的信号灯在交通信号控制系统领域中成了主导的地位.以便能够使相邻的交叉口
12、在一个交通信号系统当中,在设定的信号周期、相位差以及绿信比下正常运行,人们发明了“七条线缆”的连接方式,能够让相邻的信号灯在一个系统控制的模式下运行,尽管现在我们进入了新世纪,在某部分地方依然在使用这种根据七条线缆的连接方式。不仅如此,绝大多数在电机驱动的系统中所运用的术语,即使到了现在,微处理控制器依然在使用。在上个世纪60年代初,计算机被引进到交通信号控制系统中。在1963年,第一个计算机控制的交通信号控制系统在加拿大的多伦多市安装,到了20世纪70年代,微处理器被普遍使用,相应的硬件和软件也逐渐发展起来.如今,交通控制变得越来越智能化,相信我们未来的交通必然是更加人性化,更加方便.自从交
13、通灯出现以后,交通的管制变得更加有效,在疏导车辆、提升道路的流畅性、降低交通事故的发生率等方面有积极的影响。在1968年的时候,联合国出台了道路交通和道路标志信号协定,给每一种信号灯的作用给出了定义.绿灯代表通行的意思,看见绿灯的车辆能够通行,左转弯或者右转弯,要不然就是另外一个标志禁止某一种转向.左右转弯车辆的优先级比直行的车辆和在人行道通行的路人要低。红灯表示禁行的意思,看见红灯的车辆应该在交通路口的停车线后停车.黄灯表示警告的意思,看见黄灯的车辆要停一停,在停车线后的车辆应该停止,不应该向前行驶,如果车辆已经非常靠近停车线却不能安全停车的时候可以通过。本设计的单片机控制交通灯就是基于信号
14、灯.2存在的问题:现在,我国的交通灯一般安装交通路口,在显眼的地方通过红、黄、绿三种颜色的指示灯来指示。再增加一个倒数的数字显示器来指导车辆.在一般的正常的行车情况下,车辆分流可以发挥其作用,然而依据车辆行驶过程中出现的实际情况,发现有以下缺陷: a、两车道的车辆具有一样的倒计时时间,而在十字路口,正常是一个车道为主干道,车辆比副干道的要多,所以正常来说时间应该比它要长一点。B、不能智能检测车流量,红绿灯倒计时时间不会根据车流量的多少而改变,从而导致交通拥挤等情况。1.3本设计应解决的主要问题本设计将设计并制作一个智能交通灯控制系统。设计的内容是:A、熟练掌握单片机的用法与最小系统的搭建。B、
15、完成智能交通灯控制系统的硬件与软件设计。C、应具有智能判断车流量功能。D、应具有根据车流量智能设定红绿灯时间功能。E、在制作的单片机系统上实现所设计的功能,并完成演示。F、其他可扩展功能。目前,限制单片机智能交通灯设计的因素主要有以下两个:a、根据各道路路口车流量的大小自动调节通行时间,因为这个问题就关系到了通过运用什么技术来检测。正常情况下车流量检测器通过传感器加单片机,再加上一些其他器件来运行。考虑到整体情况,本人这次用红外线来检测车流量.b、考虑特殊车辆通行情况,设计紧急切换开关.例如消防车、救护车、警车等等,遇到这些紧急情况的话就要考虑到这些车辆的迅速通行,因为这都是性命攸关的时刻,所
16、以设计紧急切换开关是必须的.而这个紧急切换开关就关系到了程序的设计,这个问题的实现难度对于本人来讲也是一项挑战。2方案介绍这次设计的重点包含以下这几个方面:a、设计交通灯状态的管理方案;b、设计单片机最小系统和周边电路;c、设计交通灯系统和中断系统的电路结构;d、设计整个系统的电路分布和接线;e、使用C语言编写整个系统运行所需要的程序,重点是紧急中断系统的程序。2。1设计原理本设计所用的部件包括以下这几样:STC89C52RC单片机及其最小系统,除此之外,还有74HC245的驱动电路和外围的按键和用来看数字的数码管,通过这些来完成本人的这次毕业设计。在一定的时间内增加车辆安全通过的数量和质量.
17、而且在车流量密集的时候通过系统的设定来改变主次干道的通过车辆的时间,减少交通密集和堵塞现象。除此之外,针对紧急特殊情况,系统还具备了紧急处理按钮,通过这些按钮可以让一些如警车、救火车、救护车等快速通过,提高对特殊紧急状况的应变能力.通过单片机来掌控交通灯的运行,可以让单片机改变信号灯的轮流点亮,能满足一般情况下的车辆运行,当然,接入LED数码管就能够显示倒计时以提醒行使者,更具人性化。这次设计在这样基础之上,单片机控制系统对这种情况进行了全面的整改,按实际情况掌控并指挥交通的运作。系统总体框图如图2。1所示:键盘设置部分可以对模式进行选择,智能时间出现问题时还可以对时间进行人工调整,当系统开始
18、正常运行时,在调整交通灯的正常运作显示的时候,还将相对应的时间数字灌输到数码管上,通过数码管展现出来.与此同时,还应该时刻能够检查违规的车辆和具有突发的按键处理,实现应对紧急情况处理的目的。急停按钮以及违法检验立即调用中断。图2.1系统的总体框图根据这种情况,此次设计把单片机作为根本,以按键部分和红外接受模块部分作为输入,交通灯显示模块和数码管通过驱动电路进行输出。系统的总体框图如图2.1所示.2.2方案选择a、控制器方案作为交通智能控制的中心,控制器的选择十分重要.方案一:用FPGA进行控制。方案二:用PLC进行控制.方案三:51 系列单片机,这是一种较为实用的系统。经过各方面的综合因素考虑
19、.上面的3 种控制方案都能够漂亮的实现智能交通灯的运行,虽然PLC 以及FPGA进行操作的时候比较容易,但是它们的价格确实昂贵的.而本人的这次设计选的是方案三(51 系列单片机),因为它不但能够完成智能通交通灯的控制,而且它的性能也非常好,价格也很便宜,是个非常好的选择.所以本人选择了用的比较常用的89C52单片机当作控制器。b、供电方案为了能够让交通灯在正常的状态下运作,应该有一个稳定的电源.本人的这次设计想到了两种电源方案:方案一:使用相对稳定的外接电源。这个方案的好处是性能比较稳定安全,并且还有各种相对完美的电路;缺陷是每一个部分都使用独立的电源,令系统变得更加复杂,并且有几率改变电路电
20、平.方案二:通过单片机控制模块进行电源的供给.优势是系统比较简单,省资金;缺陷是输出的功率低,导致电路不稳定.综合考虑到了本设计的情况,本人采用了第一套方案。c、显示界面方案这次设计的运用到了倒计时和红绿灯等显示.本人想到了以下几个方案:方案一:全部通过数码管来显示。但是这样只能实现部分符号和数字,并不能实现全部功能.方案二:全部通过点阵式LED 显示。缺点是这种方案比较复杂,而且程序比较难;但是功能全面,基本上能实现所需的功能。方案三:通过数码管和点阵LED 一起显示.从实际状况等各方面综合因素考虑,本人选用方案三数码管与LED灯一起来显示时间与状态灯.这个方案不但实现了全部需求,实现起来又
21、比较简单。d、输入方案根据实际情况,本人想到了两种方案:方案一:使用8155扩展输入输出口以及键盘、显示等.这种方案的优势是:比较灵活,而且含有RAM和计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂.方案二:通过在输入输出口线上接上按钮开关。该方案优势是:编程比较容易,使用起来比较方便,而且成本更加低.缺点就是功能有限。从各方面因素考虑之后,本人使用方案二来实现输入。2.3分析问题我们假设设在一个十字路口上,分别有东西南北四个方向,在任意时候只可以让其中一个方向的车辆通过,另外一个方向禁止通过,经过一定时间后,将两个方向互换.说明:黑色代表灯亮,白色代表灯灭。一开始红绿灯的状态如
22、下图(a),然后到(b)、(c)、(d),最后按照这个顺序重复循环,交通状态如图2。2所示:下面是具体的每一个交通灯的状态显示:(a)(b)(c)(d)图2。2 交通状态(a)东西方向红灯亮,车辆禁止通行,南北方向绿灯亮,车辆可以通行,倒计时13秒(时间只是方便演示).(b)东西方向红灯亮,禁止通行,南北方向黄灯亮,车辆应该等待通行,倒计时5秒(时间只是方便演示).(c)南北方向红灯亮,静止通行,东西方向绿灯亮,车辆允许通行,倒计时24秒(时间只是方便演示)。(d)南北方向红灯亮,车辆禁止通行,东西方向黄灯亮,倒计时5秒(时间只是方便演示)。等待时间倒计时,紧接着回到状态(a)下面我们可以用图
23、表表示灯状态和行止状态的关系如下:表2.1交通状态及红绿灯状态状态a状态b状态c状态d东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个交通口都含有红绿灯以及数码管,无论是哪一个交通口,凡是看到红灯的应该禁止通行,看见转了绿灯就可以通过,如果黄灯亮了表示红绿灯状态即将发生变化。各方向的状态以及红绿灯状态如上表2.1。(说明:0表示灭,1表示亮)3硬件设计3。1系统硬件总电路构成:为了满足这次的交通灯设计所需要实现的功能,本人选用了STC89C52RC芯片和外围设备组成的最小系统
24、,代表红、绿、黄三种颜色的led交通灯总共14个,4个2位LED数码管和包括复位键、紧急控制按键等,红外线接受器,驱动电路模块,若干导线、电阻和电容.构成了此次设计的各个模块。其具体的硬件电路总图如图2.3所示.本系统把单片机最小系统作为关键核心,由各个硬件模块软件为控制主体组成一个处理、智能控制为一体的封闭操控系统。其中P0用来送显LED数码管的段选和位选,P1用来操控红绿灯的亮暗,12MHz晶振接在单片机芯片引脚的XTAL1和XTAL2上,REST引脚接连接复位电路,P3端口用来实现按钮的控制。3.2单片机系统及其历史单片机是一块集成在芯片上的微型计算机,它的内部包括有CPU、存储器,定时
25、/计数器以及中断系统,基本输入/输出(简称I/O)接口电路等.因为它的结构与指令功能都是按照工业控制要求设计的,所以又称作微控制器(简称MCU)。它在各方面都有良好的优势,例如结构简单,控制效果好,可靠性高、体积小、价格低,单片机技术作为计算机技术的一个非常重要的分支,广泛地应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个不同的领域。单片机诞生于上世纪70年代,经历了三个阶段:SCM、MCU、SOC。一开始的SCM单片机都是8位或4位的。其中英特尔公司的8051发展迅速.之后的MCS51系列的MCU单片机得到了广泛的应用。现在高端的32位SOC单片机性能已经达到了上世纪90年代中期专用
26、处理器的水平,且价格低廉。所以越来越多的制作业、工业离不开单片机。单片机的应用系统必须包含硬件部分和软件部分,只有这样才是完整的单片机应用系统。软件部分是指导硬件工作的指令集.没有软件部分,系统将无法正常工作.硬件部分则是交通灯系统的基础。没有硬件系统则没有所谓的交通灯系统。只有将两者结合,才能实现功能齐全的及交通灯系统.3。3单片机内部组成以及引脚介绍8052是MCS52系列单片机的典型芯片,不同型号一般程序存储器结构不同,其余内部结构都是完全相同,引脚也全部兼容.Atmel公司的89系列发展很快,应用也最为广泛,和8052引脚也完全相同,插座也相互兼容。所以用89C52代替8051时,只要
27、封装相同就可以直接代换.中央处理器(CPU):交通灯系统的控制核心是单片机,而单片机的控制核心是中央处理器。它与计算机的处理器一样分为4字长、8字长、16字长和32字长等处理器,它与单片机的处理数据能力、控制功能、运算速度等性能等性能有关,因此,字长是衡量CPU功能的主要指标.CPU由运算器和控制器组成。各一个8位的算术逻辑单元(简称ALU)、累加器(简称ACC)、暂存器B和程序状态寄存器(简称PSW)构成了CPU的运算器。所述控制器包括程序计数器(PC),指令寄存器(IR),指令译码器(ID)和一个控制电路等。内存数据存储器RAM:单片机89C52芯片内部数据存储器通常是指低128个单位,可
28、以读也可以写,是分配给用户使用的,在断电后数据会消失。高128个单位则是内部专用寄存器使用的存储单位,用户无法对其进行操作,所以芯片内部一共包含256个RAM单元.内部程序存储器ROM:89C52芯片的内部程序存储器使用的是只读存储器,这样有利于系统的可靠及稳定性且能节省成本.它有4KB掩摸ROM,只能读不能写程序将不会在断电后丢失.这样则不会改变程序的原始数据,通常称为只读程序存储器并行I/O端口:89C52芯片内部有4个8位并行I/O端口(P0口、P1口、P2口和P3口),通过I/O端口实现数据并行输入输出,是人机交互的接口.串行口: 89C52芯片内部串行实现单片机与外围设备之间的数据通
29、信是通过一个全双工异步串行口.该串行口既可以作为同步移位器使用,扩展外部I/O端口,又可以作为全双工异步通信收发器使用。定时/计数器:89C52芯片内部的2个16位定时/计数器可以控制单片机的内部时钟,使单片机按照一定的机器时钟进行状态控制。还可以进行外部定时或计数功能,是芯片的重要组成部分。中断系统:8052内部共有5个中断源,2个优先级别分别是高优先级和低优先级,在同级的情况下,外部中断0大于定时器T0中断大于外部中断1大于定时器中断T1大于串行口中断.时钟电路:89C51芯片单片机内部具有时钟电路,只需要在XTAL1和XTAL2引脚之间接上石英晶体和微调电容就能构成完整的时钟电路。此系统
30、选用的晶振频率为12MHz.相应的机器周期是1us.引脚介绍:VCC:STC89C52电源接入端,接+5V.GND:电源接地端。XTAL1和XTAL2:当需要使用外部时钟时,则连接外部的时钟电路;若要使用内部时钟则连接电容和晶振.本系统所使用的是内部时钟,所以在两引脚间连接了电容和12MHz的晶振。RESET:STC89C52芯片的重置引脚,当连续输入这个引脚2个机器周期以上的高电平即有效电平时,芯片将进行系统的复位操作,各个寄存器都恢复到最初的状态重新运行程序。EA:EA的E的英文是External ,A的英文是Access ,合在一起是外部程序存储器的意思。上面的横线则代表低电平有效.所以
31、这个引脚接高电平则使用内部程序存储器,低电平则使用外部的程序存储器。在此系统中,由于程序下载到内部程序存储器中,因此该引脚与+5V电源相连接。ALE:ALE是编程脉冲的输入端。它以晶振频率的1/6的固定频率输出,所以也可以作为时钟电路使用.同时这个引脚也是P0口低8位的地址锁存器,将低8位数据与地址相互隔离,用于系统扩展。PSEN:此为”Program Store Enable”的缩写,其意为程序储存启用.低电平有效,当引脚输入低电平时实现对外部ROM单元的读操作.在执行指令的取指阶段和从程序存储器中取数据时有效。P0口(P0。0P0.7):端口0可以作为通用I/O端口使用和地址/数据线使用.
32、共有8个位,P0。0表示位0,P0.1表示位1,依此类推。一个数据输出D锁存器、两个三态数据输入缓冲器、一个输出控制电路和一个数据输出的驱动电路共同构成了P0口的逻辑电路。如果引脚的电平为低时(即取用片外RAM扩展或数据存储器),P0就以双向口的工作方式提供地址总线(A0A7)及数据总线(D0D7)。在此设计中,P0口是作为通用I/O口将各个共阴极数码管相应的段选控制端并联在一起,用驱动器74HC245驱动。P1口(P1.0P1。7):是89C51单片机唯一的单功能端口,仅仅能用作通用的数据输入/输出口。P1口的逻辑电路与P2口相似,但其内部没有输出控制电路,而且具有上拉电阻。所以其只能作为通
33、用I/O端口使用.在此系统中,P1口是用来控制数码管的公共端,也称作为“位选端”。P2口(P2.0P2。7):端口2也具有2个功能:一个是具有内部提升电路的双向I/O端口,与P0口相似;另一功能也跟P0口相似,P0口的第2功能是作为地址/数据线使用,而P2口是单一的地址线使用。系统扩展时作为高8位的数据线使用。当没有在89C51单片机芯片外扩展ROM和RAM,且P2口高8位地址总线没有全部用到时,P2口的口线就可以全部作为通用I/O口线使用。P2口属于准双向口。在本系统中,P2口用于控制LED信号灯的亮灭。P3口(P3.0P3。7):作为通用I/O口,作为输出时,锁存器的状态端(Q)与输出引脚
34、的状态相同;作为输入端口时,为使引脚处于高阻输入状态,需向锁存器输入程序数据“1”。输入的数据在“读引脚”信号的作用下,进入内部数据总线.所以,P3口在作为通用I/O口时,也属于准双向口.在本系统,P3口作为第二功能使用,主要利用按键模块实现系统的中断跳转。P3端口使用第二功能时:其引脚分配如下:P3.0:RXD,串行通信数据的接收。P3。1:TXD,串行通信数据的发送P3.2:INT0,外部中断0申请.P3.3:INT1,外部中断1申请.P3。4:定时/计时计数器0的外部输入。P3.5:定时/计时计数器1的外部输入。P3。6:外部数据存储器的写入信号.P3.7:,外部数据存储器的读取信号。单
35、片机引脚图如图3。1所示:3。4单片机最小系统上面提到单片机的应用系统可以分为硬件部分和软件部分。软件部分指挥各个硬件执行烧录进单片机内的程序,如果没有程序那么它显然是无法工作的的。但如果它仅仅只是烧录了程序,它还是同样无法工作。原因是除了单片机和软件部分外,要使单片机能够正常工作,还需要时钟电路和复位电路。芯片加上时钟和复位电路,这样才是完整的最小单片机系统。在XTAL1引脚和XTAL2引脚间跨接一定频率的晶振构成时钟电路为单片机的正常工作提供基本时钟,机器周期则由晶振频率决定。复位电路则将系统恢复初始化。就如同此系统中,将系统恢复至东西通行,南北禁止的刚启动系统的状态。图3。1单片机电路引
36、脚图为了实现单片机的同步工作,系统必须有唯一的时钟信号,并在这个时钟信号下严格的按时序进行状态转换和工作。这个时钟信号可以外部时钟也可以芯片自带的时钟信号。这种时钟信号由时钟电路提供.在本系统中,在STC89C51单片机XTAL1和XTAL2之间接的是晶振频率为12MHz的晶振.机器周期是晶振频率的十二分频,所以机器周期为1us.适当编写程序,则可以定时1ms或者1s的时间。单片机与计算机相同,都有可能会出现故障死机或断电的情况,这时候则需要和计算机一样有一个复位键将系统重启,单片机的复位电路也是使CPU和系统中的其他功能部件都恢复到一个确定的初始状态。实现复位的条件就是RST引脚输入持续2次
37、机器周期的高电平。复位后PC=0000H,即是从新从程序存储器的第1个单元取指令进行译码。若持续高电平则会循环复位。按键复位和上电自动复位是复位电路经常采用的两种不同的方式.本系统所使用的是按键复位.按键在其余4个按键的中间,接芯片的RST引脚。按键瞬间RST引脚端电位与Vcc一致,随着电容C1的充电,充电电流的减少,导致RST引脚的高电位下降。只要RST引脚的高电位能够保证在2个机器周期以上,单片机就会进行复位操作,使系统复位.上电复位则要求接上电源之后能够自动实现系统的复位,原理相同,不再赘述。单片机最小系统原理图如图3。2所示:图3。2 单片机最小系统原理图3.5 LED显示发光二极管简
38、称为LED.它是一种半导体二极管。它的可见光是由空穴和电子结合时辐射而出的,因此它可以把电能转化为光能。主要由镓(Ga)与砷(As)、磷(P)、氮(N)、铟(In)等化合物制成这种半导体二极管。三极管具有2个PN结,而发光二极管是由一个PN结组成的,它具有单向导电性.正向压降低,反向压降则要相对高得多。它改变了白炽灯钨丝发光与节能灯三基色粉发光的原理,而采用电场发光。因此它也是非常有发展前景的绿色照明光源。它的功耗低,寿命长,辐射低的特点使其得到了广泛的应用。不仅如此,它的光效率高,亮度大,同时可以回收利用的优点也使它成为非常受瞩目的新一代光源.它的运用简单,信号稳定,所以选择发光二极管作为我
39、们系统非常关键的模拟交通灯灯源。本系统所选用的是普通单色发光二极管.它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长且价格低廉等优点,非常适合单片机交通灯系统的模拟交通灯.连接时也要注意LED灯的单相导电性,接反将会导致交通灯无法正常使用.模拟交通灯利用发光二极管来显示不同颜色的信号指示灯.LED灯如图3。3所示:图3.3 LED灯显示电路3.6数码管显示数码管是一种半导体发光器件,在单片机系统中运用广泛,可以显示单片机的工作状态。就如同本系统中的数码管用来显示红绿黄灯状态的持续时间和跳转时间,是人机对话非常重要的输出设备.其基本单元是发光二极管。数码管显示是分段实现的,
40、通过点亮不同段来显示不同的数字。其中按段数分为七段LED数码管和八段LED数码管,其中八段LED数码管比七段LED数码管多了一个LED灯在右下角作为数字的小数点。数码管按结构还可分为共阴极数码管和共阳极数码管.在此系统中所采用的则是八段共阳极数码管结构。八个LED灯构成的共阳极数码管是将所有LED灯的阳极连接在一起接在高电平上作为公共控制端.阴极作为“段”的控制端,当其中一“段”的控制端接低电平时,该段对应的发光二极管就会点亮。通过点亮不同的段从而显示出各种数字.本系统的共阳极数码管的公共控制端接到+5V高电平上。共阴数码管是指将LED灯的阴极接到一起形成公共阴极(COM)的数码管,与阳极不同
41、的是要接在低电平阴极上。而阳极作为段选端,要点亮某段时则需要输入高电平。LED数码管的显示方式可以分为静、动态显示两种。虽然静态显示相对于动态显示用较小的电流就能使数码管的亮度加强、CPU运算时间少,编程也更简便,节省存储空间且显示便于检测和控制。但其占用的I/O口太多,只适合少位数码管使用.不适合此系统,所以选用动态显示,下面重点介绍数码管的动态显示。此系统用动态显示方式点亮4个2位数码管,各个共阳极数码管相应的段选控制端并联在一起由P0口控制,并用驱动器驱动。各位数码管的公共端,也称为“位选端由单片机的P1口控制.数码管显示如图3。4所示:图3。4数码管显示3。7信号显示驱动电路74HC2
42、45译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7).74HC245特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高.利用这种复合使能特性,仅需4片74HC245芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC245亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态.74HC245作用原理于高性能的
43、存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。HC138 按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24 线译码器不需外接门;扩展成32 线译码器,只需要接一个外接倒相器.在解调器应用中,赋能输入端可用作数据输入端。74HC245电路图如图3。5所示:图3.
44、5 74HC245电路图3。8键盘输入电路单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下.将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平.当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所
45、要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般10200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。硬件去抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理.所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10200毫秒以避开抖动(经典值为20毫秒
46、),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10200 毫秒,视为干扰信号.当读出的值是0时则表示有按键按下,调用相应的处理程序。键盘控制电路图如图3。6所示:图3。6键盘控制电路图3。9红外接收原理红外线接收头的运作原理:它里面的有一个接收管,作用是把红外线发射装置所发射出去的光信号转变成较弱的电信号,这个电信号再通过IC 里面的放大器处理,把信号增大,紧接着经过一系列的自动增益控制、带通滤波、解调变、波形整形后转化为遥控器发射出来的原始编码,再经过接收头的信号输出脚输入到电器上的编码识别电路。红外接收图如图3.7所示:图3.8红外接收电路图4软件设计跟C语
47、言比起来,汇编语言所编写的代码生成的速率很快,但是程序看起来会十分复杂,很难读懂,然后用C 语言所编写的代码在速率方面跟汇编语言差不多,但是却比汇编容易更容易读懂,可移植性也很强,不仅如此,在编写高时效性的代码的时候,C 语言还能够嵌入汇编语言来完成。在开发周期的方面,如果一般中大型的软件,编写都是用C 语言来实现,因为它的开发周期比汇编语言的要少许多。综上所述,本人在这次的毕业设计当中选了C语言作为程序编程语言。而这次的毕业设计的程序用Keil Vision 2.0这款软件进行编写。因为这个编程软件不但支持各种公司的芯片,还具有编译、编辑以及仿真等功能,不仅是C语言,它还支持PLM、汇编这两
48、种语言的编写和设计,界面非常简洁,让人容易上手.在程序的调试和软件的仿真这两个方面都很优秀。所以这次的编程的软件本人选的是Keil Vision.系统总的流程图如图4.1所示:设置字型码和字位码,完成显示初始化外部中断定义状态数组宏定义返回while(1)函数进入while(1)循环I/O初始化定义字位码函数定义共阴极字型编码表调用显示控制函数void display()进入主函数main()定义函数变量并初始化定时器0初始化调用Buzzer()函数图4。1系统总的流程图4.1定时器的设置定时器的工作方式可以分为4种,工作方式0是13位的定时计数器; 16位的定时计数器可以用工作方式1来实现;工作方式2是8位的定时计数器;工作方式3情
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100