基于单片机的交通模拟控制设计

上传人:痛*** 文档编号:41787493 上传时间:2021-11-23 格式:DOC 页数:28 大小:279KB
收藏 版权申诉 举报 下载
基于单片机的交通模拟控制设计_第1页
第1页 / 共28页
基于单片机的交通模拟控制设计_第2页
第2页 / 共28页
基于单片机的交通模拟控制设计_第3页
第3页 / 共28页
资源描述:

《基于单片机的交通模拟控制设计》由会员分享,可在线阅读,更多相关《基于单片机的交通模拟控制设计(28页珍藏版)》请在装配图网上搜索。

1、基于单片机的交通控制系统模拟设计基于单片机的交通控制系统模拟设计摘 要 交通对于社会的工业经济和人们的生活生产中有着十分重要的意义。随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,交通自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的交通控制措施。交通控制研究的发展,旨在解决人类交通因需求的增多而日益繁重带来的问题,局限于道路建设的暂时不足和交通工具的快速增长,就要使更多的车辆安全高效的利用有限的道路资源,避免因无序和抢行等无控制原因造成的不必要阻塞甚至瘫痪,另外,针对整个交通线路车辆的多少实时调整和转移多条线路的分流也十分必要。各种交通工具已经悄悄

2、地走进我们的生活,给我们的日常活动提供了很大的便利。交通控制系统在其中发挥了举足轻重的作用,它保证了高效安全的交通秩序,我们每一个公民都要遵守一定的交通规则,同时一个完善而又可靠的交通控制系统将会使交通系统运行更加安全,更有秩序。本次设计就是利用单片机及其外围电路实现对交通控制系统的简单模拟。在此我们将运用比较简单的检测传感技术、实时手动调整控制技术,并将传感器监测、实时调整车辆通行时间的算法通过单片机来实现,从而提出了基于单片机的交通控制系统设计方案。8051单片机的交通灯控制系统由8051单片机、交通灯显示、LED倒计时、车流量检测及调整、违规检测及报警、紧急处理、时间模式手动设置等模块组

3、成。系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、车流量检测及调整、交通异常状况判别及处理等相关功能。该系统能够简单、经济、有效地控制十字路口的交通运行,保证路口的交通畅通。此次设计将从以下几个三个方面着手:一是确定系统交通控制系统的总体设计方案,包括十字路口具体的通行禁行方案设计以及系统应拥有的各项扩展功能;二是进行检测传感器的硬件电路、LED数码显示电路以及LED指示灯电路的设计;三是进行软件系统的设计,本次设计采用单片机汇编语言编写、软件的模块化设计,总体上完成了软件的编写。本设计模拟基本的交通控制系统,硬件方面用红绿黄灯表示禁行,通行和等待的信号发生,用LED数码显示进

4、行倒计时显示提醒行驶者,这样道路的安全更能够得到保证,车流量检测是通过单片机来进行采集数据并进行通行时间自动调整,并且具有交通违规检测及处理和紧急处理等功能。据此,本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接受输出。在软件方面运用单片机汇编语言接受按键的输入设置并控制信号灯的基本变化,同时实时处理各检测装置输入的数据,并通过按键来对交通灯的运行模式进行设置,以通过对信号灯的变化控制以实现交通灯的模拟设计。关键词:交通控制,传感检测,AT89C52,倒计时显示,紧急处理,信号灯控制,报警

5、提示.1. 单片机交通控制系统总体方案设计1.1单片机交通控制系统通行方案设计交通控制系统设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。1.1.1交通状态图: 图1 交通状态说明:黑色表示亮,白色表示灭. 1.1.2 交通状态变化过程:l 东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。l 东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的车辆,其他所有车辆都需等待状态转换。l 南北方向红灯

6、灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。l 南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的车辆,其他所有车辆都需等待状态转换。1.1.3 灯状态和行止状态表1交通状态及红绿灯状态状态1状态2状态3状态4东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个路口均有红绿黄3灯和数码显示管2个,本次设计为方便起见,在东西南北向共设置两对数码显示管,同时设置两组红黄绿信号灯,在任一个路口,

