基于STC89C52单片机控制的智能交通灯设计_第1页
基于STC89C52单片机控制的智能交通灯设计_第2页
基于STC89C52单片机控制的智能交通灯设计_第3页
基于STC89C52单片机控制的智能交通灯设计_第4页
基于STC89C52单片机控制的智能交通灯设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、郑州航空工业管理学院毕 业 论 文(设 计) 届 电气工程及其自动化 专业 班级题 目 基于单片机控制的智能交通灯 姓 名 学号 指导教师 职称 二一 三 年 五 月 十五 日摘 要交通灯是现代交通非常重要的一个组成部分,一套好的交通灯系统往往对提升城市交通运输效率,降低事故发生率有至关重要的影响。智能交通灯控制系统通常要实现车流量自动控制和在紧急情况下能够手动切换信号灯让特殊车辆优先通行。该文主要论述了智能交通灯控制系统的软件实现,还对stc89c52单片机的结构特点和重要引脚功能进行了介绍,外接外围电路构成基本电路,编写c语言程序,用keil编译调试,同时对智能交通灯控制系统的设计进行了分

2、析。最后利用proteus软件对交通灯控制系统进行仿真,用来实现了交通微控制器的模拟。关键字:单片机;stc89c52;车流量;智能交通灯;keil;proteusabstracttraffic lights modern transport a very important part of a good set of traffic lights system often have a crucial impact in raising the efficiency of urban transport, reduce the accident rate. intelligent traff

3、ic light control system is usually to achieve automatic control and traffic flow in case of emergency lights can be manually switched to special vehicles priority access. this paper mainly discusses the intelligent traffic light control system software, but also on the structural characteristics and

4、 stc89c52 microcontroller pin functions are introduced important, external peripheral circuits basic circuit, the preparation of c language program, using keil compiler debugging, while the intelligent traffic light control system design were analyzed. finally, proteus software for traffic light con

5、trol system simulation is used to achieve a traffic microcontroller simulation.key word: scm; stc89c52; traffic; intelligent traffic lights; keil; proteus目 录第1章 概述11.1 交通灯的历史和现状11.2 智能交通系统的发展前景和意义11.3 设计要求2第2章 硬件设计32.1 单片机相关介绍32.2 部分电路设计42.2.1 供电42.2.2 复位电路52.2.3 时钟电路52.2.4 锁存器62.2.5 数码管7第3章 软件设计103

6、.1 基本原理103.2 设计方案103.2.1 时间设定103.2.2 紧急状态功能113.2.3 车流量监控113.3 中断程序设计123.4 交通灯基本功能的状态转换123.5 总程序流程图143.5.1 单片机的i/o分布143.5.2 锁存器74hc573的i/o分布153.6 编程软件163.6.1 keil软件的使用173.6.2 编译18第4章 系统的仿真204.1 仿真软件204.2 系统仿真204.3 结果分析22第5章 总结24致谢25参考文献26附 录27第1章 概述1.1 交通灯的历史和现状如今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一

7、技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两色旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯

8、,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁

9、行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。本设计的单片机控制交通灯就是基于信号灯。1.2 智能交通系统的发展前景和意义虽然我国发展起步较晚,引入智能交通概念和技术只有十几年的历史。但是,近年来我国智能交通技术的应用发展处于蓬勃上升趋势。从“十五”开始由国家科技部牵头,联合交通运输部、公安部、住建部等部门积极开展交通运输体系研究,加大在国家科技攻关项目计划中的实施和示范城市的建设。到“十二五”期间,我国智能交通系统的发展趋势主要体现在通过智能化和信息化手段;推动综合交通运输、城市公共交

10、通的高效发展;实现交通节能减排、车辆安全出行等方面。“十二五”时期,智能交通将通过综合运用信息采集、处理、传输、发布等多种技术,加强在路网运行监测和应急处理系统、交通出行信息服务系统、交通诱导系统、智能停车系统、不停车收费系统等多方面的应用和发展。通过这些智能交通系统发布动态有效的信息服务,可高效引导车辆出行前、出行中的路径选择,提供从出行计划到实现的一站式服务,从而提高车辆出行效率和交通基础设施的承载能力,并通过加强对路网的运行监测,提高突发事件处理效率,减少车辆无序和无效出行,降低车辆燃油消耗和尾气排放,减少城市能耗和碳排放,逐步将传统的交通出行模式向更加高效、经济、安全的绿色出行模式转变

