机械设计制造及其自动化基于单片机的交通流量感应式交通灯设计5月15日_第1页
机械设计制造及其自动化基于单片机的交通流量感应式交通灯设计5月15日_第2页
机械设计制造及其自动化基于单片机的交通流量感应式交通灯设计5月15日_第3页
机械设计制造及其自动化基于单片机的交通流量感应式交通灯设计5月15日_第4页
机械设计制造及其自动化基于单片机的交通流量感应式交通灯设计5月15日_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、泰 山 学 院本科毕业设计 基于单片机的交通流量感应式交通灯所 在 学 院 机械与工程学院 专 业 名 称 机械设计制造及其自动化 申请学士学位所属学科 工科 年 级 二九级 学生姓名、学号 尹彦柏 2009170113 指导教师姓名、职称 许 振 保 讲 师 完 成 日 期 二一三年五月 摘要摘 要随着社会的进步,科技的进步使人们的生活水平逐步提高,各种方便人们生活的自动控制系统进入了人们的生活,以单片机为核心的产品越来越多,这标志了自动控制系统成为了数字化时代的一员。本设计主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。利用单片机作为控制系统,使红绿黄灯按

2、指定时序按不同时间循环点亮,并增添了主从道模式和普通模式的传感器自动检测与转换,蜂鸣器对闯红灯行人的自动检测与声音警示,信号灯转换时间的自动倒计时并进行led显示等附加功能,使交通灯发挥更加人性化、智能化与自动化的作用,为建立智能、安全、高效的指挥交通秩序而服务。关键词:交通灯,msc-51,单片机,自动检测abstractalong with the progress of the society, the progress of science and technology make peoples life level gradually improve, a variety of co

3、nvenient automatic control system of peoples life has entered peoples lives, with the single chip processor as the core product more and more, this marks the automatic control system became a member of the digital age. this design mainly from the mcu application up to achieve intelligent traffic lig

4、hts at an intersection management, to control the vehicles normal operation. microcontroller as the control system, make the red, green and yellow lights lit according to specified sequence according to different time cycle, and added a master-slave mode and normal mode sensor automatic detection an

5、d conversion, a buzzer for running a red light pedestrian automatic detection and warning of sound and light conversion time of additional features such as automatic countdown and led display, traffic lights play a more humane, intelligent and automation for a smart, safe and efficient traffic order

6、 and service.keywords: traffic light ,msc-51, scm, automatic checking目录目录1引言11.1交通灯控制系统的发展概况及发展前景11.2 单片机交通控制系统设计21.3单片机交通控制系统的功能要求41.3.1 倒计时显示41.3.2 时间的设置41.3.3 紧急处理51.3.4 普通模式和主从模式的切换功能51.3.5 蜂鸣器报警51.4单片机交通控制系统的基本构成及原理51.5设计思路72 系统硬件电路的设计82.1 系统硬件总电路构成。82.2 工作原理92.3 局部电路图102.3.1 按键电路102.3.2 发光二极管电

7、路112.3.2 八段led数码管122.3.4车流量检测电路及模拟143 系统软件程序的设计153.1 程序主体设计流程153.2子程序模块设计173.2.1状态灯显示及判断173.2.2 led倒计时显示183.2.3 紧停及调整时间中断子程序193.2.4车流量检测中断服务子程序217.3 系统软件调试224 结束语24附录25参考文献32致谢33泰山学院本科毕业设计1引言1.1交通灯控制系统的发展概况及发展前景今天, 安装在各个道路交叉口上的红绿灯交通指挥系统, 已经成为疏导交通车辆最常见和最有效的手段, 而这一技术早在19世纪就已经出现。1858年, 在英国伦敦主要街头安装了以燃煤气

8、为光源的红、蓝两色的机械扳手式信号灯, 用以指挥马车通行, 这是世界上最早的交通信号灯。在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩 ,它的前面有两块红、绿玻璃交替遮挡。初期的交通灯由于功能能不显著,性能不稳定等诸多问题,经历了一个坎坷的发展历程。而第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善,随着工业革命的逐渐深入,投影器交通灯也演变成了现在的交通信号灯控制系统, 红灯亮表示“停止”, 绿灯亮表示“通行”, 黄灯是警告信号。信号灯的出现

9、, 使交通得以有效管制, 对于疏导交通流量、提高道路通行能力减少交通事故有明显效果。目前,我国许多大中城市的交通压力都非常大。部分交通路口的信号灯工作时间不合理,交通违章或肇事记录不确切并引发诸多问题,不能充分担负起交通监控指挥的功能。所以,改善现有交通系统的工作模式,适当增加一些附加功能,对于提高现有交通系统的工作效率,加强交通路口的信号灯控制和安全状况的监控具有非常重要的意义。近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。利用单片机at89c51作为核心元件,实现通过信号灯对路面状况的智能检测与控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间

