交通灯设计优秀_第1页
交通灯设计优秀_第2页
交通灯设计优秀_第3页
交通灯设计优秀_第4页
交通灯设计优秀_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业论文(设计) 题 目 基于单片机控制的 交通灯的设计 学生姓名 学 号 专业班级 指导教师 完成时: 201年月 间日 摘 要 交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。本人选择制作交通灯作为课题加以研究。分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,利用单片机89S51为核心部件,外加定时器、复位电路、晶振电路、显示电路等,设计一个比较符合交通规则的模拟交通灯,包括人行道,车行道、南北东西左转、应急车道,以及基本的交通灯的功能,同时给出了一种简单实用的城市交通灯控制系统的硬件电路设计方

2、案。 本文主要介绍了一个基于80C51单片机的交通灯控制系统,详细描述了利用89C51开发交通灯控制系统的过程,重点对硬件设计、软件编程、调试分析以及各模块系统流程进行了详细分析,对各部分的电路也一一进行了介绍。本系统由80C51单片机、键盘、交通灯演示组成,。该系统可以方便的实现交通灯控制。该系统结构简单,可靠性高,修改程序简单(方便加入或改变功能),有较好的应用前景。 关键词:交通控制;单片机;80C51 ABSTRACT Traffic lights, traffic to the effective control, to ease the traffic flow, increase

3、 road capacity, reduce traffic accidents have a demonstrable effect. I choose to create a traffic light as a subject to be studied. Analysis of the status of a modern urban traffic control and management issues, combined with the actual situation of urban and rural transportation on the traffic ligh

4、t control system works with microcontroller 89S51 as the core components, plus the timer, reset circuit, crystal oscillator circuit, display circuit, design a more in line with the traffic rules of the simulation of traffic lights, sidewalk, roadway, north and south things turn left emergency lane,

5、and the basic function of the traffic lights, at the same time gives a simple and practical urban traffic light control system hardware circuit design. This paper describes a 80C51 microcontroller-based traffic light control system, detailed description of the use 89C51 development process of the tr

6、affic light control system. Focus on a detailed analysis of the hardware design, software programming, analysis and debugging process of the modular system, on the part of the circuit are introduced one by one. The system is made up of 80C5l microcomputer, keyboardand traffic lights display.The syst

7、em can easily achieve traffic light control The system is simple, high reliability, easy to modify the program (easy add or change functions), has good prospects. KEY WORDS: Traffic Control, Single Chip Microcomputer , 80C51目 录 摘要 第1章 绪论0 1.1 课题研究的背景及意义0 1.2 当前的研究现状0 1.3 本文的主要工作和难点1 第2章 道路交通灯的总体系统的设

8、计方案 2 2.1 总体设计方案2 2.1.1 系统机构总框架2 2.1.2 交通管理的方案论证2 2.1.3 控制电路框图2 2.2 电路的工作原理3 本章小结2.3 4 硬件设计3章 第 5 单片机介绍3.1 MCS-515 简介3.1.1 5 时钟脉冲电路3.1.3 10 复位电路3.1.4 10 电源电路3.1.5 11 硬件原理图3.2 11 本章小结3.3 11 第4章 软件设计 13 4.1 主程序设计13 4.1.1 主程序流程图13 4.2 初始化程序13 4.3 延时程序13 4.4 源程序14 4.5 本章小结14 第5章 调试分析 15 5.1 KEIL51软件简介15

9、 5.1.1 系统概述15 5.1.2 KeilC51单片机软件开发系统的整体结构16 5.2 调试步骤17 5.2.1 逻辑的调试17 5.2.2 模拟电路板的调试19 5.3调试中的问题及解决方案19 5.4 本章小结20 结论与展望21 致谢22 参考文23献 第1章绪论 1.1 课题研究的背景及意义 随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。为了

10、解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他办法来满足日益增长的交通需求。在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。 1.2 当前的研究现状 路是交通的物质基础,有路才能通车,行人。我国是一个文明古国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近

11、几年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是: a. 路网密度低;b. 交通干道少;c. 路口平面交叉。 道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表现是: 城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。 我国城市机动车车种繁杂,从50年代的老式车到80年代的新型车,从大货车到小轿车都在一个平面上行驶,不少城市拖拉机还是一种