11、,从而缓解城市交通拥堵。目前我国公路、铁路、水路、航空、管道等各种交通运输方式已经初步形成网络,如何统筹各种运输方式发展,积极推进综合交通运输体系建设,提升综合交通运输网络的运营效率,将是“十二五”期间面临的关键问题。智能化交通管理控制与服务,交通运行智能化监测分析及车路协同关键技术等。通过这些智能交通技术的研究和应用,将加强对道路异常信息及突发事件的监测预警,强化交通事故及事件的预防,提高交通事故处理效率,为车辆出行创造更加安全舒适的交通运行环境,进一步提高安全服务水平。1.3 设计要求由于现今阶段交通问题已经成为城市的重要问题,传统的交通灯控制系统僵化简单已不适用于今天城市的发展,所以一种

12、带有车流量监控和多种特殊中断的智能交通灯系统的设计制作尤其重要。智能交通灯控制系统模型采用单片机作为主控制器,用于双车道十字路口的车辆的交通管理,每个方向具有通行、等待、禁行三种通行指示灯计时牌显示路口转换剩余时间,在出现紧急情况时可由交警手动实现全路口车辆禁行的状态,并且可对通行时间做出调整,可随时切换东西通行、南北通行两种状态。最为重要的是改变传统的交通灯控制系统单调、简单的缺点,实现信号指示灯通行和禁行显示时间根据车流量的变化而变化,有效的解决传统交通灯的车流不平衡的问题。第2章 硬件设计2.1 单片机相关介绍单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计

13、算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和i/o接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的cpu功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。本次智能交通系统选用了市面上较为常见的stc89c52单片机,stc89c52 是一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash 存储器。使用高密度非易失性存储器技术制造,与工业80c51 产

14、品指令和引脚完全兼容。使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。stc89c52的管脚图如图2-1所示:图2-1 stc89c52管脚图2.2 部分电路设计智能交通控制系统采用标准stc89c52单片机作为控制器;通行和禁行倒计时显示采用两位led数码管,仿真时为了更形象地观察通行和禁行时间采用了4个2位led数码管,其中南北两个并联,东西两个并联;信号指示灯采用单色发光二极管;led数码管显示采用动态扫描,以节省端口数;特殊中断(紧急情况中断、时间设定中断)和南北通行状态、东西通行状态互换手动完成; 电源端口为usb,可连接至稳定的电源,方便快捷,适用范围广。

15、按以上系统框架设计,单片机端口资源刚好满足要求。该系统具有电路简单,设计方便,显示亮度高,可靠性高等特点。整个电路组成的大致框图如图2-2所示:图2-2 采用数码管的动态扫描交通灯控制系统2.2.1 供电为使模块稳定工作,须有可靠电源。本设计考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。本方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。考虑到实际情况和电路的简洁,本设计采用了第二套方案,同时在考虑到突发断电的情况,还增加了一个后备电源,在

16、打开后备电源的时候,如果主电源断电,后备电源瞬间接通继续供电,这里会利用到二极管的单向导电性。2.2.2 复位电路如图2-3所示:图2-3 复位电路图单片机复位后各寄存器的状态:a00h,表明累加器已被清零; psw00h,表明选寄存器0组为工作寄存器组;sp07h,表明堆栈指针指向片内ram 07h字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08h单元中;p0-p3ffh,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;ip00000b,表明各个中断源处于低优先级;ie000000b,表明各个中断均被关断。2.2.3 时钟电路时钟电路如图2-4所示:时钟电路中

17、最为重要的就是晶振,晶振的作用是为系统提供基本的时钟信号。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。图2-4 时钟电路图通常一个系统共用一个晶振,便于各部分保持同步。晶振结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振提供的时钟频率越高,那单片机的运行速度也就越快。2.2.4 锁存器锁存器选用两个74hc573,两锁存器连接如图2-5:图2-5 两个锁存器连接图通常在锁存器的前面要添加一个上拉电阻rp1,作用就是将不确定的信

18、号通过一个电阻嵌位在高电平,电阻同时起限流作用,使得锁存器不至于由于电流过大而烧坏。上拉电阻的2-9号管脚分别接到c52单片机的p0.0-p0.7端口分别定义为d0,d1,d2,d3,d4,d5,d6,d7标号,如图2-6所示: 图2-6 单片机与上拉电阻的连接然后分别连接到两个锁存器的d0-d7端口。然而u2锁存器的右端口q0-q7分别接数码管的a-g和dp引脚来实现数码管的段选任务,当然u2的左下角引脚接地,le引脚接dula端口,而dula端口上接单片机c52的p2.6引脚,目的是来实现数码管的段选接通任务,当p2.6端口得到高电平时,此时数码管段选得电,可以使得数码管显示出我们想要显示