7、遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换,状态及红绿灯状态如表1.1所示。说明:0表示灭,1表示亮。1.2 单片机交通控制系统的功能要求 本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还具有倒计时显示,车流量检测及调整,交通违规处理和紧急处理等功能。(1)倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间,在“停止”和“通过”两者间作出合适的选择。(2)车流量检测及调整本次设计的车流量检测器采用传感器+单片机+外围器件来实现,交通控制系统普遍使用的红绿灯都有固定的红绿灯时间,并自动切换。红绿灯时间,是根据道口东西向和南北向的车流量,利用

8、统计方法确定的,最终利用单片机进行自动调整。(3)时间手动设置 系统除了可以根据车流量自动调整红绿灯时间外,也可以通过键盘进行手动设置,避免自动故障和意外发生,并在紧急状态下,可设置所有灯变为红灯。本系统就是通过独立式键盘来设置红绿灯时间的。(4)紧急处理 交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,由此在交通控制中增设禁停按键,就可达到此目的。(5)违规检测 当交通路口出现闯红灯或其他违规情况时,有关检测传感器可以实时检测并发出报警信号,以供处理。1.3单片机交通控制系统的基本构成及原理单片机设计交通控制系统,可用单片机直接控制信号灯的状

9、态变化,基本上可以指挥交通的具体通行,接入LED数码管就可以显示倒计时以提醒行驶者进行行止判断。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,同时接上蜂鸣器,进行报警提示。图2 系统的总体框图据此,本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入;信号灯状态模块,LED倒计时显示模块和蜂鸣器状态模块接收输出,系统的总体框图如上所示。键盘设置模块对系统输入模式选择及具体通行时间进行设置,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显

10、示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测则随时调用中断来实现相应的控制功能。在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间以满足不同路况的需要。2.系统硬件电路的设计2.1系统硬件总电路构成及原理本设计中可以选用AT89C52单片机及外围器件构成最小控制系统,6个发光二极管分成2组红绿黄三色灯构成信号灯指示模块,4个LED东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1个蜂鸣器进行报

11、警。2.1.1系统硬件电路构成本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。系统硬件电路由车流量检测电路、单片机、违规检测电路,状态灯,LED显示,按键,蜂鸣器组成。其具体的硬件电路总图如图2.1所示。图3基于单片机的交通控制系统电路图其中P0,P1,用于送显两片LED数码管,P2用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上电复位电路,P3.2即INT0接违规检测电路和紧停东西时间设置键J,P3.3即INT1接车流量检测电路,P3.6接南北时间设置键S,P3.7接自动模式选择返回键F,P3.4接蜂鸣器。2.1.2系统工作原

12、理系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:红绿灯时间自动和红绿灯手动时间设置。若此时F键按下,则设置为自动模式,若此时按下的是S键,则设置为时间设置模式,依次按S若干次,J键若干次可设置好两个方向的红绿灯时间,再按F键确认。系统首先显示状态灯及LED数码管,将状态码值送显P2口,将要显示的时间值的个位和十位分别送显P0和P1口,在此同时以50ms为周期,用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。一个完整的状态显示完成后,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,依次类推,信号灯显示四种不同的状态。本系统要开启两个外部中断,其

13、一为违规信号或禁停信号输入,一旦信号有效,中断开始,进入中断服务子程序,开启蜂鸣器禁止全部通行,当按下F键,中断结束返回;其二为车流量检测信号输入,若检测到车辆经过,进入相应的中断子程序,将存储车流量的寄存器加1,然后中断结束返回。每满一个状态循环周期,若为自动模式,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,并调整下次状态循环的红绿灯时间,以达到自动控制的目的。2.2单片机的选择2.2.1单片机的概述单片微型计算机简称单片机,又称微控制器,嵌入式微控制器等,属于第四代电子计算机。它把中央处理器、存储器、输入/输出接口电路以及定时器/计数器集成在一块芯片上,从而具有体积小

14、、功耗低、价格低廉、抗干扰能力强且可靠性高等特点。单片机的主要特点有:1)具有优异的性能价格比。2)集成度高、体积小、可靠性高。3)控制功能强。4)低电压,低功耗。2.2.2 AT89C52芯片的内部结构框图AT89C52是一带有2K字节快闪可编程可擦除存储体(EEPROM)的低电压、高性能8位CMOS微型计算机,它和工业标准MCS51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和快闪存储器,ATMEL公司生产的AT89C52是一强劲的微型计算机,图2.2为AT89C52的内部结构框图。图4 AT89C8052内部结构图2.2.3 AT89C52芯片最小系统一个最简单的单片机系统包