12、主要运输工具,前面一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。 1.3 本文的主要工作和难点 通过对城市主要十字路口交通控制规律的观察发现,我国现有交通灯或者交通规则的一个缺陷:十字路口,右拐的车辆经常和过马路的行人冲突,因为车辆右拐和行人过马路是同时进行的,根本没有时间段的划分,所以车和人就像打篮球运球过人,要么过去,要么撞一下,而且经常是车不让人,人不让车,交通事故经常在这里发生,有的路口有协管给车和人分配时间,但大多数路口都是没协管的,因而在这次设计中,为了弥补这个缺陷,特意为行人留出时间过马路,

13、实行人车分流,在此期间各路转弯不再进行。 本文主要工作是利用80C51单片机设计一个交通灯控制系统。在一个主要十字路口,纵向为主干道,横向为支干道。主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。 它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪。亮灯黄道干支、烁第2章道路交通灯的总体系统的设计方案 2.1 总体设计方案 采用MSC-51系列单片机和可编程并行I接口芯片为中心件来设计交通灯控制器,进行交通灯路口的管理。它用

14、简单的硬件电路模拟交通灯信号灯的交替变换,实现红绿灯循环点亮。用LED数码管作为倒计时指示,通行指示灯采用发光二极管,LED显示动态扫描,以节省端口,特殊紧急车辆通行采用实时中断完成。 2.1.1 系统机构总框架 本系统是针对一个大型十字路口设计的交通信号灯控制系统。东西方向和南北方向各设有红灯、黄灯、绿灯各一组。状态一为主干道绿灯亮,支干道红灯亮20秒,状态二为主干道黄灯亮,支干道红灯闪烁4秒状态三为主干道红灯亮,支干道绿灯亮12秒,状态四为主干道红灯闪烁,支干道黄灯亮4秒。四个状态一直循环,并有数码管显示时间。 2.1.2 交通管理的方案论证 东西、南北两干道交于一个十字路口。各干道有红灯

15、、黄灯、绿灯各一组,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,P1.0P1.2分别控制支干道的红、黄、绿灯,P1.3P1.5分别控制主干道的红、黄、绿灯。 2.1.3 控制电路框图 89C52 系倒计时显 交通 统 示 信号灯 处 理 控制电路框图图2.1 口赋值控制交通信号灯口,通过对本系统每个信号指示灯接一个对应的I/OI/O的状态来指挥交通。在此基础上按键可以触发单片机进入中断,进而控制交通信号灯的状态。 2.2 电路的工作原理 本系统的电路较简单,实物图如附录一所示。共设有12个LED,其中红色的4个,绿色的4个,黄色的4个。 所

16、有LED阳极接+5V电源,阴极与对应的I/O口相连。当单片机上电后,系统对其初始化,所有灯灭。当给任何一个I/O口赋值0时,与其对应的LED点亮。这样,通过对P1的合理赋值并控制其延时时间就可以实现基本的交通控制。 主支干道图2.2 图图中,t表示时间,MG表示主干道绿灯,MY表示主干道黄灯,MR表示主干道红灯,SG表示支干道绿灯,SY表示支干黄道灯,SR表示支干道红灯, 由交通灯工作时序流程图可以看出,交通灯应满足两个方向的工作时序:主干道绿灯和黄灯亮的时间等于支干道红灯亮的时间;支干道绿灯和黄灯亮的时间等于主干道红灯亮的时间。若假设每个单位脉冲周期为1秒,则主干道绿灯、黄灯、红灯分别亮的时

17、间为20秒、4秒、16秒,支干道红灯、绿灯、黄灯分别亮的时间为24秒、12秒、4秒。一次循环为40秒。 主干道黄灯亮时,支干道红灯以1Hz的频率闪烁;支干道黄灯亮时,主干道红灯以1Hz的频率闪烁。 主、支干道各信号灯亮时,需配合有时间提示,以数字显示出来,方便行人与机”的计数方式工作,直至减到1动车观察。主、支干道信号灯亮的时间均以每秒减“0”后主、支干道个信号灯自动转换。 2.3 本章小结 本章主要介绍了道路交通灯的总体系统的设计方案。设计出系统机构的总框架,并且对交通管理的方案进行了论证,在发现现有交通灯控制系统存在不足的基础上,在本系统中对其进行了改善,设计出了能实现本次设计要求的方案。