19、的数字。u3锁存器的右端口q0,q1分别接we1与we2端口,q4,q5分别接we3,we4端口,而we1,we2端口上接南北路方向数码管的1和2引脚,we3,we4端口上接东北路方向数码管的1和2引脚,来实现两个方向显示不同数字。u3锁存器的左下角引脚依然接地,le引脚接wela端口,而wela端口上接单片机c52的p2.7引脚。目的是实现数码管的位选通任务。2.2.5 数码管不管将几个数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光的,从图2-7(a)中可看出,一个数码管的引脚是10个,显示一个8字需要7小段,另外还有一个小数点,所以其内部一共有8个小的发光二极

20、管,最后还有一个公共端,生产商为了封装统一,单位数码管都封装10个引脚,其中第3和第8引脚是连接在一起的。而它们的公共端又可分为共阳极和共阴极,图2-7(b)为共阳极内部原理图,本次设计就是应用的共阳极显示数码管。 (a) 引脚 (b) 共阳极图2-7 数码管的内部原理图共阳极数码管其内部8个发光二极管的所有阳极全部连接在一起,电路链接时,公共端接高电平,因此我们要点亮那个发光二极管就需要给阴极送上低电平,此时显示数字的编码与共阴极编码是相反的关系,数码管内部发光二极管点亮时,也需要5ma以上的电流,而且电流不宜过大,否则会烧毁发光二极管。由于单片机的i/o口送不出如此大的电流,所以数码管与单

21、片机连接时需要加驱动电路,可以用上拉电阻的方法或使用专门的数码管驱动芯片,然而这里使用的上拉电阻与75hc573锁存器的联合运用,其输出电流较大,电路接口简单,可以借鉴使用。本设计中的数码管是四个两位的数码管,其本质与一位的一样,十字路口南北方向的倒计时数码管如图2-8所示:图2-8 数码管的连接数码管的a-g和dp引脚分别接到锁存器u2的q0-q7端口,来实现数码管的段选显示,当单片机的p2.7端口得到高电平时,锁存器u3选通,即位选选通。而锁存器u2,u3都上接单片机的p0端口,当p0=0x01时,数码管的十位点亮,然后让p2.6端口得电,锁存器u2选通,由于本次设计是连接的共阳极的数码管

22、,所以再令p0=0xc0时,段选成功,数码管十位显示出“0”。东西方向的数码管显示类似。共阳极数码管显示p0口赋值如表2-1:表2-1共阳极数码管显示p0口赋值数字0123456789p0值0xc00xf90xa40xb00x990x920x820xf80x800x90第3章 软件设计3.1 基本原理由于本设计采用单片机stc89c52设计交通灯控制系统,用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入led数码管就可以显示倒计时以提醒行使者,更具人性化。据此,智能交通系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,led倒计时模块模块

23、接受输出。系统的总体框图如图3-1所示:图3-1系统的总体框图单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到led数码管上实时显示。在此过程中随时调用急停按键和时间调节中断。3.2 设计方案智能交通系统设计了时间设定、紧急状态、南北通行与东西通行选择三种特殊功能和流量监控等重要创意功能。3.2.1 时间设定时间设定功能是为自由设定通行时间设计的,使用外部中断0实现,当int0(p3.2)端口输入低电平时中断程序执行,进入中断后,先关闭全局中断,此时可根据p3.6和p3.7调整绿灯通行时间,其中p3.6可以增加东西绿灯发亮时间,p3.7 可以增加南北绿灯发

24、亮时间。当时间调节完毕时可按返回键(p3.0)开启全局中断并跳出时间设定。3.2.2 紧急状态功能紧急状态功能是为交通路口出现紧急状况时能及时停止交通运行,让特殊车辆通过设计的,由外部中断1控制来实现,当int1(p3.3)端口输入低电平时中断程序执行,进入中断后,各路禁止通行,通行时间显示为0并关闭全局中断,计数器停止计数,按下返回键时,开启全局中断并返回到断点。 3.2.3 车流量监控高速公路车流量监测系统实现了智能化的高速公路车流量实时监测和管理,在改善交通环境,保证高速公路交通安全和道路畅通、提升服务质量和运营水平等方面将起到重要的作用。流量监控体现了交通控制的智能性,使得交通灯的通行

