毕业设计基于STC89C52单片机的交通灯设计

上传人:仙*** 文档编号:31557701 上传时间:2021-10-12 格式:DOC 页数:58 大小:2.99MB
返回 下载 相关 举报
毕业设计基于STC89C52单片机的交通灯设计_第1页
第1页 / 共58页
毕业设计基于STC89C52单片机的交通灯设计_第2页
第2页 / 共58页
毕业设计基于STC89C52单片机的交通灯设计_第3页
第3页 / 共58页
点击查看更多>>
资源描述
专业课程设计基于51单片机的交通灯设计 组员: 蔡余敏 、覃珍 、李海浪、于小艳 (按字母顺序) 学院: 电气工程学院 班级: 10自动化3班 指导教师: 王彩霞摘 要交通信号灯是城市交通安全、有序、快速运行的重要保障。本文提出了一种基于单片机的交通信号灯控制系统的设计方案。该系统模拟现实中十字路口的通行指示,倒计时和紧急车辆强行通过等功能。采用STC89C52芯片为中心器件来设计交通灯控制电路,结合七段共阴极数码管显示时间的模块,交通灯显示模块,晶振电路,复位电路以及按键电路等模块组成。通过软件仿真与硬件调试,实现红、黄、绿灯燃亮时间以及双位数码管显示倒计时,三种颜色灯交替点亮以及紧急情况下的中断处理功能。本系统性价比高,实用性强,操作简单,功能全面,有广泛的应用前景。关键词:交通信号灯;STC89C52单片机;紧急通行;中断处理 AbstractThe traffic lights are an important guarantee of city traffic safety, order and rapid running. This paper presents a design scheme of traffic signal lamps control system, which is based on MCU. The system simulates the functions of the traffic indication, counting down and emergency vehicles passing at real crossroads. STC89C52 chip device is used as the center device to design the traffic lights control circuit, combined with common cathode seven segments digital tube display time module, traffic lights display module, crystals circuit, reset circuit and key circuit modules. By software simulation and hardware debugging, the functions have been achieved, which include red, yellow, and green lights brightening, on-off digital tube displaying time countdown, as well as 3 kinds of color lamps lightening alternately and interrupt processing function of emergencies. This system is cost-effective, strong practicability, simple operation, fully functional. It has a broad application prospect.Key words: traffic signal lamp; MCU STC89C52; emergency access; interrupt processing目 录摘要- 1 -(一)总体设计思路- 4 -1.1设计背景- 4 -1.2 设计目的及思路- 6 -1.2.1 设计目的- 6 -1.2.2 设计思路- 6 -1.3 交通灯显示时序及状态转换的理论分析- 7 -(二)方案比较、设计与论证- 7 -2.1 总体设计方案- 7 -2.2 控制模块选择方案- 8 -2.3 电源模块方案- 9 -2.4显示界面方案- 9 -2.4.1 倒计时显示界面方案- 9 -2.4.2 状态灯显示- 9 -(三)硬件设计- 10 -3.1系统总体硬件方案论证- 10 -3.2 STC89C52RC单片机简介- 11 -3.3单片机最小系统- 15 -3.3.1 时钟电路- 15 -3.3.2.复位电路- 16 -3.4 显示电路- 17 -3.5紧急通车电路模块- 18 -3.6 总电路图- 19 -3.7各元器件选择及其功能介绍- 21 -(四)软件设计- 22 -4.1 程序流程图- 22 -4.1.1程序总流程图- 22 -4.2具体程序- 23 -(五)结果分析- 35 -5.1软件仿真与结果分析- 35 -5.1.1.Proteus的仿真结果- 35 -5.1.2各状态仿真结果- 36 -5.1.3.红绿灯状态转换过程:- 39 -5.2硬件调试与结果分析- 41 -(六)总结- 43 -(七)参考文献- 44 -(八)附录- 46 -(一)总体设计思路1.1设计背景自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。1.2 设计目的及思路1.2.1 设计目的了解交通灯管理的基本工作原理,熟练掌握STC89C52的工作原理,熟悉STC89C52单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式,掌握多位LED显示问题的解决。1.2.2 设计思路(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。(2)确定系统交通控制的总体设计,包括,十字路口具体的通行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示。(3)进行显示电路,灯状态电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。(4)进行软件系统的设计,对于本系统,本人采用C语言编写程序,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。1.3 交通灯显示时序及状态转换的理论分析图1所示为红绿灯转换的状态图。S2S1S4S3图1 红绿灯状态转换图东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换。(二)方案比较、设计与论证2.1 总体设计方案 根据十字路口交通灯的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括LED灯和数码管;第三是电源模块,给各模块提供电源,让各模块工作。其系统设计结构如图:图2系统设计结构图2.2 控制模块选择方案方案一:由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点。 方案二:采用单片机STC89C52作为控制器。单片机运算能力强,软件编程灵活,自由度大。在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,使用时容易掌握;采用STC89C52单片机稳定可靠、应用广泛、通用性强。方案比较:采用方案一来实现十字路口交通灯控制系统非常方便,电路结构简单,控制单一,但整个系统性能不是很高,倒计时不是非常精确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现设计要求,容易掌握,利于编程,易控制,I/O接口很多,易于扩展外围电路,价格便宜,故选择方案二。23 电源模块方案为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源,使用电池盒供电。该方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我选择第二种方案。24显示界面方案2.4.1 倒计时显示界面方案该系统要求完成倒计时功能。只需显示数字,基于上述原因,我考虑了二种方案:方案一:采用全数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。综上所述,我选择第一种方案,四个路口采用两个二位共阴极数码管。2.4.2 状态灯显示该系统要求完成状态灯显示的功能。求于要求简单,我们把各个路口的红灯、绿灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需三个状态灯,一个共有的绿灯,一个共有的红灯,一个共有的黄灯。如下图3所示。北 B A A B 图3状态灯显示 (三)硬件设计3.1系统总体硬件方案论证本设计以单片机为控制中心,采用模块化设计,共分以下几个功能模块:单片机控制系统、状态显示模块、倒计时模块、电源模块。经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机STC89C52作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;以电池组供电作为系统电源部分,可对各个模块供电且便于演示。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由按键电路、复位电路、晶振电路等组成。具体硬件框图,如下图所示。按键电路键盘LED数码管显示 LED指示灯 复位电路 晶振电路 单片机 电源电路 图4 硬件设计框图3.2 STC89C52RC单片机简介STC89C52RC是STC89系列单片机中应用较为广泛的一种型号,芯片内部有8KB的闪速存储器Flash ROM。内部的8KB存储器用于存放可编程控制器监控程序。 STC89C52RC单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。 图5 89C52单片机引脚图89C52单片机引脚功能介绍: 主电源及时钟引脚 此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。 (1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。 (2)Vss(20脚)接地。 (3)XTAL1(18脚)在单片机内部,它是一个反向放大器的输入端,该放大 器构成了片内的振荡器,可提供单片机的时钟控制信号。 (4)XTAL2(19脚)在单片机内部,接至上述振荡器的反向输出端。控制引脚 此类引脚包括RESET(即RSR/VPD)、ALE、PSEN、EA,可以提供控制信号,有些具有复用功能。 (1)RSR/ VPD(9脚):复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(REST)。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。 掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压范围内(50.5V)时,VPD就向内部RAM提供备用电源。 (2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个LSTTL负载。 (3)PSEN(29脚):程序存储器允许输出控制端。此输出为单片内访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。 (4)EA(31脚):EA功能为内外程序存储器选择控制端。当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器内的程序。 输入/输出引脚 此类引脚包括P0口、P1口、P2口和P3口。 (1)P0(P0.0P0.7)是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。 (2)P1(P1.0P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有内部上拉电阻,可带4个LSTTL负载。 (3)P2(P2.0P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。 (4)P3(P3.0P3.7)是一个8位准双向I/O口,除此之外每位还具有第二功能。P3口功能表:表1 P3口功能表P3口各个位的第二功能P3口的位第二功能说明P3.0RXD串行数据接收口P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号STC89C52内部结构图:图6 STC89C52内部结构图 3.3单片机最小系统3.3.1 时钟电路图7 时钟电路图 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为11MHz,电容应尽可能的选择陶瓷电容,电容值约为30F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.3.2.复位电路 在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。复位电路如下图所示: 图8 复位电路图3.4 显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,点亮显示器的方法有静态和动态两种。我们的用的是动态,所谓动态显示,就是轮流点亮各位显示器,该方法只需一个8位段输出口和一个8位扫描输出,后者的作用是依次接通各位LED。动态显示需要较大驱动电流,故在输出口尚需接加驱动器。显示器的亮度既同驱动电流有关,也同点亮时间与间隔时间的比例有关。调整电流和时间参数,可实现亮度较高且较稳定的显示。显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。本系统采用的是两位共阴极数码管。DP a b c d e f g DP a b c d e f g c DP e d g a b D1 D2 f 1 2 3 4 5 10 9 8 7 6 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 图9 两位共阴极数码管引脚图3.5紧急通车电路模块 为了实现此功能,利用单片机中断达到目的。利用一个手动按钮开关接至单片机外部中断0,同时在软件设计时将其设定为最高优先级,当其按下时,四方全为红灯,当其计时完了之后,回到原来的位置进行执行。再利用一个手动按钮接至单片机外部中断1当其按下时,如果是东西道是红灯,而南北道是绿灯,则将其置为东西是绿灯,南北是红灯;如果是东西道是绿灯,而南北道是红灯,则将其置为东西是红灯,南北是绿灯。两种情况都是执行完后,回到断点处继续执行。3.6 总电路图 图10 交通灯总原理图(Multisim软件图)总体接线说明:1. 交通信号灯指示电路部分,STC89C52芯片的P1.0P1.5(引脚16)接6个470的限流电阻,然后在依次分别接到南北方向的绿(上左下右)、黄(上中下中)、红(上右下左),东西方向的绿(左下右上)、黄(左中右中)、红(左上右下)色的LED指示灯(共阳级接法); 2. STC89C52芯片的RST(引脚9)接复位电路; 3. 按键电路部分,STC89C52芯片的P3.0(RXD)、P3.1(TXD)、P3.2()即引脚10、11、12分别接3个微动开关; 4. STC89C52芯片的XTAL2、XTAL1、VSS,即引脚18、19、20接晶振电路; 5. STC89C52芯片的P2.0P2.3(引脚2124)接4个1K的电阻,然后分别接到4个三极管的基极b,集电极c均接地,4个发射极e分别依次接到东西方向数码显示器D1(引脚8)、D2(引脚7)和南北方向的数码显示器的D1(引脚8)、D2(引脚7); 6. STC89C52芯片的(引脚31)和复位电路的VCC相连; 7. 倒计时显示部分,STC89C52芯片的P0.0P0.6(引脚3933)接7个470的电阻,然后均接到VCC电源端,同时STC89C52芯片的P0.0P0.6(引脚3933)分别依次直接接到所有数码显示器的a、b、c、d、e、f、g(即引脚10、9、1、4、3、6、5),DP(引脚2)置空; 8. STC89C52芯片的VCC (引脚40)接电源正极,所有接地。3.7各元器件选择及其功能介绍表2:元器件列表 序号 元件名称 型号 数量/个 用途 1 单片机 89C52 1 控制核心2晶振 11MHZ 1 晶振电路 3 电容 30pF 2 晶振电路 4 电解电容 10uF 1 复位电路 5 电阻 10K 1 复位电路 6 发光二极管 LED 12 红、黄、绿灯 7 USB数据线 1 接入电源 8 电阻 470 6 LED 9 电阻 470 7 数码管电路 10 电阻 1K 4数码管驱动 11数码管 GC-3461BS 2 显示电路 12 按键 4 按键电路 13 三极管PNP 8550 4 数码管驱动电路 14 电池盒 5#干电池 3 提供电源(四)软件设计开始 初始化初值函数 Init () 键盘扫描Keys can() 显示程序 Display () Y TR00, TR10 P0table 9, P20 Key! =0 Key=1 Y N Y Key=2 南北方向 P10xf3 N Y Key!=0 键盘扫描Keys can() t0400 Y P10xde Y Y P10xdd N N 400t0460 TR01 TR11 460t09200 N Y Y P10xeb t1860 P10xf3 N 东西方向 P10xde 4.1 程序流程图4.1.1程序总流程图图11 交通灯程序总流程图本设计采用C语言进行软件编程。文件中包含了初始化函数init()、显示函数display()、键盘扫描Keys can()、中断处理timer0() interrupt 1和延时delay()等子程序块;主函数通过直接或间接的调用各个子程序块,使整个交通信号灯控制系统实现红、黄、绿灯燃亮时间以及双位数码管显示倒计时,三种颜色灯交替点亮以及紧急情况下的中断处理功能。各个子程序块见附录。4.2具体程序#include#define uint unsigned int#define uchar unsigned char#define ON 0#define OFF 1sbit g1=P10;sbit y1=P11;sbit l1=P12;sbit g2=P13;sbit y2=P14;sbit l2=P15;uchar num,num1,key,a,b,c,d;uint t0,t1;/*t0,t1,要大于255!*/uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0;/*uchar code table=0xf9,0xdb,0xa4,0xb0,0x80,0x90,0x88,0x83, 0x99,0x92,0x82,0xf8,0xc6,0xa1,0x86,0x8e,0xff;*/void init(); /初值函数void display(uchar a,uchar b,uchar c,uchar d);/显示程序void Keyscan();void delay (uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main()init();while(1)display(a,b,c,d);Keyscan();if(key) /如果有按键按下,TR0=0;TR1=0; /不计时P0=table9; /显示99P2=0; /全部显示if(key=1) /东西方向P1=0xde; /LED状态if(key=2) /南北方向P1=0xf3;/LED状态while(key)Keyscan(); /等待按下正常if(t0400&t0460&t0860) /南北为黄灯P1=0xeb;/11 10 1 011elseP1=0xf3; /11 11 0 011TR0=1;TR1=1;void Keyscan()uchar temp;temp=P3;while(temp!=0xff)delay(5);/延时,消抖temp=P3;/再次确认是否有健按下temp=temp&0xff;while(temp!=0xff)temp=P3;switch(temp)case 0xfe:key=1; /break;case 0xfd:key=2;break;case 0xfb:key=0;break;while(temp!=0xff)/松手检测temp=P3;temp=temp&0xff; void init() /初值函数g1=ON;y1=OFF;l1=OFF;g2=OFF;y2=OFF;l2=ON;num=20;num1=23;a=num/10;b=num%10;c=num1/10;d=num1%10;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;void timer0() interrupt 1 /定时器0中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0+;if(t0%20=0) /每一秒进入 一次if(t0400&t0460&t0=920) /红灯时间num-;if(num=0)/红灯结束,开绿灯num=20;g1=ON;y1=OFF;l1=OFF;if(t0=920)t0=0;a=num/10;b=num%10;void timer1() interrupt 3 /定时器1中断TH1=(65536-50000)/256;TL1=(65536-50000)%256;t1+;if(t1%20=0)if(t1460&t1860&t1=920)num1-;if(num1=0)num1=23;g2=OFF;y2=OFF;l2=ON;if(t1=920)t1=0;c=num1/10;d=num1%10;/*void display(uchar a,uchar b,uchar c,uchar d)/显示程序 P0=tablea;P2=1;delay(1);P2=255;P0=tableb;P2=2;delay(1);P2=255;P0=tablec;P2=4;delay(1);P2=255;P0=tabled;P2=8;delay(1);P2=255;*/void display(uchar a,uchar b,uchar c,uchar d)/显示程序 P0=tablea;P2=0xfe;delay(1);P2=0xff;P0=tableb;P2=0xfd;delay(1);P2=0xff;P0=tablec;P2=0xfb;delay(1);P2=0xff;P0=tabled;P2=0xf7;delay(1);P2=0xff; (五)结果分析 5.1软件仿真与结果分析5.1.1.Proteus的仿真结果 图12 Proteus的仿真结果5.1.2各状态仿真结果(1) 复位状态 轻按【复位】按钮后,东西方向通行(绿灯亮),数码管显示从20秒开始倒计时;同时,南北方向禁行(红灯亮),数码管显示从23秒开始倒计时,如下图13所示。 图13 复位状态显示结果(2)正常通行状态 轻按【正常通行】按钮后,交通信号灯正常工作,即按交通信号灯的状态转换规律进行变换。若中间发生过紧急情况,则按紧急处理之前继续运行,如下图14所示。 图14 正常通行状态显示结果(3)南北通行状态 轻按【南北通行】按钮后,表示发生A类紧急情况需进行应急处理,交通信号灯东西方向强制禁行(亮红灯),南北方向强制通行(绿灯亮)疏通车流,四个方向倒计时一直显示99秒,如下图15。 图15 南北通行状态显示结果(4)东西通行状态 轻按【东西通行】按钮后,表示发生B类紧急情况需进行应急处理,交通信号灯南北方向强制禁行(亮红灯),东西方向强制通行(绿灯亮)疏通车流,四个方向倒计时一直显示99秒,如下图16。 图16 南北通行状态显示结果5.1.3.红绿灯状态转换过程: S1: 东西通行,南北禁行 S2: 东西等待,南北禁行 S4: 东西禁行,南北等待 S3: 东西禁行,南北通行 图17 红绿灯状态转换图 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间、指示灯燃亮的方案如下表。表3 十字路口指示灯燃亮方案状态S1S2S3S4时间20s3s20s3s南北道红灯亮红灯亮绿灯亮黄灯亮东西道绿灯亮黄灯亮红灯亮红灯亮表3说明:1 当南北方向为红灯,此道车辆禁止通行,南北道行人可通过;东西道为绿灯,此道车辆通过,行人禁止通行,时间为20秒。 2 东西方向黄灯点亮3秒,警示车辆和行人红、绿灯的状态即将切换。 3 当南北方向为绿灯,此道车辆通行;东西方向为红灯,东西道车辆禁止通过,行人通行,时间为20秒。 4 这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 5 此表可根据车流量动态设定红绿灯初始值。6 共四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行如图1所示。7 程序就是在上述四种状态下循环转化的。一个周期四个状态,在正常模式下共花费46秒。5.2硬件调试与结果分析 1.复位 2.正常通行 3.紧急东西通行 4.紧急南北通行 图18 硬件调试结果 1. 轻按【复位】按钮后,东西方向通行(绿灯亮),数码管显示从20秒开始倒计时;同时,南北方向禁行(红灯亮),数码管显示从23秒开始倒计时。 2. 轻按【正常通行】按钮后,交通信号灯正常工作,即按交通信号灯的状态转换规律进行变换。若中间发生过紧急情况,则按紧急处理之前继续运行。 3. 轻按【南北通行】按钮后,表示发生A类紧急情况需进行应急处理,交通信号灯东西方向强制禁行(亮红灯),南北方向强制通行(绿灯亮)疏通车流,四个方向倒计时一直显示99秒。 4. 轻按【东西通行】按钮后,表示发生B类紧急情况需进行应急处理,交通信号灯南北方向强制禁行(亮红灯),东西方向强制通行(绿灯亮)疏通车流,四个方向倒计时一直显示99秒。 5.红绿灯转换的过渡期间,黄灯亮3秒。 6.经过硬件调试可知,硬件的设计能够达到本次设计的要求;但是,没有掉电保护,即掉电后,没有记忆功能,再次通电后将按复位后的情况运行。 (六)总结通过这次交通灯的课程设计,使我们得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我们在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良好的基础。综合课程设计让我们把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我们通过查阅相关书籍、资料以及和周围同学交流得到解决。还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。通过合作,我们的合作意识得到加强。合作能力得到提高。上大学后,很多同学都没有过深入的交流,在设计的过程中,我们用了分工与合作的方式,每个人负责一定的部分,同时在一定的阶段共同讨论,以解决分工中个人不能解决的问题,在交流中大家积极发言,和提出意见,同时我们还向别的同学请教。在此过程中,每个人都想自己的方案得到实现,积极向同学说明了自己的想法。通过比较选出最好的方案,这个过程中,我们都提高了自己的表达能力。 (七)参考文献1李海滨.片春媛.许瑞雪编.单片机技术课程设计与项目实例,中国电力出版社,20092谭浩强主编.C程序设计.第三版,清华大学出版社,20053李正军主编.计算机控制系统.机械工业出版社,20094曹天汉主编.单片机原理与接口技术,电子工业出版社,20095何立民主编.单片机高等教程.北京航空航天大学出版社,2000 6 何立民主编.单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社,20017 李全利主编.单片机应用及接口技术,高等教育出版社出版社,20098 凌志浩主编.智能仪表原理与设计技术,华东理工大学出版社出版社,20119 Multisim软件,10.0.1版本致谢这篇论文实在我们的指导老师王彩霞老师的亲切关怀和悉心指导下完成的,衷心感谢我们的指导教师王老师。王老师对于相关领域技术发展方向的把握,严谨求实的治学态度,使我受益匪浅。值此论文完成之际,谨向王老师表示衷心的感谢!在此也要感谢我们各位队友和同学,正是大家的互相帮助和支持,我们才能克服一个又一个的困难和疑惑,直至本文的顺利完成。再次对帮助过我们的老师和朋友表示感谢! (八)附录附图1.延时程序流程图 Y N N Y 图19延时delay()附图2.延时键盘扫描程序流程图 Temp! =0xff Temptemp&0xff Temp! =0 Temp=0xfe Temp=0xfd Temp=0xfb Key=1 Key=2 Key=0 Temp! =0xff N Y Y Y Y N N N Temptemp&0xff Y N Temp! =0xff Y N 延时delay(5) N Y 图20 键盘扫描Keys can()附图3. 初始化程序流程图NO 0 OFF 1 建表table= 0x3f,0x06,0x5b,0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0 用于显示0,1,2,A,b,E,F,灭。 G1ON;Y1OFF;R1OFF;G2OFF;Y2OFF;R2ON; Num20;num123; anum/10; bnum%10;cnum1/10; d num1%10;TMOD0x11;TH0 (65536-50000)/256; TL0 (65536-50000) %256; TH1 (65536-50000)/256; TL1 (65536-50000) %256; EA1;ET01; ET11; TR01;TR11; 图21 初始化初值函数init()附图4. 定时器0中断程序流程图 TH0 (65536-50000)/256; TL0 (65536-50000) %256; t0t0+1 t0%20=0 t0400 NumNum-1 Y Y Num=0 Num3 G1OFF Y1ON R1OFF N N 400t0460 N NumNum-1 Y Num=0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!