18、设计出本系统的。图明说步一进了行进理原作工其对并,框路电制控第3章硬件设计 3.1 MCS-51单片机介绍 MCS-51单片机广泛应用在简单的设计中,例如交通灯、遥控器等,在我们的生活中都有应用。单片机已经称为我们生活不可缺少的东西。 3.1.1 简介 单片机是微机的一种,是将单片机的CPU、存储器、I/O接口和总线制作在一块芯片上的大规模集成电路。由于单片机具有体积小、功能全、价格低、开发应用方便等优点,又可将其嵌入产品的内部,因此得到了及其广泛的应用。 (1)单片机的发展史 单片机的发展大致可分为4个阶段。 a. 初始阶段 由于受到技术发展的影响,单片机的制作工艺较差、集成度较低。这个阶段

19、的单片机多采用双片结构,且功能比较简单。有些单片机在应用过程中,由于内部资源太少,需要外接其他功能的芯片才能实现应用功能。 b. 低性能阶段 在此阶段,单片机的功能有了进一步发展、相关的接口电路、定时器、计数器等都集成到一个芯片中。同时单片机被推向市场,促进了单片机的变革。 c. 高性能阶段 在这个阶段,单片机的品种逐渐增加,功能不断完善,其内部的RAM、ROM都有所增大,寻址范围也变大,并且增加了串行口和多级中断处理。 d. 16位单片机阶段 由于电子元件、系统结构和软件技术的不断进步,单片机的制造工艺和集成度都得到迅速发展,其内部资源得到了较大的发展,实时处理能力更强。 (2)单片机的内部

20、结构 单片机经过几十年的不断发展,其功能和组成结构基本已固定,内部结构示意图 所示。1-1如图a. 中央处理器(CPU) CPU是单片机的核心部件,根据CPU字长可分为1位机、4位机、8位机、16位机以及32位机,CPU的运算速度、处理数据能力、实施控制功能等性能都与CPU的字长有关,因此,字长是衡量CPU功能的主要指标。 b. 存储器 存储器按功能可分为程序存储器和数据存储器,由于单片机主要面向控制,因此一般需要大容量的程序存储器和较少的数据存储器,同时存储器类型也不一样。 c. 程序存储器 单片机内部程序存储器容量一般为1KB64KB,通常采用只读存储器(ROM)。采用只读存储器作为程序存

21、储器,不仅提高了可靠性,而且由于只读存储器的集成度较高、价格较低,降低了成本。 3.1单片机内部结构示意CPUd.数据存储单片机内部的数据存储量一般64B256,通常采用静态随即存储器RA),ROM并有少数单片机内采EEPRO作为数据存储器。数据存储器可分为工作寄存器、堆栈位标志和数据缓冲器使用RAM串接口及特殊功能部e. I/单片机内部有数量不等的并行接口,可以作为外界无输输出设备,通常也包含1个串行口,用于实现异步串行通信。特殊功能部件通常包括定计数器,其他定时中断系 A/PWDM等根据不同类型的单片机,其配置不同 (3)单片机应用系统 根据单片机应用场合及系统控制的要求不同,在规模、结构

22、上存在很大不同,根据使用功能器件的种类和数量,可分为基本系统和扩展系统。 1)基本系统 在此系统中,包含一个单片机,在该单片机中含有程序存储器和数据存储器,仅在外部配置了维持系统运行的基本部件,例如电源、输入/输出,除了这些,还包括不接口以及其他功能部件,因此也被称为最小系统,I/O扩充程序存储器、数据存储器、其结构示意图如图3.2所示。 复位电路 输入/输出 单片机电源电路 时钟电路 图3.2 单片机最小系统示意图 2)扩展系统 在大多数系统中,由于需要实现一些特殊的功能,采用最小系统无法满足系统的控制要求,所以要扩展特殊功能部件,弥补单片机内部资源的不足。单片机扩展系统通过并行I/O口或者

23、串行口做总线,在外部扩展了程序存储器、数据存储器、A/D转换等特殊部件,以满足控制系统的特殊要求,其结构示意图如3.3所示。 (4)单片机的发展趋势 随着科学技术的不断发展,单片机的工艺和集成度不断提高,其功能正朝着多功能、高性能的方向发展,主要体现在一下几方面。 1)各种等级的单片机性能提高 输输复位电单片电源电时钟电 EPROM程 并行接口 序存储器RAM数据存储器 串行接口 A/D D/A 单片机扩展系统钢3.3 图结构示意图 随着工艺技术和集成度技术的发展,许多低端单片机的性能有了较大的提高,甚至可以完成部分高端单片机才能实现的功能,其运算速度、功能和可靠性等方面也得到了快速的发展。