10、不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。1.2 单片机交通控制系统设计交通灯的控制方式很多,本系统主要是以89c52为核心来设计交通控制系统,单片机外接六个发光二极管交替发光来表示交通灯的红绿灯的交换,另外用四个数码管来倒计时各个发光二极管亮的时间,除此之外,本设计还采用个开关按钮来实现一系列扩展功能,如红绿灯亮的时间的长短的切换,复位,紧急情况下的检测,显示车流量和闯红灯的人数,为了合理的管理和调度,本设计增加了一个光电传感器来检测车流量,按照南北与东西方向车流量的大概比值确定车流量的相对大小,并对红绿灯时间作出适当的修改,

11、达到自动调节交通流量的目的。 黄灯红灯绿灯 图1 交通灯循环图图2 交通状态通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时5秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。下面

12、我们可以用图表表示灯状态和行止状态的关系如下:表1 交通状态及红绿灯状态状态1状态3状态4状态6东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状态及红绿灯状态如表1所示。说明:0表示灭,1表示亮。1.3单片机交通控制系统的功能要求本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,通行时间调整和紧急处理等功能。1.3.1

13、倒计时显示倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择 。1.3.2 时间的设置本设计中可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。前者软件编写简单,但在按键数量较多

14、时特别浪费i0口资源,一般用于按键数量少的系统。后者适用于按键数量较多的场合,但是在单片机i0 口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。本系统要求的按键控制不多,且i0口足够,可直接采用独立式。1.3.3 紧急处理交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停按键,就可达到想此目的。1.3.4 普通模式和主从模式的切换功能普通模式就是按红、黄、绿灯分别按照显示36、5、36秒的时间进行固定循环显示,但光电传感器随时将车流量信息传

15、送给单片机进行判断,并在比值达到设定数值时调整南北向和东西向的红绿灯时间,实现主从车道车流量的调节,这种模式即为主从模式。两种模式的切换有两种方式:第一种方式是手动切换,按下复位键,在这种情况下,按下切换键,可以进行主从/普通模式的切换;第二种方式是自动切换,即系统根据光电传感器检测结果自动做出模式切换。1.3.5 蜂鸣器报警报警方式有两种,智能报警和手工报警方式。当某个干道上是红灯的时候,传感器检测到有车闯过去时,蜂鸣器智能报警、同时蓝色警示灯示警。其二,在紧急情况下当有车闯红灯时可手工按键报警。1.4单片机交通控制系统的基本构成及原理单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态

16、变化,基本上可以指挥交通的具体通行,当然,接入led数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。如图所示:据此,本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,led倒计时模块和蜂鸣器状态模块接受输出。系统的总体框图如上所示。单片机红黄绿信号灯8级led数码管显示车流量传感器最小系统外围接口按键控制蜂鸣器图3 系统的总体框图键盘设置模块对系

17、统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到led数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间一满足不同路况的需要。1.5设计思路l 分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。l 分析单片机使用方法,综合接口连接知识,大体明确单片机各个接口在交通灯控制系统中的连接点及实现的功能。l 确定系统交通

18、控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能与相对应硬件的连接搭配。l 进行led显示电路,灯状态电路,按键电路的设计和各器件的选择及连接,大体分配各个器件及模块的基本功能要求。l 进行软件系统的设计,对于本系统,本设计采用单片机汇编语言编写,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成软件的编写。系统电源模块数码管驱动电路(npn三极管)上电复位电路8051控制器系统处理光电传感器流量检测模块a、b两组交通灯模块12m时钟振荡电路蜂鸣器及高亮led报警模块4位共阳数码管显示模块路口交通灯模式切换检测违规现象显示控制按键复位

19、检测紧急情况检测按键检测模块2 系统硬件电路的设计2.1 系统硬件总电路构成。33图4 系统硬件结构框图2.2 工作原理实现本设计要求的具体功能,可以选用at89c52单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个led东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1个蜂鸣器进行报警。系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:红绿灯时间自动和红绿灯时间设置。若此时f键按下,则设置为自动模式,若此时按下的是s键,则设置为时间设置模式

