版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文(设计)题目基于单片机控制的交通灯的设计_学生姓名学号专业班级指导教师完成时间:201年月日摘要交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。本人选择制作交通灯作为课题加以研究。分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,利用单片机89S51为核心部件,外加定时器、复位电路、晶振电路、显示电路等,设计一个比较符合交通规则的模拟交通灯,包括人行道,车行道、南北东西左转、应急车道,以及基本的交通灯的功能,同时给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。本文主要介绍了一个基于80C51单片机的交通灯控制系统,详细描述了利用89C51开发交通灯控制系统的过程,重点对硬件设计、软件编程、调试分析以及各模块系统流程进行了详细分析,对各部分的电路也一一进行了介绍。本系统由80C51单片机、键盘、交通灯演示组成,。该系统可以方便的实现交通灯控制。该系统结构简单,可靠性高,修改程序简单(方便加入或改变功能),有较好的应用前景。关键词:交通控制;单片机;80C51
ABSTRACTTrafficlights,traffictotheeffectivecontrol,toeasethetrafficflow,increaseroadcapacity,reducetrafficaccidentshaveademonstrableeffect.Ichoosetocreateatrafficlightasasubjecttobestudied.Analysisofthestatusofamodernurbantrafficcontrolandmanagementissues,combinedwiththeactualsituationofurbanandruraltransportationonthetrafficlightcontrolsystemworkswithmicrocontroller89S51asthecorecomponents,plusthetimer,resetcircuit,crystaloscillatorcircuit,displaycircuit,designamoreinlinewiththetrafficrulesofthesimulationoftrafficlights,sidewalk,roadway,northandsouththingsturnleftemergencylane,andthebasicfunctionofthetrafficlights,atthesametimegivesasimpleandpracticalurbantrafficlightcontrolsystemhardwarecircuitdesign.Thispaperdescribesa80C51microcontroller-basedtrafficlightcontrolsystem,detaileddescriptionoftheuse89C51developmentprocessofthetrafficlightcontrolsystem.Focusonadetailedanalysisofthehardwaredesign,softwareprogramming,analysisanddebuggingprocessofthemodularsystem,onthepartofthecircuitareintroducedonebyone.Thesystemismadeupof80C5lmicrocomputer,keyboardandtrafficlightsdisplay.ThesystemcaneasilyachievetrafficlightcontrolThesystemissimple,highreliability,easytomodifytheprogram(easyaddorchangefunctions),hasgoodprospects.KEYWORDS:TrafficControl,SingleChipMicrocomputer,80C51目录摘要 I第1章绪论 11.1课题研究的背景及意义 11.2当前的研究现状 11.3本文的主要工作和难点 2第2章道路交通灯的总体系统的设计方案 32.1总体设计方案 32.1.1系统机构总框架 32.1.2交通管理的方案论证 32.1.3控制电路框图 32.2电路的工作原理 42.3本章小结 5第3章硬件设计 63.1MCS-51单片机介绍 63.1.1简介 63.1.3时钟脉冲电路 113.1.4复位电路 123.1.5电源电路 123.2硬件原理图 123.3本章小结 13第4章软件设计 144.1主程序设计 144.1.1主程序流程图 144.2初始化程序 144.3延时程序 144.4源程序 154.5本章小结 15第5章调试分析 165.1KEIL51软件简介 165.1.1系统概述 165.1.2KeilC51单片机软件开发系统的整体结构 175.2调试步骤 185.2.1逻辑的调试 185.2.2模拟电路板的调试 205.3调试中的问题及解决方案 205.4本章小结 21结论与展望 22致谢 23参考文献 24 绪论1.1课题研究的背景及意义随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的问题,城市交通事故、交通堵塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,即大量修筑道路基础设施的办法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的资源和财力以及环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他办法来满足日益增长的交通需求。在现有的道路交通条件下,实施交通控制和管理,充分发挥现有道路的通行能力正是解决这一矛盾的途径之一,大量事实已经证明这种方法的有效性。1.2当前的研究现状路是交通的物质基础,有路才能通车,行人。我国是一个文明古国,许多城市已有上千年的历史,城市布局和道路结构是在漫长的历史进程中逐步形成的,近几年虽然作了些改建和扩建,但毕竟还难以冲破原来的基本格局。我国城市道路普遍存在的弊端是:a.路网密度低;b.交通干道少;c.路口平面交叉。道路状况与车辆状况的综合作用形成了我国城市交通的特殊性,主要表现是:城市路网稀,干道少,间距大,市区人口稠密,出行需求集中,迫使车辆集中于少数干道上行驶。至于中小城市,干道特征更为明显,往往只有一两条干道贯穿全市,而其他支路上交通量极小。从流量变化情况来看,除外围过境干道外,都是有一定规律的,高峰小时基本上都集中在几个时段内。我国城市机动车车种繁杂,从50年代的老式车到80年代的新型车,从大货车到小轿车都在一个平面上行驶,不少城市拖拉机还是一种主要运输工具,前面一辆旧车挡道,尾随的新型车只能跟着爬行,过交叉口时经常出现启动慢的车挡住启动快的车,使交通工程师精心设计的交通配时方案不能很好发挥效益。1.3本文的主要工作和难点通过对城市主要十字路口交通控制规律的观察发现,我国现有交通灯或者交通规则的一个缺陷:十字路口,右拐的车辆经常和过马路的行人冲突,因为车辆右拐和行人过马路是同时进行的,根本没有时间段的划分,所以车和人就像打篮球运球过人,要么过去,要么撞一下,而且经常是车不让人,人不让车,交通事故经常在这里发生,有的路口有协管给车和人分配时间,但大多数路口都是没协管的,因而在这次设计中,为了弥补这个缺陷,特意为行人留出时间过马路,实行人车分流,在此期间各路转弯不再进行。本文主要工作是利用80C51单片机设计一个交通灯控制系统。在一个主要十字路口,纵向为主干道,横向为支干道。主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪烁、支干道黄灯亮。道路交通灯的总体系统的设计方案2.1总体设计方案采用MSC-51系列单片机和可编程并行I/O接口芯片为中心件来设计交通灯控制器,进行交通灯路口的管理。它用简单的硬件电路模拟交通灯信号灯的交替变换,实现红绿灯循环点亮。用LED数码管作为倒计时指示,通行指示灯采用发光二极管,LED显示动态扫描,以节省端口,特殊紧急车辆通行采用实时中断完成。2.1.1系统机构总框架本系统是针对一个大型十字路口设计的交通信号灯控制系统。东西方向和南北方向各设有红灯、黄灯、绿灯各一组。状态一为主干道绿灯亮,支干道红灯亮20秒,状态二为主干道黄灯亮,支干道红灯闪烁4秒状态三为主干道红灯亮,支干道绿灯亮12秒,状态四为主干道红灯闪烁,支干道黄灯亮4秒。四个状态一直循环,并有数码管显示时间。2.1.2交通管理的方案论证东西、南北两干道交于一个十字路口。各干道有红灯、黄灯、绿灯各一组,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,P1.0~P1.2分别控制支干道的红、黄、绿灯,P1.3~P1.5分别控制主干道的红、黄、绿灯。2.1.3控制电路框图倒计时显示倒计时显示89C52系统处理交通信号灯图2.1控制电路框图本系统每个信号指示灯接一个对应的I/O口,通过对I/O口赋值控制交通信号灯的状态来指挥交通。在此基础上按键可以触发单片机进入中断,进而控制交通信号灯的状态。2.2电路的工作原理本系统的电路较简单,实物图如附录一所示。共设有12个LED,其中红色的4个,绿色的4个,黄色的4个。所有LED阳极接+5V电源,阴极与对应的I/O口相连。当单片机上电后,系统对其初始化,所有灯灭。当给任何一个I/O口赋值0时,与其对应的LED点亮。这样,通过对P1的合理赋值并控制其延时时间就可以实现基本的交通控制。图2.2主支干道图图中,t表示时间,MG表示主干道绿灯,MY表示主干道黄灯,MR表示主干道红灯,SG表示支干道绿灯,SY表示支干黄道灯,SR表示支干道红灯,由交通灯工作时序流程图可以看出,交通灯应满足两个方向的工作时序:主干道绿灯和黄灯亮的时间等于支干道红灯亮的时间;支干道绿灯和黄灯亮的时间等于主干道红灯亮的时间。若假设每个单位脉冲周期为1秒,则主干道绿灯、黄灯、红灯分别亮的时间为20秒、4秒、16秒,支干道红灯、绿灯、黄灯分别亮的时间为24秒、12秒、4秒。一次循环为40秒。主干道黄灯亮时,支干道红灯以1Hz的频率闪烁;支干道黄灯亮时,主干道红灯以1Hz的频率闪烁。主、支干道各信号灯亮时,需配合有时间提示,以数字显示出来,方便行人与机动车观察。主、支干道信号灯亮的时间均以每秒减“1”的计数方式工作,直至减到“0”后主、支干道个信号灯自动转换。2.3本章小结本章主要介绍了道路交通灯的总体系统的设计方案。设计出系统机构的总框架,并且对交通管理的方案进行了论证,在发现现有交通灯控制系统存在不足的基础上,在本系统中对其进行了改善,设计出了能实现本次设计要求的方案。设计出本系统的控制电路框图,并对其工作原理进行了进一步说明。硬件设计3.1MCS-51单片机介绍MCS-51单片机广泛应用在简单的设计中,例如交通灯、遥控器等,在我们的生活中都有应用。单片机已经称为我们生活不可缺少的东西。3.1.1简介单片机是微机的一种,是将单片机的CPU、存储器、I/O接口和总线制作在一块芯片上的大规模集成电路。由于单片机具有体积小、功能全、价格低、开发应用方便等优点,又可将其嵌入产品的内部,因此得到了及其广泛的应用。(1)单片机的发展史单片机的发展大致可分为4个阶段。a.初始阶段由于受到技术发展的影响,单片机的制作工艺较差、集成度较低。这个阶段的单片机多采用双片结构,且功能比较简单。有些单片机在应用过程中,由于内部资源太少,需要外接其他功能的芯片才能实现应用功能。b.低性能阶段在此阶段,单片机的功能有了进一步发展、相关的接口电路、定时器、计数器等都集成到一个芯片中。同时单片机被推向市场,促进了单片机的变革。c.高性能阶段在这个阶段,单片机的品种逐渐增加,功能不断完善,其内部的RAM、ROM都有所增大,寻址范围也变大,并且增加了串行口和多级中断处理。d.16位单片机阶段由于电子元件、系统结构和软件技术的不断进步,单片机的制造工艺和集成度都得到迅速发展,其内部资源得到了较大的发展,实时处理能力更强。(2)单片机的内部结构单片机经过几十年的不断发展,其功能和组成结构基本已固定,内部结构示意图如图1-1所示。a.中央处理器(CPU)CPU是单片机的核心部件,根据CPU字长可分为1位机、4位机、8位机、16位机以及32位机,CPU的运算速度、处理数据能力、实施控制功能等性能都与CPU的字长有关,因此,字长是衡量CPU功能的主要指标。b.存储器存储器按功能可分为程序存储器和数据存储器,由于单片机主要面向控制,因此一般需要大容量的程序存储器和较少的数据存储器,同时存储器类型也不一样。c.程序存储器单片机内部程序存储器容量一般为1KB~64KB,通常采用只读存储器(ROM)。采用只读存储器作为程序存储器,不仅提高了可靠性,而且由于只读存储器的集成度较高、价格较低,降低了成本。CPUCPUROM中断系统串行I/O口并行I/O口定时器RAM图3.1单片机内部结构示意图d.数据存储器单片机内部的数据存储量一般为64B~256B,通常采用静态随即存储器(RAM),还有少数单片机内采用EEPROM作为数据存储器。数据存储器可分为工作寄存器、堆栈,位标志和数据缓冲器使用。e.I/O接口及特殊功能部件单片机内部有数量不等的并行接口,可以作为外界无输入/输出设备,通常也包含1~2个串行口,用于实现异步串行通信。特殊功能部件通常包括定时/计数器,其他例如A/D、PWM、DMA等根据不同类型的单片机,其配置不同。(3)单片机应用系统根据单片机应用场合及系统控制的要求不同,在规模、结构上存在很大不同,根据使用功能器件的种类和数量,可分为基本系统和扩展系统。1)基本系统在此系统中,包含一个单片机,在该单片机中含有程序存储器和数据存储器,仅在外部配置了维持系统运行的基本部件,例如电源、输入/输出,除了这些,还包括不扩充程序存储器、数据存储器、I/O接口以及其他功能部件,因此也被称为最小系统,其结构示意图如图3.2所示。复位电路复位电路电源电路单片机时钟电路输入/输出图3.2单片机最小系统示意图2)扩展系统在大多数系统中,由于需要实现一些特殊的功能,采用最小系统无法满足系统的控制要求,所以要扩展特殊功能部件,弥补单片机内部资源的不足。单片机扩展系统通过并行I/O口或者串行口做总线,在外部扩展了程序存储器、数据存储器、A/D转换等特殊部件,以满足控制系统的特殊要求,其结构示意图如3.3所示。(4)单片机的发展趋势随着科学技术的不断发展,单片机的工艺和集成度不断提高,其功能正朝着多功能、高性能的方向发展,主要体现在一下几方面。1)各种等级的单片机性能提高EPROM程EPROM程序存储器RAM数据存储器A/DD/A并行接口串行接口复位电路时钟电路输入/输出电源电路单片机图3.3单片机扩展系统钢结构示意图随着工艺技术和集成度技术的发展,许多低端单片机的性能有了较大的提高,甚至可以完成部分高端单片机才能实现的功能,其运算速度、功能和可靠性等方面也得到了快速的发展。a.CPU功能增强CPU的性能主要体现在数据处理的速度和精度上,通过增加CPU的字长、扩充硬件、提高总线速度和处理效率等手段,提高CPU的性能。b.内部资源增加单片机除了CPU外还有其他部件,通过增强已有部件的性能和增加特殊功能的部件来提高单片机的性能。例如增大存储器的容量,现在一些高端单片机的程序存储器的ROM、EPROM、EEPROM或者FLASH都达到及时KB,而数据存储器的RAM也已达到及时KB。一般的控制系统要求的功能较多,采用较低端的单片机,由于其内部资源不够,无法实现控制要求,因此需要扩展部件,而扩展部件又会造成系统可靠性降低,所以要在工艺水平提高的基础上,尽量集成较多的部件在单片机的内。单片机的特殊部件包括I/O口(并行口和串行口两种)、定时/计数器、AD/DA转换器、PWM输出等,通过在内部集成此类部件,可大大增强单片机的控制功能。c.寻址范围增加寻址方式的多少直接反应了机器指令系统功能的强弱,寻址方式越多,其功能越强,灵活性越大,这也是衡量单片机性能的重要指标之一。现在已有部分单片机对外部存储器、I/O口寻址范围增加到几MB,甚至有单片机可以选择某些I/O口作为系统的扩展总线使用。2)小型化、低功耗在一些智能控制系统中,其整体系统体积较小,功率不大,因此要求单片机的体积和功耗都要在一定范围内,促使单片机向小型化、低功耗的方向发展。例如,1992年美国推出的i80860超级单片机,运算速度为1.2亿次每秒,可进行32位整数运算、64位浮点运算,同时片内集成了一个三维图形处理器,可构成超级图形工作站。3.1.2管脚说明图3.4MCS-51引脚图MCS-51单片机是采用40引脚双列直插封装的芯片,有些引脚具有两种功能,引脚如图3.4所示。引脚功能如下:Vcc:电源+5V。VSS:接地。XTAL1和XTAL2:使用内部振荡电路时,用来接石英晶体和电容;使用内部时钟时,用来输入时钟脉冲。P0口:双向I/O口,既可以作地址∕数据总线口,也可作普通I/O口用。P1口:准双向通用I/O口。P2口:准双向口,地址总线口输出地址高8位口。P3口:多功能端口,既可以作普通I/O口用,也可以按每位定义的第二功能操作。ALE/PROG:地址锁存信号输出端。在访问片外存储器时,ALE为高电平有效时,P0口输出地址低8位,用ALE信号做外部地址锁存器的锁存信号。ƒALE=ƒOSC/6,可以做系统中跟其他芯片的时钟源。第二功能PROG是对8751的EPROM编程脉冲输入端。RST/VPD:复位信号输入端。接通电源后,在该引脚施加大于两个机器周期(24个振荡周期)的高电平,就可使单片机完成内部的复位工作。第二功能是Vpd,即备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,Vpd将为RAM提供备用电源,以保证存贮在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的时钟可以有两种方式产生,一种是内部方式,利用芯片内部的震荡电路;另外一种为外部方式。本文根据实际需要和简便,采用内部震荡方式。MCS=51内部有一个用于构成震荡器的高增益反响放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外警惕或陶瓷谐振器一起构成一个自激振荡器。MCS-51虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的是振荡时钟电路。外接晶体以及电容Cl和C2构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。晶体频率可在1.2MHz-12MHz之间任选,电容Cl和C2的典型值在20pF-100pF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的陶瓷谐振器。由于本系统应用的机器周期为lms,所以晶振选择为12MHz,根据调试电容选择30pF.3.1.4复位电路MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段。有了它可以使程序从指定处开始执行,即从0000H地址单元开始执行程序。在MCS-51的时钟电路工作后,只要RST引脚上出现10ms以上的高电平时,单片机内部则出示复位。只要RST保持高电平,则MCS-51循环复位。只有当RST由高电平变低电平以后,MCS-5l才从0000H地址开始执行程序。MCS-51的复位是由外部的复位电路来实现的。复位引脚通过施密特触发器与复位电路相连。施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式。本系统采用两种方式的复合方式即上电位按钮复位式。3.1.5电源电路由于单片机工作时需要的+5v电压,所以在设计电源电路时,需要一个电子元件能提供+5v电压,由于7805能够提供5V电压的三端稳压电源,在实际的电路控制中应用其作为电源电路较为广泛,在普通的电子元器件商场都有销售易于购买,并且技术相对成熟。7805一脚为电源输入段,二脚为公共接地段,三脚即为我们所需要的+5V电压输出端。本文采用最典型的7805提供电压的电路,即在7805的l脚和公共接地端(即2脚)之间接入0.3mF的电容,在公共接地端和三脚+5V电压输出端之间接人0.1mF的电容。3.2硬件原理图本系统利用89C52芯片对12个LED进行控制,实现交通信号灯的控制。同时,每个LED串接一个阻值为330Ω的电阻,以保证系统上电后通过LED的电流不会过大,防止其烧毁。 图3.5硬件原理图3.3本章小结本章主要是关于本系统用到的硬件设计的介绍。文中对MCS-51单片机进行了介绍,系统阐述了本设计用到的89C52芯片各管脚功能,并且对时钟脉冲电路、复位电路和电源电路进行了一一解释。重点介绍了本系统的硬件原理图,对其进行了较为细致的说明。软件设计4.1主程序设计设计出程序的流程图以及初始、延时程序及源程序。4.1.1主程序流程图本系统在一般情况下循环执行信号灯状态流程,流程图如图4.1所示。图4.1信号灯状态流程图主、支干道交替通行,主干道每次放行20秒,支干道每次放行12秒;每次绿灯变红灯前,黄灯先亮4秒,此时另一干道上的红灯亮并闪烁。它们的工作方式,有些必须是同时进行的:主干道绿灯亮、支干道红灯亮;主干道黄灯亮、支干道红灯亮并闪烁;主干道红灯亮、支干道绿灯亮;主干道红灯亮并闪烁、支干道黄灯亮。4.2初始化程序单片机上电时I/O口默认为高点平,需要在进入主函数时对P1进行附初值。因本系统中LED低电平时点亮,故给P1都赋值0xff,使LED全灭。程序中用到外部中断0和外部中断1,需要初始化,开总中断、开外部中断0和外部中断1,还需要选择触发方式,本系统中断中选择下降沿触发。4.3延时程序延时可有两种途径实现:软件延时和单片机内部的定时/计数器延时。软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。定时/计数器延时不占用CPU时间,但占用了硬件资源。本系统采用定时器延时,单次延时时间为50ms,晶振12MHz。4.4源程序源程序参考附录一。4.5本章小结本章主要介绍本论文中的软件设计部分。文中详细介绍了本系统的主程序设计、初始化程序、外部中断及延时程序,并附有程序中的各种流程图,使读者对本系统的设计有了进一步了解。调试分析5.1KEIL51软件简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(mVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。5.1.1系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil51的编译环境如图5-1所示。图中:标题栏:显示当前编译的文件菜单条:有十项菜单可供选择,相应的所有操作命令均可在此菜单中查找;工具栏:常用命令的快捷图标按钮;管理窗口:显示工程文件的项目、各个寄存器值的变化、参考资料等;信息窗口:显示当前文件编译、运行等相关信息;工作窗口:各种文件的显示窗口。图5.1Keil51的编译环境KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。5.1.2KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,其中mVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。5.2调试步骤进行逻辑调试、模拟电路的调试,还有解决在调试中出现的问题5.2.1逻辑的调试Keil51编译指南:第1步:打开Keil51软件,首先弹出一个开机启动画面。第2步:然后进入Keil51的开发界面。下面简要介绍一下Keil51开发环境中各个区域的功能。Keil51开发环境可以分为四个区域,分别为:菜单条、项目文件管理窗口、代码编译窗口和代码编译信息窗口四个部分。菜单条分为十项,所有的命令都可以在这里找到。下面的命令是一些常用的菜单命令,如文件的打开、关闭及保存。其中编译命令最为常用。中间靠左是项目文件管理窗口,这里可以看到当前项目中所包含的所有带编译的文件。项目文件管理窗口的右侧是代码编译窗口,这事我们最主要的工作区域。最底层显示了代码编译的信息。当代码有语法错误时,可以在这里轻松的找到问题的所在。第3步:下面以建立一个简单的项目为例,来说明Keil51开发项目的一般方法。单击Project菜单项,选择NewProject项。第4步:此时弹出CreateNewProject对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。单击保存。第5步:根据所用的器件,选择CPU的型号,单击确定。第6步:Keil51询问是否生成默认的配置文件,这个可选可不选,这里选定。单击Yes,观察项目文件管理窗口的变化。第7步:在File菜单下单击New选项,新建文件。此时在代码窗口出现一“Text1”空白文档。第8步:在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。保存名写为text.c。单击保存。注意在对文件命名时必须加扩展名。第9步:在项目导航栏中SourceGroup上单击右键,选AddFiletoGroup‘SourceGroup1’。第10步:此时弹出AddFile对话框。选中刚才保存的text.c文件。单击Add。此时在项目文件管理窗口中就会出现刚才所添加的文件text.c。第11步:单击快捷菜单栏中的编译按钮,可以编译程序。第12步:单击Project菜单项,选择OptionforTarget‘Target1’选项。在弹出的对话框中可以对Project进行总体配置。第13步:选择Output选项卡,单击CreateHEXFile,代码输出格式应为HEX-80。第14步:单击确定后,并重新编译。可以看到编译成功之后,Build选项卡里又多了一项。这是生成的HEX文件。第15步:单击Debug菜单项中的Start/StopDebugSession命令或工具栏中的进入调试界面。第16步:单击调试界面Debug菜单项中的Go命令或工具栏中的运行程序,单击StopRunning命令或来结束程序。观察运行结果,若结果正确,便可通过下载软件将它烧写到目标板上去。这样,一个简单的Keil51下的项目就完成了。注:Keil51对汇编语言文件的编译调试步骤和对C语言的编译调试基本上是一样的,只是在第八步中用汇编语言进行代码的编写,并在保存文件时将扩展名加成.asm。本系统中,最初采用把9个状态分别设置成一个子函数的方法。在每个子函数中对在此状态中需要点亮的LED单独赋值,延时程序采用定时器延时,在主函数中设置调用子函数。但是在调试过程中遇到很多问题,比如,LED并未按照理想的方式点亮或熄灭,也没有状态变化。在经过分析后,采用了另一种更为简单的方法,即给P1口和P2口整体赋值,如P1=0xff、P2=0xff即表示所有LED不点亮。每个状态只需赋一个或两个值,需要延时时只需调用延时程序。此外,对延时程序也进行了修改,把原有方案改为用CPU延时,这样,程序变得较为简单易行。5.2.2模拟电路板的调试通过查找资料选择了合适的LED和电阻,合适阻值的电阻和LED串联能保证在通上电后LED的内部电流在允许范围内,防止LED因内部电流过大而被烧毁。调试过程中,因不慎短路造成一个LED烧毁,相应的面包板的孔也烧毁。经过分析发现,LED和电阻两端的引线都过长,在调试过程中如果不慎碰一下会造成LED被烧毁。所以,剪短阴线后重新安插面包板,消除了隐患。5.3调试中的问题及解决方案调试过程中遇到不少问题问题一:上文逻辑调试中提到的问题,即LED并未按照预期的流程点亮,而且也没有状态变化。解决方案:经过进一步分析后,发现把每个状态设置成一个独立的子函数然后在主函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 41869.3-2024光学和光子学微透镜阵列第3部分:光学特性测试方法
- 供热供气工程履约担保格式
- 2025版备货行业质量认证合同范本3篇
- 展览馆弱电系统改造合同模板
- 医疗服务票据管理策略与流程
- 2025年度绿色办公用品采购及回收利用合同3篇
- 纺织服装电力供应协议准则
- 城市滨水区改造房屋拆除工程协议
- 2025版电梯设备安装与维护合同范本3篇
- 船只租赁合同:水上建筑维修
- 桥梁检修通道施工方案
- 英文写作课件:段落的写作
- 软件设计说明书通用模板
- 产业园运营合作协议
- 酒店治安安全培训
- 16J607-建筑节能门窗
- 我的家乡-东营
- 理解词语句子的方法PPT
- 作文开头与结尾PPT课件ppt(共42张PPT)
- 重症医学科运用PDCA循环提高消毒棉签开启时间标注的执行率品管圈成果汇报
- 云南面向东南亚、南亚区域物流系统优化研究的开题报告
评论
0/150
提交评论