15、括晶振、复位、电源、系统的输入控制、输出显示,以及其他外围模块(如通信、数据采集等)。(1)时钟电路单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。单片机系统常用的晶振频率有6MHz、110592MHz、12MHz、本系统采用110592MHz晶振,电容选22pF。(2)复位电路系统刚上电时,单片机需要一定的复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑飞或死机时,也需要进行系统复位。复位电路有很多种,有上电复位,手动复位等。 (3)EA脚的功能及接法单片机的EA脚控制程序从

16、内部存储器还是从外部存储器读取程序。由于AT89C8052内部的flash容量很大,因此基本都是从内部的存储器读取程序,即不需要外接ROM来存储程序,因此,本系统中EA脚必须接高电平。本设计中复位方式采用上电按键手动复位方式,时钟采用内部时钟。如下图2.3所示。图5 本系统复位与时钟电路2.3其它硬件介绍及连接2.3.1车流量检测电路及模拟为了达到对红绿灯的时间控制,需要对道路上的车流量进行检测。本次设计用一种手动的操作方式,即车流量的检测电路用拨断开关代替。其基本思路为:当车流量大时,用拨断开关送出一个低电平,以产生外部中断,输入到P3.3引脚上,车流量检测电路如下图2.4所示。图6 车流量

17、检测电路如图所示,当开关状态如图所示时,LED不亮,同时高电平被单片机捕获。当开关拨下时LED点亮,同时低电平被单片机捕获,这样单片机通过捕获的电平状态做出相应的控制,与LED的状态即车流量的状态互相配合协调。2.3.2违规检测电路及模拟在红灯和黄灯期间,车辆是禁行的,为了对那些违规的车辆进行检测,可使用超声波车辆传感器。但是,用于受到条件的限制,本系统设计中只是使用了普通光敏二极管。图7 违规检测电路其基本设计思想是:将光敏二极管放在停车线上,当车辆行驶过将光敏二极管遮住,这样,光敏二极管就不导通,单片机检测到这一信号执行警报操作。违规检测电路如下图2.5所示。但是除了使用光敏二极管,还需使

18、用三极管,三极管的型号是9031.由于普通光敏二极管的开关特性不太好,所以设计在电路中加入了三极管作为开关。由于普通光敏二极管在导通的情况下的电阻都能达到0.5-1K,所以在设计中将光敏二极管直接连到了电源上。同时三极管还可以起到一定的隔直作用。当光敏二极管关闭时,三极管的基极为低电平,基极与发射基之间的电压为零,三极管关断,检测口的电压为高电平。同理,当光敏二极管导通时,三极管的基极电压为高,基极与发射极之间的电平为高,三极管导通,检测口的电压为低电平,基于此就可以检测是否有违规车辆了。2.3.3八段LED数码管LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示

19、不同的字形,如 dp,g,f,e,d,c,b,a全亮显示为,采用共阳极连接驱动代码,代码表如下表3.1所示。表2 驱动代码表显示数值dp,g,f,e,d,c,b,a驱动代码011010000C0H111111001F9H210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后有DPTR调取LEDMAP的代码。LED8段数码管的设置为每个方位上的一对2维显示器。四个方位上总共用

20、两对LED接在单片机的I/O口上。虽然路口不一样,但是显示的时间在数字上是一样的,所以两边连接的I/O口是对称的,如图2.6所示。 图8 LED连接图2.3.4其它器件(1)发光二极管红绿灯的显示采用普通的发光二极管。每个方向上设置红绿黄灯,总共2组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如下图2.7所示。图9 信号灯的连接(2)蜂鸣器本设计采用一般蜂鸣器,蜂鸣器使用PNP三极管进行驱动控制,当P3.4引脚输出为低电平,PNP导通,蜂鸣器蜂鸣;当P3.4引脚输出高电平时,PNP截止,蜂鸣器停止蜂鸣。如下图2.8所示图10蜂鸣器连接(3)按键控制本设

21、计设置了有3个键:S键P3.6,J键P3.2,F键P3.7。每个按键一端接地,另一端接上拉电阻。低电平有效,当按键按下端口接地,单片机捕获到低电平,从而知道相应的输入信息。如下图2.9所示图11 按键示意图3系统软件程序的设计3.1程序主体设计流程全部控制程序分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图3.1所示。图12 系统总流程图首先是按键处理程序,89C52通过对I/O扫描,确定是否有