20、,依次按s若干次,j键若干次可设置好两个方向的红绿灯时间,再按f键确认。其实这个过程就是将存储时间值的寄存器进行设置,以及标志是否要进行车流量检测及调整。接下来,系统必须先显示状态灯及led数码管,将状态码值送显p2口,将要显示的时间值的个位和十位分别送显p0和p1口,在此同时以50ms为周期,用软件方法计时1秒,到达1s就要将时间值减1,刷新led数码管。时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,当然,还要开启两个外部中断,其一为违规信号或禁停信号输入,一旦信号有效,中断开始,进入中断服务子程序,开启蜂鸣器禁止全部通行,当按下f键,中断结

21、束返回。其二为车流量检测信号输入,若检测到车辆经过,进入相应的中断子程序,将存储车流量的寄存器加1,然后中断结束返回。每满一个状态循环周期,若为自动模式,则须将检测到的车流量数据处理一次,判断两个方向的交通轻重缓急状况,再调整下次状态循环的红绿灯时间,以达到自动控制的目的。图5 电路图2.3 局部电路图2.3.1 按键电路 89c52的rst接按键复位电路,用于单片机的复位控制。 89c52的p2.0、p2.1、p3.0、p3.1、p3.4分别接开关s6、s5、s1、s2、s3、s4,用于数码管显示车流量、数码管显示闯红灯的人数、紧急情况下暂停、单片机复位、模式切换,如图6所示。 图6 按键电

22、路图2.3.2 发光二极管电路图7 信号灯的连接根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。每个方向上设置红绿黄灯,总共4组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如图7所示。2.3.2 八段led数码管led显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。led数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。以八段共阳管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示sp,即点),每个发光二极管的阳极连在一起。这样,一个led数码管就有i根位选线和8根段选线,要想显示一

23、个数值,就要分别对它们的高低电平来加以控制。为方便起见,本文主要讨论共阳八段led数码显示管,其他类形的显示管与其类似。图8 led数码管led 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如 dp,g,f,e,d,c,b,a全亮显示为,采用共阳极连接驱动代码,代码表如下表2所示。相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后有dptr调取ledmap的代码。led8段数码管的设置为每个方位上的一对2为显示器。四个方位上总共用8个led接在单片机的io口上。虽然路口不一样,但是显示的时间在表2 驱动代码表显示数值d

24、p,g,f,e,d,c,b,a驱动代码011010000c0h111111001f9h210100100a4h310110000b0h41001100199h51001001092h61000001082h711111000f8h81000000080h91001000090h数字上是一样的,所以两边连接的io口是对称的。如图所示,其中a,b分别是p0,p1的网络标号。图6 led连接图2.3.4车流量检测电路及模拟为了达到对红绿灯的时间控制,需要对道路上的车流量进行检测。89c52的p2.2 、p3.6和p3.7分别接传感器、蜂鸣器、闪光灯,用于检测车流量和闯红灯的人、报警。p2.2和p3.

25、6外接传感器和蜂鸣器,当传感器检测到有人闯红灯时蜂鸣器就以滴滴声报警。由于单片机的i/o口输出电流太小,不能驱动蜂鸣器发出声音,所以要接一个电流放大电路,三极管的基极经过限流电阻r3后由单片机的p3.6控制。图7 检测、报警电路3 系统软件程序的设计3.1 程序主体设计流程全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,led显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图8所示。 设计说明:该智能交通灯控制系统的软件设计采用的是

26、顺序执行并反复循环的方法。智能交通灯控制系统在正常工作的情况下,每36s循环变化一次。每个循环周期在还剩5s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。在此期间若中断按键按下则转入中断服务子程序进行相关操作。3.2子程序模块设计3.2.1状态灯显示及判断在本设计中,实际控制的灯只有6个,即:东西红灯,东西绿灯,东西黄灯,南北红灯,南北绿灯,南北黄灯。定义io端口如下,其中均是低电平有效。h_red bit p1.0h_yellow bit p1.1h_green bit p1.2l_red bit p1.3开始初始化设定初值按键事件检测与处理绿灯倒计

27、时光电管为低电平?黄灯倒计时5秒红灯倒计时倒计时完毕?倒计时完毕?光电管为低电平?结束检测车流量检测闯红灯 y n n y y n n n y 图8 流程图l_ yellow bit p1.4l_ green bit p1.5共有4钟状态:东西红灯亮,南北绿灯亮(0f3h);东西红灯亮,南北黄灯亮(0f5h);东西绿灯亮,南北红灯亮(0deh);东西黄灯亮,南北红灯亮(0eeh)。括号中是p1端口8个引脚值对应的十六进制码。用于显示发光二极管时,部分程序如下: 东西红,南北绿,计时时间为36s mov p1,#0f3h mov 60h,61ha1: mov r1,#50a2: acall bc