24、a. CPU功能增强 CPU的性能主要体现在数据处理的速度和精度上,通过增加CPU的字长、扩充硬件、提高总线速度和处理效率等手段,提高CPU的性能。 b. 内部资源增加 单片机除了CPU外还有其他部件,通过增强已有部件的性能和增加特殊功能的部件来提高单片机的性能。例如增大存储器的容量,现在一些高端单片机的程序存储器的ROM、EPROM、EEPROM或者FLASH都达到及时KB,而数据存储器的RAM也已达到及时KB。一般的控制系统要求的功能较多,采用较低端的单片机,由于其内部资源不够,无法实现控制要求,因此需要扩展部件,而扩展部件又会造成系统可靠性降低,所以要在工艺水平提高的基础上,尽量集成较多

25、的部件在单片机的内。单片机的特殊部件包括I/O口(并行口和串行口两种)、定时/计数器、AD/DA转换器、PWM输出等,通过在内部集成此类部件,可大大增强单片机的控制功能。 c. 寻址范围增加 寻址方式的多少直接反应了机器指令系统功能的强弱,寻址方式越多,其功能越强,灵活性越大,这也是衡量单片机性能的重要指标之一。现在已有部分单片机对外部存储器、I/O口寻址范围增加到几MB,甚至有单片机可以选择某些I/O口作为系统的扩展总线使用。 2)小型化、低功耗 在一些智能控制系统中,其整体系统体积较小,功率不大,因此要求单片机的体积和功耗都要在一定范围内,促使单片机向小型化、低功耗的方向发展。例如,199

26、2年美国推出的i80860超级单片机,运算速度为1.2亿次每秒,可进行32位整数运算、64位浮点运算,同时片内集成了一个三维图形处理器,可构成超级图形工作站。 3.1.2 管脚说明 图3.4 MCS-51引脚图 MCS-51单片机是采用40引脚双列直插封装的芯片,有些引脚具有两种功能,引脚如图3.4所示。引脚功能如下: Vcc :电源+5V。 VSS:接地。 XTAL1和XTAL2:使用内部振荡电路时,用来接石英晶体和电容;使用内部时钟时,用来输入时钟脉冲。 P0口:双向I/O口,既可以作地址数据总线口,也可作普通I/O口用。 P1口:准双向通用I/O口。 P2口:准双向口,地址总线口输出地址

27、高8位口。 P3口:多功能端口,既可以作普通I/O口用,也可以按每位定义的第二功能操作。 ALE/PROG:地址锁存信号输出端。在访问片外存储器时,ALE为高电平有效时,P0口输出地址低8位,用ALE信号做外部地址锁存器的锁存信号。?ALE =?OSC /6,可以 编程脉冲输入端。EPROM的8751是对PROG做系统中跟其他芯片的时钟源。第二功能RST/VPD:复位信号输入端。接通电源后,在该引脚施加大于两个机器周期(24个振荡周期)的高电平,就可使单片机完成内部的复位工作。第二功能是Vpd ,即备用电源输入端。当主电源Vcc 发生故障,降低到低电平规定值时,Vpd 将为RAM提供备用电源,

28、以保证存贮在RAM中的信号不丢失。 /EA/VPP :/EA=1时程序先片内后片外自动连续运行;例如:89C52内部有8K字的EEP-ROM就可使/EA=1,先从内程序存储区开始执行程序,当PC值超过内部8K字节(0000-1FFF),才会转到从2000H开始的外程序区执行程序,当/EA=0时程序直接从片外开始执行程序。在对8751的EPROM编程时,此引脚接编程电压12.5V。 /PSEN:片外程序存储器选通信号,低电平有效。 3.1.3 时钟脉冲电路 MCS-51的时钟可以有两种方式产生,一种是内部方式,利用芯片内部的震荡电路;另外一种为外部方式。本文根据实际需要和简便,采用内部震荡方式。

29、MCS=51内部有一个用于构成震荡器的高增益反响放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外警惕或陶瓷谐振器一起构成一个自激振荡器。 MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的是振荡时钟电路。外接晶体以及电容Cl和C2构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。晶体频率可在12MHz-12MHz之间任选,电容Cl和C2的典型值在20pF-100pF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所

