十字路口交通灯控制系统的设计与实现 毕业设计.doc

上传人:仙人指路1688 文档编号:3936503 上传时间:2023-03-28 格式:DOC 页数:39 大小:1.72MB
返回 下载 相关 举报
十字路口交通灯控制系统的设计与实现 毕业设计.doc_第1页
第1页 / 共39页
十字路口交通灯控制系统的设计与实现 毕业设计.doc_第2页
第2页 / 共39页
十字路口交通灯控制系统的设计与实现 毕业设计.doc_第3页
第3页 / 共39页
十字路口交通灯控制系统的设计与实现 毕业设计.doc_第4页
第4页 / 共39页
十字路口交通灯控制系统的设计与实现 毕业设计.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《十字路口交通灯控制系统的设计与实现 毕业设计.doc》由会员分享,可在线阅读,更多相关《十字路口交通灯控制系统的设计与实现 毕业设计.doc(39页珍藏版)》请在三一办公上搜索。

1、广州大学华软软件学院本科毕业论文论文题目 十字路口交通灯控制系统的设计与实现 专 业 电子信息工程 班 级 11电子信息工程(嵌入式系统开发) 姓 名 黄开平 学 号 1140910118 指导教师 李芳 广州大学华软软件学院电子系2015年 4月摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。靠的就是交通信号灯的自动指挥系统。本系统采用STC89C51

2、单片机以及单片机最小系统和74HC245电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单。关键词 交通灯;单片机;计时器;STC89C51ABSTRACT In recent years, with the rapid development of science and technology,SCM applications are deepening,drive traditional control test technology is increasingly developin

3、g at the same time. In real-time detection and automatic control of microcomputer application system, the single chip microcomputer is often used as a core component. Knowing only single chip microcomputer aspects knowledge is not enough, combination of hardware, software, and hardware structure is

4、necessary. Crossroads transports, bustling, bike lanes, pedestrian footbridge humanitarian, in an orderly way. These all rely on automatic command system of traffic lights. This system adopts the STC89C51 microcontroller and the single chip microcomputer minimum system and 74 hc245 keys and digital

5、tube display of circuit and peripheral components, desiging a traffic light based on single chip microcomputer. By two common cathode digital tube to display, and through the button to set the timing, this system is practical, simple operation.KEY WOEDS Traffic;light;SCM;Timing;STC89C51目 录1前 言11.1研究

6、的背景和意义11.2本文研究的目的11.3本文设计的主要内容22 系统方案设计概述32.1单片机交通灯控制系统通行方案设计32.2单片机交通控制系统的功能要求42.3单片机交通控制系统的基本构成及原理53 系统硬件电路的设计73.1系统硬件总电路构成73.2单片机系统简介73.2.1单片机引脚介绍83.2.2单片机时钟系统103.3信号灯与倒计时显示系统113.3.1红黄绿信号灯显示系统113.3.2倒计时显示系统113.4倒计时信号显示驱动电路123.5按键控制系统134 系统软件程序的设计154.1系统软件程序的设计总述154.2程序主体设计流程154.3 交通灯延时程序164.3交通灯显

7、示程序174.4按键子程序模块设计194.4.1特殊情况通车按键功能194.4.2通行时间设置按键功能205 系统的测试及分析215.1系统的测试和运行215.2本设计的测试结果分析246 总结256.1设计的自我总结256.2设计的主要价值256.3 展望未来26参考文献27附录A(设计实物图)28附录B 按键子程序(C语言)29致 谢331前 言1.1研究的背景和意义交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题自人类进入21世纪以来,道路交通一直是困扰城市发展、制约城市经济建设的重要因素。而使用合理的交通灯可以合理的规划城市交通,从而为城市的

8、快速运输和发展提供最优化的交通解决方案。随着电子技术的飞速发展,现代的电子技术与机械技术相结合,产生了一大批先进的电子类产品。由于单片机的特殊结构形式,在某些应用领域中,它承担了一些通用的微型计算机无法完成的工作,它是一种高性能,低价格的处理器,集成度高,体积小,可靠性高,控制功能强,电压低。由于单片机具有这些特点,人类把它应用到了交通灯的控制系统中。当前,大量的信号灯电路正向着数字化、小功率、多样化、方便人、车、路三者关系的协调,多值化方向发展随着社会经济的发展,城市交通问题越来越引起人们的关注。随着交通量的快速增长,人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。车辆的

