已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东交通职业技术学院毕业论文题目: 基于AT89C51单片机的交通灯设计 学院: 计算机工程学院 专业: 交通安全与智能控制 学生姓名: 钟文标 指导教师: 曹成涛 开题日期2010 年09 月02 日设计期限2010 年09 月02日起2010 年10 月10日止答辩日期2010 年10 月 21 日广东交通职业技术学院毕业设计(论文)指导教师评语指导教师评语:指导教师评定成绩: 指导教师签名 年 月 日广东交通职业技术学院毕业设计(论文)答辩评语答辩委员会评语:答辩成绩: 答辩小组组长签名 年 月 日基于AT89C51单片机的交通灯设计摘 要:本系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片来设计交通灯控制器。本方案为了简化对路口的操作,采取了四相位对称(不对称)放行的方式进行控制。实现了通过AT89S51芯片的P0口和P2口中的P2.0-P2.4口控制数码管的显示功能,用P1口控制红、绿、黄灯点亮的功能及上电时通过P1口中的P1.0-P1.4口接按键实现方案选择功能。用P1口和P3.0-P3.1、P3.6-P3.7模拟路口红绿灯情况并及人行道红绿灯情况。使用外部中断进入修改参数状态和紧急状态,修改参数使用P1.4-P1.7(按键分别是相位选择,加一,减一及确定修改功能)。系统实用性强、操作简单、扩展性好。关键词:AT89C51、单片机、交通信号灯Abstract:The system used by the U.S. company ATMEL microcontroller AT89S51, as well as other chips to design traffic light control. To simplify the programs operation of intersection, take a four-phase symmetric (asymmetric) controlled release manner. Achieved through the AT89S51 chip port P0 and P2 in the mouth of the P2.0-P2.4 port to control the digital tube display, with the P1 port to control the red, green and yellow light on the function and power through the mouth of the P1 P1 .0-P1 .4 port access key implementations options. With the P1 port and P3.0-P3.1, P3.6-P3.7 analog intersection traffic lights and sidewalks and traffic lights of the situation. Modify parameters using external interrupt status and enter a state of emergency, to modify parameters using the P1.4-P1.7 (respectively, phase selection buttons, plus one, minus one, and determine the modified functions). System is practical, simple and good scalability.Keywords: AT89C51, single-chip, traffic lights目录第一章 引言1第二章 交通管理方案论证32.1 设计任务32.2 方案介绍32.2.1 方案1设计思想42.2.2 方案2 设计思想52.2.3 方案比较6第三章 交通灯系统硬件设计73.1 单片机概述73.2 系统构成83.3芯片选择与介绍93.3.1 AT89S51芯片93.3.2 交通灯控制线路图12第四章 交通灯软件设计154.1 程序设计流程图154.2延时的设定204.2.1 计数器初值计算204.2.2 相应程序代码214.3 程序的主控制循环调用224.4 方案选择子函数234.5 修改时间子函数234.6 对现有程序的扩充24第五章 实验平台265.1实验平台265.2实验步骤275.2.1 编写程序代码275.2.2 按照系统硬件连线图连接好系统并调试285.3实验遇到的问题,解决方法及结果285.3.1 实验问题285.3.2 实验问题的解决285.3.3 实验结果(请看硬件演示)29第六章 总结与展望30第七章 致谢31第八章 参考文献32第九章 程序实现代码33第一章 引言第一章 引言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。第59页 共60页第二章 交通管理方案论证第二章 交通管理方案论证2.1 设计任务南北(A)、东西(B)两干道交于一个十字路口,各干道有一组绿、黄、红、左转绿四个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。红灯的设计时间为相对相位的绿+左转绿+2个黄灯时间,南北绿灯为60秒、南北左转绿灯为30秒、东西绿灯为45秒、东西左转绿灯为20秒,。设A道和B道的车流量不相同,A为主干道,B为次干道。2.2 方案介绍把设计任务细化为八个状态,其对应状态:如图2-1图2-1 状态转换图整个交通灯控制由八个状态组成,可以用程序设计实现,也可用时序逻辑实现.以下方案就是分别用了这两种方法。2.2.1 方案1设计思想采用分模块设计的思想,程序设计实现的基本思想是一个计数器 , 选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换, 由于每一个模块的计数都不是相同, 这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数, 如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。以主干道为例,简述其设计思想。如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表如:表2-1状态主干道预置数次干道预置数160红灯23红灯330(左转)红灯43红灯5红灯456红灯37红灯25(左转)8红灯3表2-1 置数表由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的状态去判断是否定时达到1秒,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表如:表2-2状态主干道灯显示次干道灯显示1绿灯红灯2黄灯红灯3左转绿灯红灯4黄灯红灯5红灯绿灯6红灯黄灯7红灯左转绿灯8红灯绿灯表2-2 红绿灯变化表通过这张表就可以用单片机及其他必要的元器件实现功能。本方案采用模块化编程,编程代码可以重复调用,编码冗余低,占用空间比一体化(汇编)编程占用空间小,可读性高,修改容易。但由于本方案的数码管显示部分没有采用锁存芯片,而是与I/O口直接连通,对于后面的修改模块编程有一定难度。2.2.2 方案2设计思想状态转换表如:表2-3状态主干道灯显示次干道灯显示1 (60S)绿灯红灯2 (03S)黄灯红灯3(30S)左转绿灯红灯4(03S)黄灯红灯5 (45S)红灯绿灯6 (03S)红灯黄灯7 (25S)红灯左转绿灯8 (03S)红灯黄灯表2-3 状态转换表本方案介绍:本方案是用汇编语言编写,具有较强的时序性,精度高,适合在时序要求高的场合使用。但用汇编编写有明显的不足,它具有高耦合性,使阅读和修改有一定难度,对于初学者更是难以弄懂,更不符合现代的编程低耦合高内聚要求。2.2.3 方案比较方案1(以下称1)用了内部定时器及模块化设计,而方案2(以下称2)采用的是一体化(汇编)设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案,而1体现了极限编程的思想。我们从中可以得出的是,我们最终的设计应该尽量使用内部定时器及模块化设计。对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。 第三章 交通灯系统硬件设计第三章 交通灯系统硬件设计3.1 单片机概述单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。它主要是作为控制部分的核心部件。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。所以本系统基于这些原因而选用AT89S51芯片来设计这个交通信号灯系统。3.2 系统构成XL400开发板一块,发光二极管16个(都是红色的),一块万能板,一条跳线,一条数据下载线。系统结构框图如:图3-1键盘控制方案选择AT89S51片机系统LED灯显示红绿灯状态与LED倒计时模块接口电路逻辑编程图3-1 系统结构框图系统各部分工作:(1)程序设置初始时间,通过AT89S51单片机内部相应寄存器来实现。(2) 由AT89S51单片机的定时器每秒钟通过P0口及P2.0-P2.4口向数码管送信息,显示红、绿、黄灯的点亮时间情况;由AT89S51的P1口显示每个灯的点亮情况。(3) AT89S51通过程序设置各个信号灯的点亮时间,通过程序设置南北方向的绿、左转绿时间依次为60秒、30秒,东西方向的绿、左转绿时间依次为45秒、25秒,红灯时间为各对称相位的放行时间之和。 (4)通过AT89S51单片机的P3口来控制系统是工作。其中P3.2和P3.1控制修改功能和特殊状态。3.3芯片选择与介绍3.3.1 AT89S51芯片选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:1、为一般控制应用的 8 位单片机2、晶片内部具有时钟振荡器(传统最高工作频率可至 33MHz)3、内部程式存储器(ROM)为 4KB4、内部数据存储器(RAM)为 128B5、外部程序存储器可扩充至 64KB6、外部数据存储器可扩充至 64KB7、32 条双向输入输出线,且每条均 可以单独做 I/O 的控制8、5 个中断向量源9、2 组独立的 16 位定时器10、1 个全双工串行通信端口11、8751 及 8752 单芯片具有数据保密的功能12、单芯片提供位逻辑运算指令AT89S51各引脚功能介绍:如图3-2图3-2 AT89S51VCC:ATAT89S51 电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反向放大器输入端。XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间加入一个 20PF 的小电容,可以使系统更稳定, 避免噪声干扰而死机。 RESET:AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:EA为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这个引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为ATAT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Program Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。ATAT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。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负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0A7,再配合端口2所送出的A8A15合成一组完整的16位地址总线,而定位地址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当作一般I/O端口使用外,若是在ATAT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当作I/O来使用了。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负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。3.3.2 交通灯控制线路图 (1)交通信号灯控制器主模块: 如图3-3图3-3 交通信号灯控制器主模块(2)交通信号灯模块: 如图3-4图3-4 交通信号灯模块(3)人行道信号灯模块: 如图3-5图3-5 人行道信号灯模块(4)方案选择模块: 如图3-6图3-6 方案选择模块(5)参数修改模块: 如图3-7图3-7 参数修改模块第四章 交通灯系统软件设计第四章 交通灯软件设计4.1 程序设计流程图(1) 程序设计总框图:如图4-1 开 始键盘事件处理等 待 键 盘 事 件初始化显示程序处理图4-1 程序设计框图 (2)程序总体流程图:如图4-2图4-2程序总体流程图(3)方案执行程序总体流程图:如图4-3 图4-3 方案执行程序总体流程图(4)执行显示子函数及灯的状态的具体流程图:图4-4图4-4 执行显示子函数及灯的状态的具体流程图(5)中断后修改参数的具体流程图:图4-5图4-5外部中断0后修改参数的具体流程图(6)外部中断1后紧急状态的具体流程图:图4-6图4-6外部中断1后紧急状态的具体流程图流程图说明:图中定时器在每50ms中断一下,设置为循环20次(此时为1秒),每1秒以后,R0,R1自动减1。程序中的判断在相等情况下从右边出,不相同的情况往下走。4.2延时的设定延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法。4.2.1 计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式: TC=MC式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为216;在方式2和3为28 ; 算法公式:T=(MTC)T计数 或TC=MT/T计数T计数是单片机时钟周期的12倍;为定时初值如单片机的主脉冲频率为12,经过分频方式TMAX213微秒8.192毫秒方式TMAX216微秒65.536毫秒显然秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题实现秒的方法:我们采用在主程序中设定一个初值为0的软件计数器和使T1定时50毫秒。这样每当T1到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器加1,然后判断它是否等于20。为20表示秒已到可以返回到输出时间显示程序。4.2.2 相应程序代码(1)定时器的设置定时器需定时毫秒,故0工作于方式。初值计算: TC=MT/T计数21650ms/1us=15536=3CBOH TH0=(65536-50000)/256; TL0=(65536-50000)%256;(2)初始化函数void init()TMOD=0x01;/确定定时器0的工作方式为工作方式1TH0=(65536-50000)/256;/装入定时器0初始值,高八位TL0=(65536-50000)%256; /装入定时器0初始值,低八位EA=1;/开总中断EX0=1;/开外部中断0EX1=1;/开外部中断0ET0=1;/开外部定时器中断1 TR0=1;/定时器1开始工作IT0=0;/外部中断0低电平触发/IT1=0;/外部中断0低电平触发(3)相应定时器0中断服务子程序void timer0()interrupt 1 p+;/用于定时的计数,实现1S的定时TH0=(65536-50000)/256;/重新装初始值TL0=(65536-50000)%256;程序的软件延时:AT89S51的工作频率为033MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); delay为一个双重循环,精确到1ms延时1秒,只需要调用delay(1000)就能实现。由于单片机的运行速度很快其他的指令执行时间可以忽略不计。4.3 程序的主控制循环调用代码如下:void main()/主函数init();/初始化硬件g_time_ns_ok=60;/设置南北绿灯时间为60秒gl_time_ns_ok=30;/设置南北左转绿灯时间为30秒g_time_we_ok=45;/设置东西绿灯时间为45秒gl_time_we_ok=20;/设置东西左转绿灯时间为20秒r_time_we=g_time_ns+y_time*2+gl_time_ns;/计算东西方向的红灯时间while(p4)/超过所有相位后,清0count=1; if(count=1)/ key_select按了一次,选择方案一change_ns_gtime();/方案一的函数if(count=2)/ key_select按了两次,选择方案二change_ns_gltime();/方案二的函数 if(count=3)/ key_select按了三次,选择方案三change_we_gtime();/方案三的函数if(count=4)/ key_select按了四次,选择方案四change_we_gltime();/方案四的函数 4.6 对现有程序的扩充 当由于紧急需要对道路进行长时间通行时,就要保持该道路更长时间的通行。下面以南北方向为例进行紧急通行为例,主要实现黄闪警告及主干道通行。代码如下:void int1_int()interrupt 2P0=table0;ns_shi=0;ns_ge=0;we_shi=0;we_ge=0;ns_g_sig=0;we_r_sig=0;delay(500);ns_g_sig=ns_g_sig;ns_shi=ns_shi;ns_ge=ns_ge;we_shi=we_shi;we_ge=we_ge;we_r_sig=we_r_sig;delay(500); 第五章 实验平台第五章 实验平台5.1实验平台我们采用的是Keil Software生产的Cx51编译器。运行在Windows XP操作平台下。 开启计算机进入Keil C51编译器介面。如图5-1(1) Keil C51编译器介面:如图5-1图5-1 Keil C51编译器介面(2)加入需要编译的文件:如图5-2图5-2 加入需要编译的文件(3)编译、连接的文件:如图5-3图5-3 编译、连接的文件(提示无错误,无警告)(3)生成十六进制文件:如图5-4图5-4 生成十六进制文件5.2实验步骤5.2.1 编写程序代码程序代码分为6个模块:中断修改模块,中断紧急情况模块,主函数模块,显示模块,交通信号灯模块,算法模块。(见程序实现代码)5.2.2 按照系统硬件连线图连接好系统并调试调试程序 打开Keil软件,新建工程; 选择芯片; 新建文档,把编写好代码写入文档并保存了C文件; 把保存的文档加载到Source Group;编译程序;设置转换成16进制;运行程序的结果;2. 把编译好的16进制文件(红绿灯控制器.hex) 输入单片机AT89S51仿真器和对其进行初始化。3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。5.3实验遇到的问题,解决方法及结果5.3.1 实验问题(1)数值在显示是出现跳动或闪烁现象;(2)多个数值如何显示;(3)相位如何同步;(4)显示数值时,如何更改显示时间5.3.2 实验问题的解决(1)数值显示时出现跳动或闪烁现象时因为没有相对的硬件,例如锁存器等。但一般动态扫描超过8个数码管才会出现闪烁问题,而本系统只有4个数码管,所以可以排除是硬件的问题,通过仔细阅读和调试代码,发现原来的代码中的刷新率太低才会出现闪烁现象,而通过提高刷新率了就能解决这个问题。(2)对于对个数值的显示,我采用了动态扫描的方法。通过定时器0定时50ms,在通过标志来达到1S的准确定时及逻辑处理就能解决多个数值的显示问题。(3)对于相位的同步,我从实验中得出了一个相位的红灯时间=另一相位的绿灯+左转绿+2个黄灯时间。通过计算红灯时间就能很好的解决相位的同步问题。(4)对于参数的修改,我通过外部中断处理和定义变量就能很好的解决参数的修改问题。5.3.3 实验结果(请看硬件演示)第六章 总结与展望本系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片来设计交通灯控制。本方案为了简化对路口的操作,采取了四相位对称(不对称)放行的方式进行控制。实现了通过AT89S51芯片的P0口和P2口中的P2.0-P2.4口控制数码管的显示功能,用P1口控制红、绿、黄灯点亮的功能及上电时按键通过P1口中的P1.0-P1.4口实现方案选择功能。采用P1口和P3.0-P3.1、P3.6-P3.7模拟路红红绿灯情况并通过中断进入修改参数状态和紧急状态,修改参数使用P1.4-P1.7(按键分别是相位选择,加一,减一及确定修改功能)。系统实用性强、操作简单、扩展性好。系统不足:时间设定中没有绿灯闪烁时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。其次是代码较长及重复,没有考虑到代码的优化问题,如果代码规模继续增大或功能继续添加可能会使系统不能很好的运行起来。再者就是修改时间参数的问题,因为硬件上的限制,修改参数时数码管并不能一直点亮,同时按键有时会产生失灵现象,这样的现象可以说得上是功能上的缺陷,但受限与硬件,并没有更好的、通过软件来弥补的办法。第七章 致谢第七章 致谢随着交通信号灯系统的完成,我的大学生涯也随着已近尾声,回望这两年的学习生涯,脑海中浮现了生活和学习中的点点滴滴,都将随着收入我的脑海,我将做好准备,走入社会,实现自己的价值。在曹成涛博士的精心指导和严格要求下,我顺利地完成了这次毕业设计。在此我非常感谢曹成涛博士的严格要求,让我改掉平时做事不严谨的作风,同时我也获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习嵌入式方面的知识有极大的帮助。另外,我还十分感谢周志方、林晓辉、李少伟等多位老师。周志方老师是我编程的启蒙老师,他精美绝伦的编程风格深深地吸引着我,承蒙他的指引让我在学习上少走了很多弯路。在此,我忠心感谢单片机组的其它同学以及应用系各位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导、老师和同学。第八章 参考文献1胡汉才 单片机原理及其接口技术 M 清华大学出版,19962蔡美琴 MCS-51系列单片机系统及其应用 高等教育出版社 2004.23付家才 单片机控制工程实践技术M 化学工业出版社,2004.54潘新民 微型计算机控制技术 M 人民邮电出版社,1999.95余锡存 单片机原理及接口技术M 西安电子科技大学出版社,2000.76雷丽文 等.微机原理与接口技术M 电子工业出版社,1997.27蒋万君 在论循环时序电路的简便设计J 机电一体化,2005 第5期8周立功 增强型80C51单片机速成与实战 北京航空航天大学出版社2004.59何立民 单片机应用技术选编 北京航空航天大学出版社 2004.310何立民 单片机应用技术选编 北京航空航天大学出版社 2004.311何立民 MCS-51系列单片机应用系统设计 北京航空航天大学出版社, 1995.12李华 MCS -51系列单片机实用接口技术M 北京航空航天大学出版社,199313周航慈 单片机应用程序设计技术M 北京航空航天大学出版社,1991. 14张志良等 单片机原理与控制技术M 机械工业出版社,2001 年7 月第1 版15陆坤 电子设计技术1 电子科技大学出版社, 199716梁文海 单片机AT89C2051构成的智能型频率计J 现代电子技术,2002 17谢自美 电子线路设计实验测试M 华中理工大学出版社,200118吴金戎,沈庆阳 8051单片机实践与应用 M 清华大学出版社, 2003. 第九章 程序实现代码第九章 程序实现代码/*-1、(南北直行绿灯(小于3秒时绿闪),东西红灯-南北人行道绿灯,东西人行道红灯2、(南北直行黄灯(小于3秒时黄闪),东西红灯-南北人行道红灯,东西人行道红灯3、(南北左转绿灯(小于3秒时绿闪),东西红灯-南北人行道红灯,东西人行道红灯4、(南北左转黄灯(小于3秒时黄闪),东西红灯-南北人行道红灯,东西人行道红灯5、(南北红灯,东西直行绿灯(小于3秒时绿闪)-南北人行道红灯,东西人行道绿灯6、(南北红灯,东西直行黄灯(小于3秒时黄闪)-南北人行道红灯,东西人行道红灯7、(南北红灯,东西左转绿灯(小于3秒时绿闪)-南北人行道红灯,东西人行道红灯8、(南北红灯,东西左转黄灯(小于3秒时黄闪)-南北人行道红灯,东西人行道红灯9、全红3秒-南北人行道红灯,东西人行道红灯g_time_ns y_time gl_time_ns r_time_we1=g_time_ns+y_time*2+gl_time g_time_we gl_time_we r_time_ns1=g_time_we+y_time*2+gl_time_we -*/#include /包含52芯片的文件头,可改为reg51.h,区别在于寄存器的多少#include#define uint unsigned int#define uchar unsigned charsbitkey_select=P14;/外部中断1后,用于修改时间的按键,作用是选择要修改的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婚庆行业前台工作总结
- 定制家具设计师工作要点
- 《美丽的海洋世界》课件
- 购物服务员工作总结
- 前台文员情绪智力提升方案计划
- 《苗木霜害怎么预防》课件
- 2024年广东省汕尾市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2021年甘肃省嘉峪关市公开招聘警务辅助人员辅警笔试自考题2卷含答案
- 2023年四川省雅安市公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 2021年云南省楚雄自治州公开招聘警务辅助人员辅警笔试自考题1卷含答案
- 国家电网招聘之财务会计类题库含完整答案(必刷)
- 建筑物拆除的拆除工厂考核试卷
- 广东省深圳市2023-2024学年高二上学期期末测试英语试卷(含答案)
- 2024年手术室带教工作计划样本(5篇)
- 乘风化麟 蛇我其谁 2025XX集团年终总结暨颁奖盛典
- 人教版一年级数学2024版上册期末测评(提优卷一)(含答案)
- 医疗护理员理论知识考核试题题库及答案
- 湖北省荆州市八县市区2023-2024学年高二上学期1月期末联考数学试题 附答案
- 保密知识培训
- 2024年同等学力申硕英语考试真题
- 2024年人教版八年级历史下册期末考试卷(附答案)
评论
0/150
提交评论