28、d acall dispclk djnz r1,a2 mov a,60h mov r0,60hadd a,#99hda a mov 60h,a cjne r0,#05h,a13.2.2 led倒计时显示led计时每1秒都要刷新1次,采用的是动态显示,首先将r4除以10h,整数即十位放在50h中,余数即个位放在51h中,设置7段led显示数据的数据表,用数据指针寄存器dptr指向数据表的首地址,再加上a中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。具体程序如下:bcd: ;将十位数送到(51),个位数送到() mov a,60h ;60h单元放的是倒计时值mov b,#10h di

29、v ab mov 51h,a mov a,b mov 50h,a retdispclk: ;显示部分 mov dptr,#tab mov a,50h movc a,a+dptr mov p0,a clr p2.6 lcall delay setb p2.6 mov a,51h movc a,a+dptr mov p0,a clr p2.7 lcall delay setb p2.7 ret 3.2.3 紧停及调整时间中断子程序紧停按键连接到外部中断引脚p3.2,即int0捕获到一个低电平,则进入该中断进行相关处理。程序如下:iint0: ;紧急情况处理 clr ea jb p3.2,$ pus

30、h 60h push p1 push p2b0: jnb p3.0,nh jnb p3.1,dh ;全红a9: mov p1,#0f6h setb p2.6 setb p2.7 acall delay jnb p3.2,b0 jmp je ;只允许东西方向车辆通行nh: mov p1,#0deh setb p2.6 setb p2.7 acall delay jnb p3.2,b0 jmp je ;只允许南北方向车辆通行dh: mov p1,#0f3h setb p2.6 setb p2.7 acall delay jnb p3.2,b0 jmp jeje: pop p2 pop p1 pop

31、 60h setb ea reti3.2.4车流量检测中断服务子程序车流量检测是用外部中断引脚p3.3即int1捕获到一个低电平,则进入相应的中断服务子程序,在子程序中,用r5计南北向车流量,用r6计东西向车流量,设车向标志位为01h,判断车向,程序如下:由于受到多方面的限制,时间调整在此只划定5个范围。分别为:比例0到0.5,0.6到1.0,1.1到1.6,1.7到2.1,2.2及以上。前两个范围显然表明东西向交通严重,应将时间调长;第三个范围表明两向相当,可设置一样的时间,第四和第五两个范围表明南北向交通严重,应将该向时间调长。具体设置如表3所示。由表可知,对应的时间调整也只有五种,分别是

32、52,20;44,28;36,36;28,44;20,52。显然在实际应用中这样简单的处理难以尽如人意,但在此表3 比例及调整时间南北方向与东西方向比例00.50.6-1.01.1-1.61.7-2.12.2及以上调整南北向时间2028364452调整东西向时间5244362820处,本设计只是模拟大致的调整过程,以上要求的程序如下:cjnz a, #5m1m2: mov r2, #20mov r1, #52sjmp outm1: jb c, m2cjnz a, #10 n1n2: mov r0, #28mov r1, #44sjmp outn1: jb c, n2cjnz a, #16q1q

33、2: mov r0, #36mov r1, #36sjmp outq1: jb c, q2cjnz a, #21p1p2: mov r0, #44mov r1, #28sjmp outp1: jb c, p2cjnz a, #22s1s2: mov r0, #52mov r1, #20sjmp outs1: jb c,s2ret3.3 系统软件调试系统的软件调试借助于tks仿真器,在进行系统软件的连续调试之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程正确。软件调试主要分以下几个步骤进行:功能子程序的调试。能子程序的调试包括运算、采样、数字滤波以及pid运算等子程序的调试

34、。在调试功能子程序时,许多参数都是未知的,要根据其所需的条件,给出假定的数据,使其运行,如果能完成预定的处理功能或与手工计算的结果相符,就说明该子程序己调试通过。调试时由小到大,由里到外。例如,调试pid算法子程序时,先调通其包含的各个运算子程序和参数处理子程序,然后将它们连起来进行通调。通调时,也是假定一些数据、参数和初始条件,然后运行程序。当运算结果与手工计算的结果相同时,该算法子程序则调试完成,反之,就要进行相应的修改。其它子程序的调试同理;程序流程的调试。序流程的调试主要是查看程序运行的步骤是否正确,在某时刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。在调试过程中,先将