22、键按下,再判断具体是哪个键按下,根据键值跳转到按键处理程序。按键处理结果可设置两种工作模式:红绿灯时间设置模式和红绿灯时间自动模式,次程序相当于系统的模式设置,若想重新设置则要按下复位键。设置过后进入50ms扫描程序,50ms扫描程序开始后,先刷新显示模块,若为自动模式则接下来要计数车流量,然后扫描紧停信号和违规信号,若捕获则调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。50ms已到则重新扫描,扫描20次之后计时到达1s则时间数据减1,在显示模块中修改显示缓冲区内容。在半个状态对换时,车流量计数程序在一个状态变换循环先后计数两个方向的车流量,然后调用红绿灯时间调整程序,更新红绿灯时间

23、。当前状态时间已到,则判断次状态装入相应数据,然后进入下一状态。3.2理论基础知识(1)定时器原理定时器工作的基本原理是给初值,让它不断加1直至加完为模值,这个初值是送到TH和TL中的。它是以加法计数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=TT0。计算通式变为:T=(MTC)T0(2)软件延时原理MCS-51的

24、工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们设定一个初值为20的软件计数器和使T0定时50毫秒。这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入它的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减,然后判断它是否为零。为零表示秒已到。设定定时器需要定时50毫秒,故T0必须工作于方式。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH,程序如下: WAIT: JNB TF0,WAIT1CLR TF0MOV TH0,#01HMOV TL0,#0B01HDJNZ R2,

25、WAIT (3)中断原理本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,本设计采用电平触发方式,IE0为其中断标志位,有中断信号则置位,中断服务子程序响应后,IE0自动清零。IE中的EA为允许中断的总控制位,为1开启,EX0为外部中断允许控制位,为1开启。在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。(4)红绿灯时间调整原理车流量检测传感器可对单片机控制系统

26、提供实时数据,系统对所获数据进行统计处理。实现红绿灯控制必须解决对当前十字路口的交通状况的检测,并完成如下工作:1.输入量的采集,系统采集两个输入量,即两个方向的车流量;2.输出量的确认,即红绿灯时间值;3.设计将输入映照到输出的算法;4.决定被统计的车流量算法的处理,生成精确的输出控制信号。为了采集上述数据,本设计中用模拟的方法假设在十字路口的两侧共设置手动按键。分别检测两个方向的车流量,车流量检测不是最终目的,在每半个循环周期,系统会检测到两个方向的车流量数据,除以时间,那么就可以得到单位时间的车流量,然后比较两个方向单位时间车流量多少,以确定下一次循环红绿灯时间,达到调整的目的。如在一次

27、循环过后,检测到南北向车流量(设此时南北绿灯,东西红灯时间为20s)为100辆,东西向车流量(设此时东西绿灯,南北红灯时间为30s)为90辆,则单位时间车流量南北向和东西向的比例是:(100/20)/(90/30)=1.6,显然南北向交通严重,那么现在就可以把南北绿灯,东西红灯时间调长。上面的比例1.6还是一个确定数值,究竟多少为多,多少为少,这就必须设定算法,划定几个值域范围,分别对应到具体的调整时间上,系统就调用具体的输出值了。3.3子程序模块设计(1)按键扫描程序首先程序不断扫描模式设置键,分别记为:S键,J键,F键对应/端口的3.6,P3.2,P3.7,低电平有效,按键顺序是指定的,若

28、直接按F键,则为自动调整模式,然后进入下一程序;若先按S键,再按J键,F键则为设置时间模式,然后进入下一程序。程序的开始要判断是否有键按下,可以不断将S键值和F键值相与,与值为1则表示没有键按下,为0则表示有键按下,程序如下:K1: MOV C, P3.7 ANL C, P3.6MOV03H,CJB 03H, K1 接下来要判断具体是哪个键,若为F键,则将自动标志位置1,进入下一程序,否则为S键,则表示设置南北绿灯时间,用R0存值,按1下加1,同时还需判断此时J键是否按下,若按下,则表示南北绿灯时间设置完毕,开始设置东西绿灯时间,用R1存值,同样按1下加1 ,同时判断此时F键是否按下,若按下,