25、时间能根据车流的大小进行自动变换,其中流量监测的方案有三:方案一:空气管道检测技术空气管道检测是接触式的检测方法,在高速公路主线的检测点拉一条空心的塑料管道并作固定,一端封闭,另一端连接计数器,当车辆经过塑料管道时,车轮压到空气管道,管内空气被挤压而触动计数器进行计算车流量的方法。显然,该方法只能获取单一的车辆信息,且方法繁琐,寿命短,已经被磁感应检测等技术所取代。方案二:超声波检测技术 超声波检测器是基于声波的传播和反射原理,通过对发射波和反射波的时差测量实现位移测量的设备。由超声波发生器发射一束超声波,再接收从车辆或地面的反射波,根据反射波返回时间的差别,来判断有无车辆通过。方案三:红外检

26、测技术红外检测器是顶置式或路侧式的交通流检测器,一般采用反射式检测技术。反射式检测探头由一个红外发光管和一个红外接收管组成。由调制脉冲发生器产生调制脉冲,经红外探头向道路上辐射,当有车辆通过时,红外脉冲从车体反射回来,被接收管接收后经过解调、放大、整流滤波后输出一个检测信号送入单片机。显然,方案一有方法繁琐、寿命短的缺点;方案二由于信号衰减,以及马路噪声源较多的缘故稳定性和抗干扰性不好;方案三最好,因为方案三不必安装多余的车辆检测硬件,从而减少开支,经济实用,而且当前技术已经非常成熟,因此本设计采用方案三。通过监控系统的实施,可完成准确及时采集高速公路车流的各种数据和信息;对高速公路车流实现全

27、程、实时、不间断的监控;建立多种信息发布渠道,为驾驶员提供信息服务,以便调整行驶路线,进而达到交通流动态平衡;根据已掌握的车流量信息,迅速做出有针对性的处理和优化控制方案;对交通事故、突发状况等能做出快速反应,迅速排除事故根源,采取相应的应急措施,提供救援服务;建立高速公路车流量数据库,用以支持道路运行状况评价,为改善道路经营和交通管理的决策提供数据支持。 3.3 中断程序设计中断是分优先级的,本程序的紧急中断和时间设定中断优先级是最高的,当响应这两个中断程序的时候cpu关闭全局中断ea=0,当中断程序执行完毕时开启全局中断令ea=1;而定时器中断优先级列在紧急中断和时间设定中断之后,所以在紧

28、急中断和时间设定中断程序执行时数码管是不计时的,中断执行过程如图3-2所示; 键盘扫描是实时刷新的,而且每个按键都写有去抖动程序以免产生不必要的仿真和实物演示结果紊乱。图3-2 中断执行过程3.4 交通灯基本功能的状态转换由于交通灯包含直行、左拐和黄灯闪烁,所以基本状态可以分为六种s1-s6,状态之间的转换及条件如图3-3所示: 图3-3 各状态基本功能其中车流量大小的判断方法为:本次设计设定30秒内南往北通过车辆达不到15辆时,判断该方向为少车,设定通行为30秒,当30秒时间内南往北或者北往南任意一个方向通过的车辆达到15辆及以上时证明该状态车辆较多,下一次该方向绿灯方形时间延长10秒,改为

29、40秒,当40秒内通过车辆达到25辆时判断为拥挤,下一次绿灯放行时间仍为40秒,当40秒内通过车辆达不到25辆时判断为少车,下次绿灯放行时间改为30秒,依次类推。这样检测,某次可能不准确,但下次肯定能补回来,累积计算是很准确的。由于南往北、北往南显示时间相同,所以只要一个方向多车,下次时间就要加长。东往西、西往东也一样,如图3-4所示:图3-4 车流量大小判断规则3.5 总程序流程图 智能交通灯控制系统要求车流量检测及倒计时的显示,程序包含了外部中断、定时器中断、按键扫描、车流量按键模拟等部分,在程序编写中南北车流量检测计数使用的是计数器t1按键模拟,而东西车流量使用的是普通按键模拟。其中车流