9、不断增多,表明车辆对道路容量的要求仍然很高,这种状况在短期内还不可能改变。因此,研究基于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展。从长远来看该研究具有巨大的现实意义。1.2本文研究的目的随着人们日常生活水平的提高,机动车辆不断增加,简单的交通控制系统已不能满足当前交通道路管理的需要。为了最大程度的满足交通管理的需要,为车辆提供准确的通行时间,本课题应结合先进的研究技术设计出功能完善的交通灯控制系统。此外,还需要充分考虑系统的可操作性,使控制系统具备与突发状况相适应的可调节能力。可以肯定的说,城市

10、道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。对于减轻交通拥塞及其副作用特别是对于大的交通网络而言,一种真正的交通响应控制策略显得尤为重要。智能化和集成化是城市交通信号控制系统的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口。通过单片机设计十字路口交通灯控制系统的实现缓解交通压力、规范交通秩序、提高道路运输能力、减少交通事故发生1.3本文设计的主要内容本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,按键可以控制深夜模式、禁行、东西通行、南北通行、时间

11、加、时间减、切换、确定功能。共四个二位阴极数码管,利用芯片74hc245芯片驱动,东南西北各一个显示时间,共12个发光二极管,指示通行状态。选用STC89C51单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,现本设计要求的具体功能。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键组成。2 系统方案设计概述2.1单片机交通灯控制系统通行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态

12、如下图所示。交通状态从状态1开始变换,直至状态4然后循环至状1,周而复始(黑色表示亮,白色表示灭)。即如图(图2-1)所示:直至状态4然后循环至状态1,通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:图2-1 交通状态(默认左东右西、上南下北)东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时30秒。此状态下,东西向禁止通行,南北向允许通行。

13、南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。图表表示灯状态和行止状态的关系如下:表2-1交通状态及红绿灯状态状态1状态2状态3状态4东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯0011东西黄灯0100东西绿灯1000南北红灯1100南北绿灯0010南北黄灯0001东西南北四个路口均有红绿黄3灯和数码显示管4个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表2-1所示。说明:0表示灭,1表示亮。2.2单片机交通控制系统的功能要求 硬件部分本设计能模拟基

14、本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示。按键可以控制禁行、深夜模式、复位、东西通行、南北通行、时间加、时间减、切换等功能。共四个二位阴极数码管,东南西北各一个显示时间,四个数码管的阴极都接到STC89C51的P1口,阳极接到74HC245芯片上,通过P0口控制74HC245芯片,起到驱动放大作用。共12个发光二极管,四个路口每个路口各有一个红(禁行)、黄(警告)发光二极管,四个路口的二极管接到P2口,按键接P3口。软件部分在交通灯控制系统的设计中,软件的全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,红绿

15、灯时间调整程序。初始化等待按键事件处理显示程序处理开始宏定义按键事件处理图2-2 软件总流程图2.3单片机交通控制系统的基本构成及原理交通信号灯控制方式很多。本系统采用STC89C51单片机以及单片机最小系统和74HC245驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时, 使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。本单片机控制交通灯系统,可用单片机

16、直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,单片机对此进行具体处理,及时调整控制指挥。如图(图2-3)所示:STC89C51单片机最小系统控制模块红黄绿信号灯数码管显示倒计时复位电路74HC245驱动显示模块按键调节紧急模式夜间模式时间加减图2-3 系统的总体框图设计系统模块原理:(1)单片机控制模块:单片机将计算机的基本部件微型化并集成到一块芯片上,具有优异的性能价格比,控制功能强,这将使各模块功能的实现变得简单方便。本系统中,共四个二位阴极数码管,东南西北各一个显示时间,四个数码管的阴极都接到ST