30、以采取比较廉价的陶瓷谐振器。由于本系统应用的机器周期为l?s,所以晶振选择为12MHz,根据调试电容选择30pF 3.1.4 复位电路 MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段。有了它可以使程序从指定处开始执行,即从0000H地址单元开始执行程序。在MCS-51的时钟电路工作后,只要RST引脚上出现10ms以上的高电平时,单片机内部则出示复位。只要RST保持高电平,则MCS-51循环复位。只有当RST由高电平变低电平以后,MCS-5l才从0000H地的复位是由外部的复位电路来实现的。复位引脚通过施密特MCS-51址开始执行程序。触发器与复位电路相连。施密特触发器用来抑制

31、噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式。本系统采用两种方式的复合方式即上电位按钮复位式。 3.1.5 电源电路 由于单片机工作时需要的+5v电压,所以在设计电源电路时,需要一个电子元件能提供+5v电压,由于7805能够提供5V电压的三端稳压电源,在实际的电路控制中应用其作为电源电路较为广泛,在普通的电子元器件商场都有销售易于购买,并且技术相对成熟。7805一脚为电源输入段,二脚为公共接地段,三脚即为我们所需要的+5V电压输出端。本文采用最典型的7805提供电压的电路,即在7805的l脚和公共接地端(即2脚)之间接入03?F的电

32、容,在公共接地端和三脚+5V电压输出端之间接人0.1?F的电容。 3.2 硬件原理图 本系统利用89C52芯片对12个LED进行控制,实现交通信号灯的控制。同时,每个LED串接 一个阻值为330的电阻,以保证系统上电后通过LED的电流不会过大,防止其烧毁。 图3.5 硬件原理图 本章小结3.3 本章主要是关于本系统用到的硬件设计的介绍。文中对MCS-51单片机进行了介绍,系统阐述了本设计用到的89C52芯片各管脚功能,并且对时钟脉冲电路、复位电路和电源电路进行了一一解释。重点介绍了本系统的硬件原理图,对其进行了较为。明说的致细第4章软件设计 4.1 主程序设计 设计出程序的流程图以及初始、延时

33、程序及源程序。 4.1.1 主程序流程图 本系统在一般情况下循环执行信号灯状态流程,流程图如图4.1所示。 图4.1 信号灯状态流程图 主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。 它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪烁、支干道黄灯亮。 4.2 初始化程序 单片机上电时I/O口默认为高点平,需要在进入主函数时对P1进行附初值。因本系统中LED低电平时点亮,故给P1都赋值0xff,使LED全灭。 程序中用到外

34、部中断0和外部中断1,需要初始化,开总中断、开外部中断0和外部中断1,还需要选择触发方式,本系统中断中选择下降沿触发。 延时程序4.3 延时可有两种途径实现:软件延时和单片机内部的定时/计数器延时。软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。定时/计数器延时不占用CPU时间,但占用了硬件资源。本系统采用定时器延时,单次延时时间为50ms,晶振12MHz。 4.4 源程序 源程序参考附录一。 4.5 本章小结 本章主要介绍本论文中的软件设计部分。文中详细介绍了本系统的主程序设计、初始化程序、外部中断及延时程序,并附有程序中的各种流程图,使读者对本系统的。解了步一进了有计设第

35、5章调试分析 5.1 KEIL51软件简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器