29、则表示时间设置完毕,进入下一程序。在这个过程中,S,J键的计数是循环的,从初值20开始,加到40则循环回到20。如判断S键程序如下:CJNZ R0, #40, V1MOV R0, #20V1: INC R0 (2)状态灯显示及判断在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。定义I/O端口如下,其中均是低电平有效。H_RED BIT P2.1H_GREEN BIT P2.2H_YELLOW BIT P2.3L_RED BIT P2.4L_GREEN BIT P2.5L_YELLOW BIT P2.6共有4钟状态:东西红灯亮,南北绿灯亮(111

30、01011/EBH);东西红灯亮,南北黄灯亮(11100111/E7H);东西绿灯亮,南北红灯亮(11011101/DDH);东西黄灯亮,南北红灯亮(10111101/BDH)。括号中是P2端口8个引脚值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及对应的十六进制码。在用于显示发光二极管时,直接由MOV指令将十六进制码送入P2口。刚才的4个状态是依次变换的,这就要涉及到状态的判断和衔接了。先把P2端口的值与所有的4个状态码比较,若相同则判断成功当前状态,再把下一状态的状态码送显P2即可。程序如下:MOV A, P2D0:CJNE A, #0DDH,D1MOV

31、 P2, #0BDHMOV R4, #5SJMPDULYD1: CJNE A, #0BDH,D2MOV P2, #0EBH MOV 30H,R1MOV R4,30HCLR 01HD2: CJNE A, #0EBH,D3MOV P2, #0E7HMOV R4, #5JNB 00H, DULY2LCALLRVSJMPDULY2(3)LED倒计时显示LED计时每1秒都要刷新1次,那么计时满1秒时就要将存储时间的工作寄存器R4减1,然后送入LED显示程序中显示。下面要将时间数据R4的十位,个位分开送显P1,P0端口,首先将R4除以10,整数即十位放在A中,余数即个位放在B中,设置7段LED显示数据的数

32、据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。具体程序如下:MOV A, R4 MOV B, #10DIV A, BMOV DPTR, #LEDMAPMOVC A, A+DPTRMOV P1, AMOV A, BMOVC A, A+DPTRMOV P3, ALEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(4)车流量检测中断服务子程序车流量检测是用外部中断引脚P3.3即INT1捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用R5计南北向车流量,用R6计东西向车

33、流量,设车向标志位为01H,判断车向,程序如下:JNB 01H, U INC R5 SJMPU1U: INC R6(5)紧停及违规中断服务子程序紧停按键和违规信号传感器均连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断,中断程序中先把蜂鸣器P3.4端口置0,启动蜂鸣。并且等待恢复键F键P3.7按下,然后关闭蜂鸣返回。程序如下:IINT0: SETB P3.4 MOV P2,#0EDH JB P3.7, $ LCALL DELAYCLR P3.4RETI(6)红绿灯时间调整程序根据红绿灯时间调整原理,一个周期下来,R5,R6中分别存储着南北,东西向的车流量,接下来求单位时间车

34、流量,此时南北向时间,东西向时间分别存储在R0,R1中,则两个方向的流量比例为(R5/R0)/(R6/R1)=(R5*R1)(R6*R0),显然该比例是1左右带小数的值,然而单片机程序中只取整数,重要的数据信息就会丢失,所以本设计中首先将(R5*R1)乘以10,比例就变为10左右的值,将该比例值放在A,然后进行时间调整。由于受到多方面的限制,时间调整在此只划定3个范围:比例0到0.7为一个范围;0.8到1.5为一个范围;1.5以上为一个范围。第一范围显然表明东西向交通严重,应将时间调长;第二范围表明两向相当,可设置一样的时间;第三范围表明南北向交通严重,应将该向时间调长。具体设置如下表.表3比

35、例及调整时间南北与东西向比例00.70.81.51.5及以上调整南北向时间203040调整东西向时间403020由表可知,对应的时间调整也只有三种,分别是20,40;30,30;40,20.显然在实际应用中这样简单的处理难以尽如人意,但在此处,本设计只是模拟大致的调整过程,以上要求的程序如下:CJNE A, #3, M1M2: MOV R0, #20 MOV R1, #40 SJMP OUTM1: MOV 03H,C JB03H,M2CJNEA,#30,N1N2:MOVR0,#30MOVR1,#30SJMPOUTN1:MOV03H,CJB03H,N2MOVR0,#40MOVR1,#20(7)消