35、pid算法子程序屏蔽,输出可控硅导通时间用一个固定的常数代替,在各个中断服务子程序设置断点,然后运行程序,查看程序是否能运行到所有的断点,若所有断点都能运行到,则程序流程基本正确。去掉所有断点,再一次运行程序,查看可控硅状态,从而判断程序流程正确,反之,若程序流程不正确,做相应的修改后,重新调试;功能程序与算法程序的通调。完成整个程序流程的调试后,将pid等算法子程序加入,在算法子程序前或后设置断点,运行整个程序。当程序在断点处暂停时,查看pid计算的控制量与手工计算的值是否相同。多运行几次,若每次的结果都正确,则说明程序各个部分互相没有矛盾,反之,则说明算法子程序和其它子程序之间有影响,需要

36、做相应的修改后重新调。4 结束语经过努力工作,终于完成了自己的单片机课程设计。虽说忙碌了点,但我觉得这样的生活充实且有成就感,当然,也获益匪浅。同时,我也学会如何去发现问题与解决问题的一些方法。至于软件设计与调试,我觉得它主要考验你的思维逻辑能力及你对指令的熟悉程度。可以说在整个软件设计过程中,我不仅学会了延时的两种方法,即软件延时和硬件延时,还掌握数码管的两种显示方式(即动态显示与静态显示)及其如何选择。当然,通过几次反复调试过程,使得我对汇编指令有了更深刻的理解。在整个课程设计过程我还掌握了一下几点:(1)掌握了电子系统设计的流程,熟悉了各种硬件电路以及软件编程方法。(2)理解了单片机的各

37、部分组成及特性。(3)熟练使用了各种计算机辅助设计工具完成设计,充分掌握了这些工具的使用。(4)学会了利用keiluvision3对汇编语言进行编译过程.更进一步加深了对proteus软件的学习。通过本次的课程设计,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习工作起了很大的帮助。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。同时我也懂得,在整个设计过程中,生活中也一样

38、,一定要意志坚定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。程序附录h_red bit p2.1 ;定义io端口h_green bit p2.2h_yellow bit p2.3l_red bit p2.4l_green bit p2.5l_yellow bit p2.6 ;主程序,选择设置红绿灯时间模式或自动调整模式org 0000hljmp mainorg 0003h ;中断入口ljmp int0org 0030hmain: mov r3, #36 ;用于嵌套50ms软件方法计时1smov r0, #36 ;预设值红绿灯时间mov r1, #36clr ex0k1: mov

39、 c, p3.7 ;等待检测何种模式按键按下anl c, p3.2jb c, k1jnb p3.7, f ;f键按下为自动模式,进入扫描k2: jnb p3.2, s ;s键按下并等待计数次数sjmp k2f: lcall delaymov r0, #36mov r1, #36setb 00hsetb easetb ex1sjmp starts: lcall delaycjnz r0, #52, v1mov r0, #20v1: inc r0jnb p0.1, $jnb p3.6, j ;j键按下并等待计数次数sjmp k2j: lcall delaycjnz r1, #52, v2mov r

40、1, #20v2: inc r1jnb p3.6, $jnb p3.7, start ;设置完毕为设定时间模式,进入扫描jnb p3.6, jmov p2, #0ddh ;预设信号灯状态,时间和车向mov r4, r0setb 01hsetb ex0 ;程序开始,进行每50ms扫描start: mov tmod, #01hmov th0, #3chmov tl0, #0b0hclr tf0setb tr0 ;开始50ms计时djnz r3, y ;1s是否计时完毕mov r3, #20djnz r4, y ;本状态是否结束,并进行下一状态设置mov a, p2cjnz a, #0ddh,d1m

41、ov p2, #bdhmov r4, #5d1: cjnz a, bdh,d2mov p2, #edhmov r4, r1clr 01hd2: cjnz a, #edh,d3mov p2, #e7hmov r4, #5jnb 00h, d3lcall datad3: cjnz a, #e7h,ymov r2, #ddhmov r4, r0setb 01hy: mov a, r4 ;led倒计时显示mov b, #10div a, bmob dptr, #ledmapmovc a, a+dptrmov p1, amov a, bmovc a, a+dptrmov p0, aledmap: db c0h,f9h,a4h,b0h,99h,92h,82h,f8h,80h,90hjnb 00h, wait ;判断是否要计数车流量jb p3.3, wait ;判断是否有车经过wait:jnb tf0, wait ;50ms一次扫描完毕sjmp startint1:jnb 01h, u ;判断车向inc r5u: inc r6retiint0:setb p3.4 ;中断服务子程序,闯红灯或紧停按键jb p3.7, $lcall delayclr p3.4retidata:mov a, r6 ;车流量数据处理及红绿灯时间调整mov b,

温馨提示

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

评论

0/150

提交评论