36、等在内的完整开发方案,通过一个集成开发环境(?Vision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 5.1.1 系统概述 Keil C51是美国Keil Software公司出

37、品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil51的编译环境如图5-1所示。 图中: 标题栏:显示当前编译的文件 菜单条:有十项菜单可供选择,相应的所有操作命令均可在此菜单中查找; 工具栏:常用命令的快捷图标按钮;管理窗口:显示工程文件的工程、各个寄存器值的变化、参考资料等; 信息窗口:显示当前文件编译、运行等相关信息; 工作窗口:各种文件的显示窗口。 图5.1 Keil51的编译环境 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windo

38、ws界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 5.1.2 KeilC51单片机软件开发系统的整体结构 C51工具包的整体结构,其中?Vision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51创建生成库文件,也可以与库LIB

39、51。目标文件可由(.OBJ)编译器编译生成目标文件文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,注意事项 * 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的

40、31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。 5.2 调试步骤 进行逻辑调试、模拟电路的调试,还有解决在调试中出现的问题 5.2.1 逻辑的调试 Keil 51 编译指南: 第1步: 打开Keil51软件,首先弹出一个开机启动画面。 第2步: 然后进入Keil51的开发界面。下面简要介绍一下Keil51开发环境中各个区域的功能。 Keil51开发环境可以分为四个区域,分别为:菜单条、工程文件管理窗口、代码编译窗口和代码编译信息窗口四个部分。菜单条分为十项,所有的命令都可以在这里找到。下面的命令是一些常用的菜单命令,如

41、文件的打开、关闭及保存。其中编译命令最为常用。 中间靠左是工程文件管理窗口,这里可以看到当前工程中所包含的所有带编译的文件。工程文件管理窗口的右侧是代码编译窗口,这事我们最主要的工作区域。 最底层显示了代码编译的信息。当代码有语法错误时,可以在这里轻松的找到问题的所在。 开发工程的一般方法。Keil51步:下面以建立一个简单的工程为例,来说明3第单击Project菜单项,选择New Project项。 第4步:此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。单击保存。 第5步: 根据所用的器件,选择CPU的型号,单击确定。 第6步:Keil

42、51询问是否生成默认的配置文件,这个可选可不选,这里选定。单击Yes,观察工程文件管理窗口的变化。 第7步:在File菜单下单击New选项,新建文件。此时在代码窗口出现一“Text1”空白文档。 第8步: 在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。保存名写为text.c。单击保存。注意在对文件命名时必须加扩展名。 第9步: 在工程导航栏中Source Group 上单击右键,选Add File to Group Source Group 1'。 第10步: 此时弹出Add File 对话框。选中刚才保存的text.c文件。单击Add。 此时在工程文件管

43、理窗口中就会出现刚才所添加的文件text.c。 单击快捷菜单栏中的编译按钮,可以编译程序。步: 第11第12步: 单击Project菜单项,选择Option for Target Target 1'选项。 在弹出的对话框中可以对Project进行总体配置。 第13步: 选择Output 选项卡,单击Create HEX File ,代码输出格式应为HEX-80 。 第14步: 单击确定后,并重新编译。可以看到编译成功之后,Build 选项卡里又多了一项。这是生成的HEX 文件。 命令或工具栏中的进菜单项中的Start/Stop Debug Session 15步: 单击Debug 第入

44、调试界面。 命令或工具栏中的运行程序,单Debug 菜单项中的Go 第16步:单击调试界面 来结束程序。观察运行结果,若结果正确,便可通过下载软命令或Stop 击Running 件将它烧写到目标板上去。 这样,一个简单的Keil 51下的工程就完成了。 语言的编译调试基本上是一C对汇编语言文件的编译调试步骤和对Keil 51 注:样的,只是在第八步中用汇编语言进行代码的编写,并在保存文件时将扩展名加成 . asm。 本系统中,最初采用把9个状态分别设置成一个子函数的方法。在每个子函数中对在此状态中需要点亮的LED单独赋值,延时程序采用定时器延时,在主函数中设置调用子函数。但是在调试过程中遇到很

45、多问题,比如,LED并未按照理想的方式点亮或熄灭,也没有状态变化。在经过分析后,采用了另一种更为简单的方法,即给P1口和P2口整体赋值,如P1=0xff、P2=0xff即表示所有LED不点亮。每个状态只需赋一个或两个值,需要延时时只需调用延时程序。此外,对延时程序也进行了修改,把原有方案改为用CPU延时,这样,程序变得较为简单易行。 5.2.2 模拟电路板的调试 通过查找资料选择了合适的LED和电阻,合适阻值的电阻和LED串联能保证在通上电后LED的内部电流在允许范围内,防止LED因内部电流过大而被烧毁。 调试过程中,因不慎短路造成一个LED烧毁,相应的面包板的孔也烧毁。经过分析发现,LED和

46、电阻两端的引线都过长,在调试过程中如果不慎碰一下会造成LED被烧毁。所以,剪短阴线后重新安插面包板,消除了隐患。 5.3调试中的问题及解决方案 调试过程中遇到不少问题 问题一:上文逻辑调试中提到的问题,即LED并未按照预期的流程点亮,而且也没有状态变化。 解决方案:经过进一步分析后,发现把每个状态设置成一个独立的子函数然后在主函数中调用的方法并不能很好的按照理想状态执行。所以,对程序进行了整体修改,在主函数中直接给P1口赋值,如P1=0xff即表示所有LED不点亮。这样,程序变得精简而且易行,不用调用太多子函数,减少出错。 问题二:个别状态LED的点亮状态和理想的状态并不相符。个别不该点亮的却点亮了,而该

温馨提示

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

评论

0/150

提交评论