36、抖动程序在按键计数的过程中,还存在机械抖动与软件方面的矛盾,即当程序检测到了有按键按下,则会计一次数,但是实际上,按键闭合后在微观上还会弹起,然后闭合,一直到达稳定,显然后面的弹落是无效的,为了使程序避免这个问题,可以在检测到首次闭合时,调用一定时间的延时程序。此处延时程序完全用软件完成,利用程序执行一条指令的时间,再加上两次累减嵌套,程序如下:DELAY:MOVR2,#14HA1:MOVR7,#0FFHDJNZR7,$DJNZR2,A1RETSJMP $END程序中部分端口说明:P2 状态灯P0 LED个位P1 LED十位P3.7 F键 自动调整模式/ 时间设置模式确认P3.2 S键 设置南

37、北向通行时间P3.6 J键 设置东西向通行时间/ 紧停P3.3 车流量检测P3.2 红外对管P3.4 蜂鸣器R3 存20用于乘以50ms计时1sR4 暂存状态灯持续时间R0 存南北向通行时间R1 存东西向通行时间R5 计南北向车流量R6 计东西向车流量R2,R7 用于软件延时00H 自控标志位01H 车向标志结 论交通灯控制在交通运输领域有着非常重要的作用。本文完成了基于单片机的交通灯控制系统的设计与模拟。包括通行方案的设计,系统的硬件开发、软件编程与仿真调试等。在论文完成过程中,主要做的工作有:(1)确定交通系统具体的通行方案,规定东西向和南北向车辆的行止状态和时间分配,以及要求其他多功能的

38、实现。(2)以ATMEL公司的AT89C52单片机为核心进行系统硬件设计,输入量包括:车流量,按键状态和违规检测传感信号;输出控制交通信号灯亮灭状态及时间,以及LED数码管倒计时显示。(3)在车流量检测系统中采用模糊控制方法,这需要知道被控对象的数学模型,进行清晰化,具体化。因此,必须实施调查确定车流量少,中,多所要求的具体数量,然后经过单片机控制器的相关算法及处理确定红绿灯亮灭时间。(4)采用汇编对系统的软件编程,在开发过程中可使用了TKS仿真器,这些都大大缩短了软件的开发周期。为了便于编写、调试、修改和增删,系统软件的编制采用了模块化的设计方法。参考文献l边海龙,孙永奎. 单片机开发与典型

39、工程项目实例详解J.电子工业出版社,2008,(10):143-160.2王为青,邱文勋. 51单片机开发案例精选J.人民邮电出版社,2001,(5):45-47.3张鑫,华臻,陈书谦. 单片机原理及应用J.电子工业出版社,2008(5).4张洪润,张亚凡.单片机原理及应用J. 清华大学出版社,2005,(4).5黄智伟.凌阳单片机课程设计指导J. 北京航空航天大学出版社,2007,(6)6蒋辉平,周国雄. 基于Proteus的单片机系统设计与仿真实例M.机械工业出版社,2009.7张毅坤. 单片微型计算机原理及应用,M西安电子科技大学出版社 1998 8余锡存 曹国华.单片机原理及接口技术M

40、.陕西:西安电子科技大学出版社,2000.79雷丽文 等.微机原理与接口技术M.北京:电子工业出版社,1997.227 4 设计心得体会。的心得: 通过我们从最初的方案选择,方案确定,到具体的软硬件设计,仿真,焊接,调试,最终实现了交通等控制系统的基本控制功能,同时也扩展了一些实用的外围电路,每一步都实我们小组成员认真设计,之后一起讨论,并一步步实现的,而且实际的仿真和焊接及调试中除了要满足理论要求外,一些实际的东西也必须考虑在其中,有时候问题存在,但是我们花很大的力气也找不出问题到底出在哪,这时我们甚至有时候要排查每一根电气连线,甚至每以个焊点,有万用表测每一根线路是否通畅。因而,这次设计是

41、对我们的理论学习的一次检查,到底有没有将知识理解并融会贯通,有没有理解知识的本质,经这次的动手实践马上得到体现。最重要的是我发现在整个设计过程中,重要的不是老去动手去做,这只是一方面,另一个不容忽视的方面就是要善于并勤于思考,找出问题的真正所在。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。在此次设计中另外让我体会较深的一点是合作精神在我们日常的学习,生活,以致于今后参加工作都是至关重要的一点,每个人都有他比较擅长的方面,大家各