30、量大小判断条件已经给出,流程图如图3-5所示:图3-5 总程序流程图3.5.1 单片机的i/o分布智能交通灯中stc89c52单片机的i/o分配表如下所示:表3-1 c52单片机控制系统的i/o分配表p0.0d0p1.5green_bp0.1d1p2.0k8p0.2d2p2.6dulap0.3d3p2.7welap0.4d4p3.0k7p0.5d5p3.1k6p0.6d6p3.2k5p0.7d7p3.3k4p1.0red_ap3.4k3p1.1yellow_ap3.5k2p1.2green_ap3.6k1p1.3red_bp3.7k0p1.4yellow_b如表4-1所示对于c52单片机的端口

31、p0.0- p0.7接9引脚上拉电阻rp1的下端8个引脚,最上端的引脚接高电平。p1.0- p0.5分别接,red_a(南北向红灯),yellow_a(南北向黄灯),green_a(南北向绿灯),red_b(东西向红灯),yellow_b(东西向黄灯),green_b(东西向绿灯),分别控制其路灯的亮灭。p2.0接k8, p2.6接dula控制锁存器的段选,p2.7接wela控制锁存器的位选,p3.0- p0.7分别接k7,k6,k5,k4,k3,k2,k1,k0来用于实现按键控制。3.5.2 锁存器74hc573的i/o分布智能交通系统中74hc573锁存器u2,u3的接口分配表如下所示:表

32、3-2 74hc573锁存器u2,u3的接口分配表d0(u2,u3)d0q3(u2)dd1(u2,u3)d1q4(u2)ed2(u2,u3)d2q5(u2)fd3(u2,u3)d3q6(u2)gd4(u2,u3)d4q7(u2)hd5(u2,u3)d5q0(u3)we1d6(u2,u3)d6q1(u3)we2d7(u2,u3)d7q4(u3)we3q0(u2)aq5(u3)we4q1(u2)ble(u2)dulaq2(u2)cle(u3)wela如表4-2所示对于74hc573锁存器u2,u3的d0-d7分别接到c52单片机的p0.0-p0.7引脚。u2的le引脚接到c52单片机的p2.6端口

33、,也就是dula端口,来实现锁存器的段选功能,而u3的le引脚接到c52单片机的p2.7端口,也就是wela端口来实现锁存器的位选功能。u2的q0-q7分别接到数码管的a,b,c,d,e,f,g,h引脚,来实现数码管的数字显示,最后u3中的q0,q1分别接we1,we2。q4,q5分别接we3,we4来选择某一位的数码管显示。3.6 编程软件硬件平台结构一旦确定,大的功能框架基本形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,因为软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不但易于编程和调试,

34、也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。运用keil软件来进行编程,但由于汇编比较繁琐,在这次设计中我采用了常用的c语言编程来实现,更易于编写与调试。3.6.1 keil软件的使用首先是启动keil4,建立一个工程,设置工程存储路径,并为自己建立的工程起一个名字“智能交通灯”如图3-6所示:图3-6 工程起名其次是选择选用单片机的型号:stc89c52 ,这一步是建立工程中的c文件,稍后要在这里面编写程序。点击新建保存按钮,并给文件起名为智能交通灯.c:注意后缀名为.c,如图3-7所示:图3-7 建立c文件最后点击target1文件树,再点

35、击source group1右键单击鼠标,显示如下,选中add file to source group 1,将保存的c文件添加到文件树中:图3-8 将c文件添加到工程中3.6.2 编译用keil软件环境编写和修改程序,keil里面带有单片机89c52运行很多的库程序,方面快捷。当程序编写完毕编译无错误时,点击左上角的按钮,点击output项,并且在“create hex file”前面打上对勾,通过编译可以生成后缀名为.hex的文件,此文件用于仿真和实物程序下载所用,如图3-9所示:图3-9 keil软件中生成hex文件方法点击左上角的按键,进行编译,查看所编的c语言程序是否存在语句方面错误

36、,如图3-10所示:图3-9 编译显示结果是否错误在此操作的同时就已经在所保存的文件夹里生成了hex文件,该操作对后续的proteus软件进行仿真有着直接的关系。第4章 系统的仿真了解虚拟物理原型的功能,在目标板没有制作或投产前,就可以对硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件的情况下,进行相应的程序设计和调试,也可由仿真电路图直接导出绘制成印制电路板(pcb)。4.1 仿真软件本次设计使用的是proteus软件,proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是

37、目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。proteus软件具有其它eda工具软件的功能。这些功能是:1原理布图2pcb自动或人工布线3spice电路仿真。革命性的特点:1互动的电路仿真用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部