17、C89C51的P1口,阳极接到74HC245芯片上,通过P0口控制74HC245芯片,起到驱动放大作用。共12个发光二极管,四个路口每个路口各有一个红(禁行)、黄(警告)发光二极管,四个路口的二极管接到P2口,按键接P3口。(2)信号灯显示模块:利用发光二极管代替交通信号灯,通过单片机控制使其按要求点亮。(3)倒计时显示模块:此模块有两种方案。第一种是采用数码管显示。该方案实现简单,但只能显示有限的符号和数码字符。第二种是采用点阵式LED显示。该方案实现复杂,须完成大量的软件工作,但功能强大,可方便的显示各种英文字符、汉字和图形。由于本控制系统只需显示倒计时时间,利用数码管即可完成此功能,因此

18、本控制系统中利用2位一体的共阴数码管显示道路两个方向的通行时间和暂缓通行时间,通过单片机控制进行倒计时显示。(4)键盘设置模块:单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。(5)复位模块:利用单片机的REST引脚接上复位电路达到复位功能。3 系统硬件电路的设计3.1系统硬件总电路构成 实现本设计要求的具体功能,可以选用STC89C51单片机及外围器件构成,12个发光二极管分成4组红绿黄三色灯构成

19、信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和模式选择按钮和紧急按钮等。本系统以单片机为核心,组成一个处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、状态灯、LED显示、驱动电路、按键等组成。其具体的硬件电路总图如图3-1所示。其中P0,P1,用于送显LED数码管的型和位,P2用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P3用于口按键控制。图3-1 硬件电路总图3.2单片机系统简介STC89C51单片机是在美国Intel公司于20世纪80年代推出的MCS-51系列高性能8位单片机的基础上发展而来的,它