42、自发挥自己的有点,众人的智慧集合在一起就是很大的胜利,而且大家在一起讨论,各自都有自己的想法和思路,那么遇到一个棘手的问题,思路就开阔了,解决起来就容易躲了。此次设计也让我更加相信拥有坚定的意志对于完成一项工作是非常重要的,在学习和工作中一定不能有畏难情绪,相信一切问题只要我们用心去想,去解决,它最终将不是问题,终会有令人满意的结果的。但是一旦信念动摇了,或者放弃了,那么问题将永远得不到很好的解决,自己的心理上也会有负重感,这是极不利于我们个人能力的提高的。通过此次设计,发现了自己的许多不足之处,这也就提醒我在今后的学习中更要针对自己的不足有目的有针对性地学习,这样自己的综合能力才能得到显著的

43、提高。的心得体会: 通过本次课程设计,我懂得了合作的重要,基本功能加扩展功能构成了我们的设计思想。通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。从而不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,永不言弃。设计过程,好比是一场足球赛,需要团队合作,更需要技巧和创新。 整个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的

44、交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,这一整个系统,参考了很多资料,程序由我们自己来补充完美,程序完成得很漂亮,与用8255来制作的交通灯控制系统相比,程序简单易读,结构清楚,最重要的是成本低。在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。 。的心得体会; 两个周的单片机实习课题已完成,这次的课程设计让我认识和学习到了很多东西,收获颇丰。 在此次设计中,我们通过对原有交通灯基本功能设计系统进行改进,增添了

45、紧急停车、报警、车流量违规检测等三个控制功能,使之成为一个更加适用,功能更加完备的系统。俗话说“好的开始是成功的一半”,实习之前,我们一定要对自己所选设计课题中所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;并要有一个清晰的思路和一个完整的的软件流程图。在设计程序时,不要妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。在焊接硬件时,一定要细心,不要虚焊、连焊,自己布线时,尽量先在纸上画好连接图,再焊接在万用板上,布线这项工作虽然看起来不需要多少技术,做起

46、来却非常的劳心劳,连好一根电路线后,最好用万用表测试一下是否短接,做到每一根电路线都焊好、焊对地方,不然在最后出问题检查时会非常麻烦。在实际动手中,我们组也遇到了一些问题,例如:编程时因为我们扩展了几个功能,需把自己编的扩展程序插入原基本程序中,致使子程序和主程序的混淆,调试时总出现不了想要的结果。焊硬件图时由于导线接头留的过长,致使芯片的两个相邻管脚出现短接。好在通过同伴间的讨论,一步步细心检查,寻求老师的帮助,最后出现的问题都一一得到了解决。此次实习,让我深切体会到合作精神的重要,组员中有可能一个人的错误,就导致整个工作失败。在扩张及查错时,大家在一起集思广益,做起来会有事半功倍的效果。对

47、我们而言,知识上的收获重要,人与人之间的相处之道也同样重要。的心得:这两周的单片机课设实训应该然我们每个人都受益匪浅,很多人都是第一次面对这么严峻的课题。不过,经过这次课设培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。回顾起自己实践的经历,从大二的那次C语言实习到那次电子设计到次数电设计再到这次单片机课设,我已熟悉了这种从选题到定稿,从理论到实践。其实C语言那会我就将一个长达十页的程序分析清楚,并改正了100多个错误。大二那次电子设计大赛真是可惜,自学了单片机,并运用汇编作出了自己的东西,就差硬件失败了!所以这次课设

48、我们比较顺利原理清楚后改程序,即编又改,在周一我们已完成了验收。之后,又帮别的几组也实现了课设。此次课程设计,至今我仍感慨颇多,的确,在短短的两个星期的日子里,我遇到了很多问题,没有按时吃过饭,一直检查分析,可以说得是苦多于甜,但是学到很多,学到了很多在书本上所没有学到过的知识。通过这次单片机课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。要有细心,耐心,恒心才能做好事情。5.附录附录一:程序清单3.4源程序H_RED BIT P2.1 ;定义IO端口H_GREEN BIT P2.2H_Y