38、分iic器件。2仿真处理器及其外围电路可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,proteus建立了完备的电子设计开发环境。4.2 系统仿真按照硬件要求将仿真软件的界面中的各个器件进行连接,如图4-1所示:图4-1 proteus仿真界面将各个部件连接好之后,双击单片机c52在program file中选择keil生成的hex文件,将其导入单片机即可仿真,如图4-2所示:图4-2 仿真时选中keil生成的hex文件最后点击proteus左下角的运行按键

39、即可进入仿真界面,如图4-3所示:图4-3 点击play运行仿真4.3 结果分析1、初始状态南设定北通行30s,初始状态南北设定通行30s,因为 东西禁行时间=南北通行时间+黄灯闪烁时间5s+南北左行时间10s,所以东西禁行时间为45s,在没有其他操作的情况下仿真效果图就如图4-4所示:图4-4 初始状态/车流量较小显示仿真效果图由于本次设计使用的是两个锁存器来实现数码管的动态扫描显示,来显示两位数字的,而在仿真软件中却不能实时的体现出来,因此不能完全的显示出两位数字,若是做成实物再使得扫描的时间间隔短些,根据人类的视觉暂留即可看到两位数的递减显示。2、 在没有任何操作的情况下,南北绿灯通行时

40、间显示完毕后南北黄灯闪烁五秒,东西禁行时间=南北左行时间10s+黄灯闪烁时间5s,所以东西禁行的时间为15s,仿真效果图就如图4-5所示:图4-5 黄灯闪烁效果图这次仿真实现了课题任务的要求,通过这次仿真发现和解决了很多问题,例如,在调试过程中还是遇到了硬件电路图布局不合理,按键抖动的现象,不过通过调整布局电路图趋于规范合理,通过增加去抖动函数显示也稳定了很多。第5章 总结本次设计以stc89c52单片机为核心,程序是有c语言实现,用keil软件进行编译,可大大加快调试进度。设计的交通灯可用于十字路口的车流量控制车辆的交通管理,显示采用两位的数码管,可以直观的显示红绿灯的开放和关闭的时间,当遇

41、到紧急状况时可以启动紧急模式;交通灯的通行时间可根据大中小城市进行更改。南北通行时间相同,东西通行时间相同,不能单独控制。当然设计中还是存在了一些问题未能解决掉,比如南北通行状态、东西通行状态互换是由手动完成的,并没有完全的实现全自动的控制;数码管的显示在仿真软件界面的显示未能直观的看到具体的两位数字,数字是跳动的,没能够截出一个完整的数字,而在实际的十字路口数码管的动态扫描还是可以运用的。通过这次毕业设计,我不仅将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。本次毕设使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧

42、(特别是c语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。在整个毕业设计过程中,我花费了大量的时间和精力,更重要的是,我在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。在此,忠心感谢老师以及许多同学的指导和支持。我会继续努力的学习,大胆创新,使自己得到更大的提升。致谢本科两年的学习生活即将结束,回顾这两年来的学习生活,感受颇深,最重要的是收获丰厚

43、。在论文的写作过程中,有很多困难,无论是在开始的理论学习阶段,还是在论文的选题、资料查询、开题、研究和撰写的每一个环节,都没有离开过老师的指导和同学的帮助。借此机会我向导师和授课老师表示衷心的感谢!同时,我要感谢各位帮助我的同学,感谢他们给予我的帮助,他们为我撰写论文提供了不少建议和帮助。再次感谢我的指导老师,谢谢您的教诲。经历了五年的大学生活,也感谢我的家人和那些永远也不能忘记的朋友,他们的支持与情感,是我永远的财富。参考文献1 郭天祥.新概念51单片机c语言教程m.电子工业出版社,2009.2 彭伟. 单片机c语言程序设计实训120例m. 电子工业出版社,2010.63 赵佩华.单片机接口

44、技术及应用m.北京:机械工业出版社 ,2003.4 绕庆和.mcs - 51 单片机实用技术m.北京:电子工业出版社 ,2003.5 李广弟.单片机基础m.北京:北京航空航天大学出版社,1992.6 何立民.单片机应用技术大全m.北京:北京航空航天大学出版社, 1994.7 张毅刚.单片机原理及接口技术m.哈尔滨:哈尔滨工业大学出版社,1990.8 谭浩强.单片机课程设计m. 北京:清华大学出版社,1989.附 录附录:源程序#include #define uchar unsigned char /*定义字符串类型为无符号型*/#define uint unsigned int /*定义整型

45、为无符号整型*/uchar code a10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*数码管显示单位*/uchar code b4=0xf4,0xf8,0xf1,0xf2; /*p2口,低有效,数码管选通*/uchar code c6=0xf3,0xf5,0xb6,0xde,0xee,0x76; /*p1口,低有效*/char sn2=45,we2=30,sn=30,we=45,sn1=30,we1=45 ; /定义变量 char sn_g=30,we_g=30,y=5;char lsn=0,lwe=0,m=0,n=0; ucha

46、r i,k=0,count=0; void delay(uchar t);/*定义延时函数*/void light();/*定义交通灯闪烁函数*/void led(); /*定义数码管显示函数*/void count1();/计算下次南北车流量void count2();/计算下次东西车流量void flow1();/监测南北车流量void flow2();/监测东西车流量/定义按键sbit dula=p26;sbit wela=p27;sbit k0=p37;/*开关k0接p37管脚*/sbit k1=p36;/*开关k1接p36管脚*/sbit k2=p35;/*开关k2接p35管脚*/s

47、bit k3=p34;/*开关k3接p34管脚*/sbit k4=p33;/*开关k4接p33管脚*/sbit k5=p32;/*开关k5接p32管脚*/sbit k6=p31;/*开关k6接p31管脚*/sbit k7=p30;/*开关k7接p30管脚*/sbit k8=p20;/*开关k8接p20管脚*/*程序初始化*/void init(void) /*12mhz */ tmod=0x51; /*计数器t1用模式1,为16位计数器,定时器用模式1*/ th1=0; /计数清零 tl1=0; /计数清零 th0=(65536-50000)/256; /*0x3c*/ tl0=(65536-

48、50000)%256; /*0xb0,1机器周期1us,计50000个数,用时50ms*/ it0=1;/*外部中断0为边沿触发方式*/ et0=1;/*允许t0中断*/ et1=1;/*允许t1中断*/ tr0=1;/*启动计数器*/ tr1=1;/*启动计数器*/ ea=1;/*cpu开放总中断*/ ex0=1;/*允许外部中断0中断,即允许响应端口p32中断*/ ex1=1;/*允许外部中断1中断,即允许响应端口p33中断*/监测南北车流量void flow1()n=th1*256+tl1;lsn=n;/监测东西车流量void flow2() if(k8=0) /*p20=0*/ del

49、ay(10);/*延时,把抖动的时间抛掉*/ if(k8=0) while(!k8)/*当松开k1开关时,跳出空循环,执行后面的程序*/ light(); led(); m+; lwe=m; /*计算下次交通灯亮的时间*/void count1()if(k=6)if(sn1=sn_g)if(lsn15)sn1=sn_g;we1=sn_g+15;else sn1=sn_g+10,we1=sn_g+25;elseif(sn1=sn_g+10)if(lsn25)sn1=sn_g,we1=sn_g+15;else sn1=sn_g+10,we1=sn_g+20;void count2()/计算东西方向

50、if(k=3)if(we2=we_g)if(lwe15)we2=we_g;sn2=we_g+15;else we2=we_g+10,sn2=we_g+25;elseif(we2=we_g+10)if(lwe25)we2=we_g,sn2=we_g+15;else sn2=we_g+25,we2=we_g+10;/*中断0时间设定处理程序*/void int0(void) interrupt 0 ea=0;/*cpu禁止响应一切中断*/ p1=0xf6,p0=a0;/东西南北方向均红灯亮,p0口输出0 for(;)/*无条件循环*/dula=1;p0=a(sn_g)/10;dula=0;wela

51、=1;p0=0x01; /南北方向数码管显示可通行时间的十位wela=0;delay(1000); /*延时*/dula=1;p0=a(sn_g)%10;dula=0;wela=1;p0=0x02; /*南北方向数码管显示可通行时间的个位*/ wela=0;delay(1000); /*延时*/dula=1;p0=a(we_g)/10;dula=0;wela=1;p0=0x10; /东西方向数码管显示可通行时间的十位wela=0;delay(1000); /*延时*/dula=1;p0=a(we_g)%10;dula=0;wela=1;p0=0x20; /东西方向数码管显示可通行时间的个位wela=0;delay(1000); /*延时*/

温馨提示

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

评论

0/150

提交评论