20、在单一芯片内集成了并行I/O口、异步串行口、16位定时器/计数器、中断系统、片内RAM和片内ROM,以及其他一些功能部件1。单片机主要有如下特点:(1)有优异的性能价格比。(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯 片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性 与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣的环境下工作。(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4)低功耗、低电压,

21、便于生产便携式产品。(5)外部总线增加了 IC(Inter-Integrated Circuit)及 SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模应用系统。3.2.1单片机引脚介绍VCC:STC89C51电源正端输入,接+5V。GND:电源地端。XTAL1: 单芯片系统时钟的反相放大器输入端。XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电

22、容,可以使系统更稳定,避免噪声干扰而死机。RESET:STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。PORT0(P0.0P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果

23、当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使

24、用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。RST:复位输入。当振荡器复位器件时,要保持RST脚两

25、个机器周期的高电平时间2。单片机引脚图如下:图3-2-1 单片机引脚图3.2.2单片机时钟系统单片机芯片内还有一项主要内容就是并行I/O口。STC89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电

26、路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz3。当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过

27、1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源Vcc接通而实现的。系统图如图3-2-2所示 图3-2-2 单片机最小系统原理图3.3信号灯与倒计时显示系统3.3.1红黄绿信号灯显示系统在信号灯显示电路中,本控制系统选用了发光二极管代替信号灯。其中:红色发光二极管、黄色发光二极管和绿色发光二极管分别代替红灯、黄灯、绿灯发光二极管是一种特殊的二极管,导通时会发光(发光二极管导通压降一般为1.5V左右)。此外,工作电流要满足该

28、二极管的工作电流。 一般发光二极管与I/O端口之间都会再连接一个电阻,其作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制。一般发光二极管的点亮电流为515mA。控制系统中4,信号灯指示电路如图3-3-1所示。图3-3-1 发光二极管图3.3.2倒计时显示系统8段数码管又称为8字型数码管,分为8段:A、B、C、D、E、F、G、DP。其中,DP为小数点。数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共段,两根之间相互连通。8段LED数码管,就是在一定形状的绝缘材料上,利用不同形状点划的发光二极管组合,排列成“8”字型的数码管,分别引出它们的电极,

29、点亮相应的点划来显示09的数字。图3-3-2 数码管显示3.4倒计时信号显示驱动电路74HC245译码器可接受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输出多路分配器,

30、未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态5。74HC24作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在 高性能存贮器系统中,用这种译码器可以提高译码系统的效率。将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。HC138 按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个 低电平输出。两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24 线译码器不需外接门;扩展成32 线译码器,只需要接一个

31、外接倒相器。在解调器应用中,赋能输入端可用作数据输入端。 图3-4 74HC245电路图设计中将1脚接VCC,19脚接地,整个芯片是输入端输入高则输出端输出高,输入端输入低则输出端输出地,只是相当于驱动作用。3.5按键控制系统键盘设置电路中,采用独立式按键进行控制。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态6。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。根据以上特点,本控制系统单片机的I/O口数可以满足该键盘,并且可以完成系统设计

32、中要求的手动设定时间的控制功能,所以本控制系统中应采用独立式键盘。按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平7。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按

33、到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10200 毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。按键设置电路如图3.5所示。图3-5 按键设置电路4 系统软件程序的设计4.1系统软件程序的设计总述在确定了硬件平台结构后,功能框架就已经形成。软件在硬件平台的基础上构筑,完成各部分硬件的控制和协调。系统是由软硬件共同实现的,由于软件的可伸缩性,最终实

34、现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,易于编程和调试,也可减小软件故障率和提高软件的可靠性。使用KeilC4编译软件C语言编程,搭配Proteus仿真软件进行硬件电路模拟和程序的调试。对于大家熟悉的KeilC4和Proteus软件的发展史以及基本的功能这里就不做过多的介绍了。4.2程序主体设计流程在交通灯控制系统的设计中,首先对交通灯进行初始参数设置,然后根据是否出现键盘事件,如出现键盘事件就启动键盘程序,进行键盘时间处理;若没有出现,继续进行由初始参数进行的控制程序。流程图如图(图4-1)所示。 开始宏定义、系统初始化东西亮绿灯,南北亮红灯调显

35、示子程序(动态显示倒计时)东西,南北方向换向东西方向黄灯闪,南北方向红灯亮调用显示子程序(动态显示倒计时)等待按键事件按键事件处理中断处理子程序中断处理返回图4-1 系统总的流程图4.3 交通灯延时程序延时方法可以有两种,一种是利用STC89C51内部定时器才生溢出中断来确定1秒的延时时间,另一种是采用软件延时的方法。 (1)计数器初值计算 定时器工作时必须给计数器初值,这个值是送到TH和TL中的。它是以加法计数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=MC式中,M为计数器模值,该值和计数器工作方

36、式有关。在方式0时M为213;在方式1时M的值为216;在方式2和3为28。(2)计算公式 TC=MT/ T计数 (公式4-1)T计数是单片机时钟周期TCLK的12倍;TC为定时初值,如单片机的主脉冲频率TCLK为12MHZ,经过12分频:方式0: TMAX=2131us =8.192ms方式1: TMAX=2161us=65.536ms方式2和3: TMAX=281us=0.256ms显然1秒钟已经超过了计数器的最大定时时间,所以只有采用定时器和软件相结合的办法才能解决这个问题。(3)延时1秒的方法定时器一但启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH0和TL0,它

37、们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216-1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。这样便可精确控制定时时间,负责完成数码管输出数据刷新和各个状态的处理切换。同时中断子程序包括数码管输出数据刷新程序和各状态处理程序。由于溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms的定时器中断后便认为是1s,这样

38、便可精确控制定时时间。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。相应程序代码:TMOD=0X11; /定时器TH0和TL0设置为工作方式1TH1=0X3C; TL1=0XB0;TH0=0X3C;/定时器0置初值 0.05STL0=0XB0;EA=1;/开总中断ET0=1;/定时器0中断开启ET1=1; /定时器1中断开启TR0=1;/启动定时0TR1=0;/关闭定时14.3交通灯显示程序交通灯显示程序设计流程如图4-

39、3所示。交通灯显示程序总共有4个状态D1、D2、D3和D4,每个状态中发光二极管显示信号灯点亮情况,数码管来进行倒计时显示,完成这4个状态后再进入初始状态S1,进行循环。初始化,状态D1延时,并显示时间状态D2延时,并显示时间状态D3延时,并显示时间状态D4延时,并显示时间初始化开始4-3 交通灯显示设计流程void display(void) /显示子程序buf1=sec_nb/10; /第1位 东西秒 十位buf2=sec_nb%10; /第2位 东西秒 个位buf3=sec_dx/10; /第3位 南北秒十位buf0=sec_dx%10; /第4位 南北秒个位P1=0xff; / 初始灯

40、为灭的P0=0x00; /灭显示P1=0xfe; /片选LED1P0=tablebuf1;/送东西时间十位的数码管编码delay(1);/延时P1=0xff;/关显示P0=0x00;/灭显示 P1=0xfd; /片选LED2P0=tablebuf2; /送东西时间个位的数码管编码delay(1); /延时P1=0xff;/关显示P0=0x00;/关显示P1=0Xfb; /片选LED3P0=tablebuf3;/送南北时间十位的数码管编码delay(1);/延时P1=0xff; /关显示P0=0x00; /关显示P1=0Xf7; /片选LED4P0=tablebuf0;/送南北时间个位的数码管编

41、码delay(1);/延时4.4按键子程序模块设计按键是人机进行交互的重要接口之一。用户通过对仪器下达命令,仪器获得相应的键值,并执行相应的命令程序29。键盘部分的软件设计主要是对键盘管理芯片8051进行编程,从而成功地读取键盘值,实现相应功能。4.4.1特殊情况通车按键功能深夜模式按键按下四个路口黄灯闪烁提示车辆缓慢通过路口。紧急模式按键按下四个路口只有红灯长亮,禁止普通车辆通行,只允许紧急通行车辆通行。东西通行按键按下只用东西方向绿灯常亮,东西方向车辆通行南北方向车辆禁止通行。南北通行按键按下只有南北方向绿灯常亮,南北方向车辆允许通行东西方向车辆禁止通行。代码见附录B,子程序流程图4-4-

42、1确认键按下返回初始化四个路口只有黄灯闪烁亮四个路口只有红灯亮只有东西方向绿灯亮只有南北方向绿灯亮按键按下深夜模式按键按下紧急通行按键按下东西方向通行按键按下南北方向通行按键按下调用显示用于抖动确认按下按键图4-4-1 特殊情况通车按键流程图4.4.2通行时间设置按键功能确定、时间加、时间减、方向键(东西和南北均可以分别设置通行时间)、复位按键。第一次方向键按下,调节南北方向通行时间。第二次按下调节东西方向通行时间。时间加键按一次计数器加一,时间减键按一次计数器减一。确认键按下,系统自动平衡东西南北通行时间(默认默认方向通行时间多五秒即黄灯闪烁5秒的时间)。本系统不设置黄灯调节时间,默认五秒。

43、复位键按下,系统初始化,恢复程序默认设置的时间。代码见附录B,子程序流程图见图4-4-2:复位键按下主循环自动平衡时间,南北方向显示多五秒第一次按下方向键南北方向时间加按一次,时间倒计时显示加一秒时间减按一次,时间倒计时显示减一秒按下确认键,确认南北调节时间第二次按下方向键东西方向时间加按一次,时间倒计时显示加一秒时间减按一次,时间倒计时显示减一秒按下确认键,确认南北调节时间初始化原始值图4-4-2 设置键子程序流程图 5 系统的测试及分析5.1系统的测试和运行本次设计的硬件电路主要由单片机stc89C51组成,在调试电路的过程中也碰到了一些问题。本设计使用KeilC4编译软件C语言编程,搭配Proteus仿真软件进行硬件电路模拟和程序的调试。首先是根据设计思路在KeilC4软件下编写C语言程序,通过不断的编译查错确定程序本身没有问题之后生成jtd.hex文件。在protel设计好硬件电路,连接用到的各个元器件。通过jtd.hex在protel软件中进行仿真调试8。下面是我根据不同按键功能进行调试的结果。软件初始化的运行,进行系统的初始值倒计时的运行、四个状态的切换运行,结果是没有问题的。如图5-1。图5-1 系统初始状态运行

展开阅读全文
相关资源
猜你喜欢
相关搜索

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号