49、ELLOW BIT P2.3L_RED BIT P2.4L_GREEN BIT P2.5L_YELLOW BIT P2.6ORG 0000HLJMP MAINORG 0003H LJMPIINT0ORG0013HLJMPIINT1ORG 0030HMAIN: CLR00HLCALLDELAYLCALLDELAYCLRP3.4 MOV R3, #20 MOV R0, #19 MOV R1, #20MOV R5,#1MOV R6,#1K1: MOV C, P3.7 ANL C, P3.6MOV03H,CJB 03H, K1JNB P3.7, F K2: JNB P3.6, S JNBP3.2,JS

50、JMP K2F: LCALL DELAY MOV R0, #30MOV R1, #30SETB 00HSETBEASETB EX1CLR IT1MOVP2,#0DDHMOV30H,R0MOVR4,30HSETB01HSJMP STARTS: LCALL DELAYCJNE R0, #40, V1MOV R0, #20V1: INC R0JNB P3.6, $ SJMP K2J: LCALL DELAYCJNE R1, #40, V2MOV R1, #20SJMPV3V2: INC R1V3:JNB P3.2, $V4:JNB P3.7, START1JNB P3.2, JMOV P2, #0D

51、DH MOV30H,R0MOV R4,30HSETB01HSJMP V4START3:MOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HCLR TF0SETB TR0 CJNE R3,#10,CONT1 SETB P2.3 CONT1:DJNZ R3,JM1 CLR P2.3MOV R3,#20DJNZ R4,JM2MOV A,P2SJMP D0START2:MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H CLR TF0 SETB TR0 CJNE R3,#10,CONT SETB P2.6CONT:DJNZR3,DULY

52、 CLR P2.6 MOV R3,#20 DJNZ R4,DULY MOV A,P2 SJD0JM1: LJMP DULY2JM2: LJMP DULY2START1:DEC R1START: SETBEA SETBEX0SETBIT0MOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HCLR TF0SETB TR0 DJNZ R3, DULY1 MOV R3, #20DJNZ R4, DULY1MOV A, P2D0:CJNE A, #0DDH,D1MOV P2, #0BDHMOV R4, #5SJMPDULYD1: CJNE A, #0BDH,D2MOV P2

53、, #0EBH MOV 30H,R1MOV R4,30HCLR 01HD2: CJNE A, #0EBH,D3MOV P2, #0E7HMOV R4, #5JNB 00H, DULY2LCALLRVSJMPDULY2D3: CJNE A, #0E7H,D4MOV P2, #0DDHMOV 30H,R0MOV R4, 30HSETB 01HD4: CJNE A,#0EDH,DULY1 MOV P2,#0DDH MOV P2, #0DDHMOV 30H,R0MOV R4, 30HSETB 01HDULY1:LCALLYLJMPSTARTDULY2:LCALLYLJMPSTART3DULY:LCAL

54、L Y LJMP START2Y: MOV A, R4 MOV B, #10DIV ABMOV DPTR, #LEDMAPMOVC A, A+DPTRMOV P1, AMOV A, BMOVC A, A+DPTRMOV P0, AWAIT: JNB TF0, WAIT RET LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHIINT1: LCALL DELAY CLRIE1 JNB 01H, U INC R5 SJMPU1U: INC R6U1:RETIIINT0: SETB P3.4 MOV P2,#0EDHJB P3.7, $LCALL

55、DELAYCLR P3.4RETIRV: CJNE R0,#30,PANDUAN MOV 30H,#1 MOV 40H,#1 SJMP JISUANPANDUAN: JC XIAOYU MOV 30H,#2 MOV 40H,#1 SJMP JISUANXIAOYU: MOV 30H,#1 MOV 40H,#2JISUAN: MOV A,R6 MOV B, 30H MUL AB MOV R6, A MOV A , R5 MOV B, 40H MUL AB MOV B, #10 MUL AB MOV B, R6 DIV AB CJNE A, #3, M1M2: MOV R0, #20 MOV R1, #40SJMP OUTM1: MOV 03H,C JB03H,M2CJNEA,#30,N1N2:MOVR0,#30MOVR1,#30SJMPOUTN1:MOV03H,CJB03H,N2MOVR0,#40MOVR1,#20OUT:MOVR5,#1MOVR6,#1RETDELAY:MOVR2,#14HA1:MOVR7,#0FFHDJNZR7,$DJNZR2,A1RETSJMP $

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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