毕业设计 智能寻迹灭火小车设计论文.doc_第1页
毕业设计 智能寻迹灭火小车设计论文.doc_第2页
毕业设计 智能寻迹灭火小车设计论文.doc_第3页
毕业设计 智能寻迹灭火小车设计论文.doc_第4页
毕业设计 智能寻迹灭火小车设计论文.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

摘 要随着社会的发展、科技的进步,工业的生产和管理进入了自动化、信息化和智能化时代,智能化已经成为时代发展的需要。当工作现场环境恶劣时,人工不能完成的任务如物料运输和灭火等,可采用智能寻迹小车完成相应的任务。基于工作现场和日常生活的实际需要,研究和开发智能小车寻迹系统具有十分重要的意义。本文首先简单描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序和流程和实现过程。本设计数字集成电路技术为基础和单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。关键词AT89C52单片机;小车;温度AbstractAlong with the progress of social development, science and technology, production and management of industry got into automation, information-based turns ages with intelligence, intelligences turning has already become the demand that the ages develops.When working the spot environment is bad, the artificial can not complete of task such as material conveyance with extinguish fire etc., can adopt intelligence to look for the vestige small car to complete a homologous task.According to the effective demand of the work the spot and the daily life, research and the development intelligence small car look for vestige system to have very important meaning.This text in brief describes the system hardware work principle first, and attach to take into to explain by the system structure frame diagram, emphasized to introduce each hardware applied of this graduation design to connect the function and work process that a peoples technique and each one connect a people mold piece, elaborated procedure and process and carry out process in detail secondly.This design number integrated circuit technique is foundation and single slice of machine technique is cores.The predominant thought that this text writes is a soft hardware to combine together and take hardware as foundation, carry on writing of each function mold piece.Keyword:The AT89 C52 single slice of machine;Small car;Temperature目录摘要IAbstractII第1章绪论11.1智能寻迹灭火小车控制系统的设计背景和意义11.2智能寻迹灭火小车控制系统的目标1第2章智能寻迹灭火小车控制系统介绍22.1智能寻迹灭火小车系统功能概述22.2系统工作原理22.3本章小结3第3章系统硬件设计43.1硬件设计框图43.2硬件设计及主控芯片介绍53.2.1AT89C52主控芯片介绍53.2.2寻迹系统方案设计73.2.3电机驱动系统方案设计113.2.4电源系统方案设计113.2.5显示系统方案设计123.2.6温度系统方案设计133.2.7车体方案设计143.2.8水泵风扇方案设计143.3本章小结15第4章系统软件设计164.1软件设计思路164.2系统程序流程图164.2.1寻迹模块程序流程图164.2.2驱动电机模块程序流程图174.2.3显示模块程序流程图184.2.4温度模块程序流程图194.2.5水泵风扇模块程序流程图204.3各功能模块软件程序设计214.3.1寻迹模块主程序214.3.2驱动电机模块主程序234.3.3显示模块主程序244.3.4温度模块主程序254.3.5水泵风扇模块主程序274.3.6延时子程序284.4本章小结28第5章系统调试295.1硬件调试295.1.1RPR220信号产生的调试295.1.2温度模块的时序调试305.2调试软件WAVE介绍305.2.1主界面305.2.2菜单介绍315.3软件程序调试315.3.1调试的主要方法和技巧325.3.2利用WAVE调试本系统325.4综合调试335.5本章小结34结论35致谢36参考文献37附录138附录242附录348附录4955哈尔滨工业大学华德应用技术学院本科毕业设计(论文)第1章 绪论1.1 智能寻迹灭火小车控制系统的设计背景和意义火灾在现实生活中是非常普遍的,它被称为三大自然灾害之一。消防人员时时刻刻冲到第一线,面临生命危险,在这种背景下,智能寻迹灭火系统应运而生,实现了对安全防护的质的提高,也大大地减低了消防人员的危险。在智能寻迹灭火系统中应用单片机来代替人的思考,还可以实现自动化控制,简化了灭火的工作流程,使单片机代替多余的消防人员,节省了国家不必要的支出,减低了危险。现今,单片机以其强大的控制能力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。无论在安全防护领域、工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。从最初的8位控制器到现在的32位控制器都还有很大的发展和应用空间。根据本设计的要求,将采用ATMEL公司生产的AT89C52型单片机1.2 智能寻迹灭火小车控制系统的目标本设计开发的智能寻迹灭火小车控制系统应用范围十分广泛,设计的智能寻迹灭火小车应该能够实现温度监控、报警、具有自动寻迹、吹风灭火、喷水灭火、返回起始点等功能,可通过温度的监控来进行设定小车是否前进。本设计具有很好的开发前景,将会受到广大安全防护人员的欢迎。第2章 智能寻迹灭火小车控制系统介绍2.1 智能寻迹灭火小车系统功能概述经过开题期间的文献查阅和实际情况调研,了解到目前的消防车的研究与设计一般采用的方案大都为:通过人为报警,再由消防人员开着小车去灭火。那样消防人员会随时面临着危险。通过自己的想法。采用的方案为:通过温度传感器、检测到火灾发生地点的温度的因素与其标准区间值不符,系统会自动派出无人消防车进行灭火等操作。该控制系统的最大特点:1. 结构简单2. 体积小、功率低3. 信号无干扰,传输准确度高4. 成本低廉5. 安全系统各个功能模块简介:1. 寻迹模块:主要用来给小车做导航前进用。2. 电源模块:主要用来分别区分给单片机与电机、水泵驱动模块供电。3. 温度模块:主要用来对温度传感器给单片机传值的功能。4. 显示模块:主要用来显示单片机传过来的温度值。5. 电机驱动模块:主要用来驱动两个减速直流电机,实现小车的前进、后退、前左转、前右转、后左转、后右转、停车等功能。6. 风扇、水泵驱动模块:主要是用来控制水泵是否喷水、风扇是否吹风,来实现小车灭火功能。2.2 系统工作原理在智能寻迹灭火小车控制系统的设计中,工作原理:首先小车检测水罐水位,是否到达水位线。如果没有,则等待装水直至装满为止。然后通过18B20检测传回来的温度,实时显示。当温度达到上限时,开始启动报警,并驱动小车沿着黑线寻迹前进。到达指定地点时,小车停止,启动风扇和水泵,开始吹风、喷水。当温度降回原先的区间或者水罐的水降低到警戒线。小车开始寻迹返回。然后等待水装满。再一次运行。2.3 本章小结本章结合目前的智能寻迹灭火小车控制系统对当前的控制系统进行了概述,系统具备的功能以及系统控制的工作原理,通过阅读本章内容可对该系统有一个总体的了解。第3章 系统硬件设计3.1 硬件设计框图本控制系统硬件设计框图3-1如下所示:AT89C52主控芯片温度模块显示模块报警寻迹模块检测水位驱动电机模块水泵风扇模块P1.0P1.3P1.4P1.5P1.6P1.7P0.4P0.5P3.4P3.5 P0.00.1 P2P0.7图3-1硬件设计框图在智能寻迹灭火小车控制系统的设计中,以AT89C52为核心,用了两片L298N,一片用于驱动两个减速电机,一片用于驱动水泵和风扇。12V电源单独给电机供电,再用7805把12V电源降压至5V给单片机供电。首先单片机根据检测水位及温度是否到达上限的信号,来判断小车是否前进。如果没有该信号,则一直等待。当产生信号驱动小车前进时,是通过寻迹模块里的RPR220是否寻到黑线产生的电平信号返回到单片机,单片机根据程序设计的要求做出相应的判断送给电机驱动模块,让小车来实现前进、左转、右转、停车等基本功能。到达火灾地点时,单片机通过L298N来控制水泵、风扇工作灭火。3.2 硬件设计及主控芯片介绍在智能寻迹灭火小车控制系统的设计中,共用了一片AT89C52单片机作为本控制系统的主控芯片,硬件设计模块共分为:寻迹模块、电机、风扇水泵驱动模块、电源模块、显示模块、温度模块、水泵风扇模块。3.2.1 AT89C52主控芯片介绍AT89C52简介本系统的核心部件AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2k字节的可反复擦写的只读程序存储器(PEROM)和128字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,具有较高的性价比。设计本着应用性,因此选择AT89C52单片机作为本控制系统的中央处理器。AT89C52包括:(1)一个8位微处理器CPU。(2)片内数据存储器RAM和特殊功能寄存器SFR。(3)片内程序存储器ROM。(4)两个定时/计数器T0、T1,可用作定时器,也可用以 对外部脉冲进行计 数。(5)四个8位可编程的并行I/O端口,每个端口既可作输 入,也可作输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。AT89C52单片机的基本组成如图3-2所示。 图3-2AT89C52单片机基本结构AT89C52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式 以适应不同产品的需求。AT89C52芯片的40个引脚功能为: 1. Vcc:电源电压。2. GND:地。3. P0口(P0.0P0.7):该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。P1口(P1.0P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。P2口(P2.0P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,作为高8位地址线。P3口(P3.0P3.7):为内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。P3口还用于实现AT89C52的各种功能,如下表3-1所示。 表3-1P3口各功能对照表4. RST:复位输入。RST一旦变成高电平,所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。 5. XTAL1:作为振荡器反相放大器的输入和内部时钟发生器的输入。6. XTAL2:作为振荡器反相放大器的输出。3.2.2 寻迹系统方案设计这里的寻迹是指小车在地板上,寻着黑线行走,通常采取的方法是以下三种方案。方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此我考虑其他更加稳定的方案。方案2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我放弃了这个方案。方案3:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。RPR220采用DIP4封装,其具有如下特点:塑料透镜可以提高灵敏度。内置可见光过滤器能减小离散光的影响。体积小,结构紧凑。当发光二极管发出的光反射回来时,三极管导通输出低电平。此光电对管调理电路简单,工作性能稳定。因此我选择了方案3。RPR220主要使用一片LM393比较器芯片,根据寻到黑线时,电压进行比较,传回单片机一个值。该设计的寻迹原理图3-2-2如下所示:图3-2-2寻迹模块原理图3.2.2.1 用光电对管电路的设计我设计并论证了两种光电对管检测及调理电路,电路原理图分别如3-2-2-1和图3-2-2-2所示: 图3-2-2-1 光电对管检测电路1图3-2-2-1所示电路中,R1起限流电阻的作用,当有光反射回来时,光电对管中的三极管导通,R2的上端变为高电平,此时VT1饱和导通,三极管集电极输出低电平。当没有光反射回来时,光电对管中的三极管不导通,VT1截至,其集电极输出高电平。VT1在该电路中起到滤波整形的作用。经试验和示波器验证,该电路工作性能一般,输出还有杂散干扰波的成分。如果输出加施密特触发器就可以实现良好的输出波形。但是这种电路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和三极管VT1导通时的导通电流较大。因此我考虑用比较器的方案。图3-2-2-2光电对管检测电路2在图3-2-2-2中,可调电阻R3可以调节比较器的门限电压,经示波器观察,输出波形相当规则,可以直接够单片机查询使用。而且经试验验证给此电路供电的电池的压降较小。因此我选择此电路作为我的传感器检测与调理电路。3.2.3 驱动电机系统方案设计方案1:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。方案2:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但是这种电路工作性能不够稳定。因此我们选用了方案1。驱动电路的设计如图3-2-3所示: 图3-2-3驱动电机模块原理图3.2.4 电源系统方案设计由于本系统需要电池供电,我考虑了如下集中方案为系统供电。方案1: 采用8节1.5V干电池供电,电压达到12V,给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。并且电池的价格比较低。方案2:采用3节4.2V可充电式锂电池串联共12.6V给直流电机供电,经过7812的电压变换后给支流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。锂电池的电量比较足,并且可以充电,重复利用,因此,这种方案比较可行。但锂电池的价格过于昂贵,使用锂电池会大大超出我的预算,因此,我放弃了这种方案。方案3:采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但蓄电池的体积过于庞大,在小型电动车上使用极为不方便, 综上考虑,我选择了方案1。3.2.5 显示系统设计 由于本系统需要显示温度,我考虑如下几种方案来显示:方案1:使用七段数码管直接与单片机相连。需要八个段码口接上拉电阻和三级管放大。其缺点占用口太多。 方案2:使用CD4511芯片直接与四位一体的七段数码共阴管相连,优点只占用八个数据口,四个片选口,四个段码值口。唯一的缺点是数据管不能显示小数点。综上考虑,我选择了方案2。显示模块电路设计如图3-2-5:图3-2-5LED数码显示器是由LED 发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点,故通称之为7段发光二极管数码显示器。它分为静态显示和动态显示。1) 静态显示所谓静态显示,就是在同一时刻只能显示一种字符,或者说被显示的字符在同一时刻是稳定不变的。其显示方法比较简单,只要将显示段码送到段码口,并把位控字送到片选口即可。2) 动态显示如果要在同一时刻显示不同的字符,从电路上看,这是办不到的。因此只能利用人眼对视觉的残留,采用动态扫描显示的方法,逐个地循环点亮各位数码管,每位显示1ms左右,可人看起来就好象在同时显示不同的字管一样。3.2.6 温度系统设计本控制系统采用18B20温度传感器。它是以9位数字量的形式反映器件的温度值,具有如下特性:1) 独特的单线接口仅需要一个端口引脚进行通迅2) 简单的多点分布应用3) 无需外部器件4) 可通过数据线供电5) 零待机功耗6) 测温范围-55+125度,以0.5度递增。7) 温度数字量转换时间200MS(典型值)8) 应用包括温度控制、工业系统、温度计或任何热感测系统。它的引脚图为:引脚说明:3.2.7 车体方案设计方案1:购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。但是一般的说来,玩具电动车具有如下缺点:首先,这种玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。其次,这种电动车一般都是前轮转向后轮驱动,不能适应该题目的方格地图,不能方便迅速的实现原地保持坐标转90度甚至180度的弯角。再次,玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。而且这种电动车一般都价格不菲。因此我们放弃了此方案。方案2:自己制作电动车。经过反复考虑论证,我制定了左右两轮分别驱动,前万向轮转向的方案。即左右轮分别用两个转速和力矩基本完全相同的直流减速电机进行驱动,车体前部装一个万向轮。这样,当两个直流减速电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的90度和180度的转弯。在安装时我保证两个驱动电机同轴。当小车前进时,左右两驱动轮与前万向轮形成了三点结构。这种结构使得小车在前进时比较平稳,可以避免出现后轮过低而使左右两驱动轮驱动力不够的情况。为了防止小车重心的偏移,前万向轮起支撑作用。对于车架材料的选择,我们经过比较选择了有机玻璃。用有机玻璃做的车架比塑料车架更加牢固,比铁制小车更轻便,美观。综上考虑,我们选择了方案2。3.2.8 水泵、风扇模块设计采用的方案与驱动电机系统模块一样。采用的是L298N。3.3 本章小结本章通过框图的形式介绍了各个系统模块的设计,将寻迹模块、驱动电机模块、电源模块、温度模块、显示模块、水泵风扇等几部分的设计思路作了详细分析,通过阅读本章内容可对本智能寻迹灭火小车控制系统的硬件设计全面了解。第4章 系统软件设计对于一个完整控制系统来说,除了要有一个完整的硬件控制以外,还应该有一个能充分发挥硬件功能的软件系统来支持它,本章将详细介绍寻迹模块、电机驱动、显示模块、温度系统的软件实现方法。4.1 软件设计思路根据总体设计的思想及本系统实现的功能,在软件设计中完成以下功能。1. 寻迹模块主程序:由是否遇到黑线产生信号的操作,信号返回到单片机,再通过单片机来实现相应的功能。2. 电机驱动模块主程序:主要用来控制两个直流减速电机,实现前进、后退、前左转、前右转、后左转、后右转、停车等功能。3. 显示模块主程序:主要通过单片机用来显示实时温度值。4. 温度模块主程序:主要用来给单片机传递温度的相应执行模块。5. 水泵风扇模块程序:主要用来控制一个水泵和风扇,实现喷水、吹风等功能。4.2 系统程序流程图根据软件的总体设计思想及本系统所要实现的功能,进行其系统程序流程图设计,本系统程序流程图共分为:寻迹程模块序流程图、电机驱动模块程序流程图、显示模块程序流程图、温度模块程序流程图、水泵风扇模块程序流程图。4.2.1 寻迹模块程序流程图在用户没有对水缸装满和温度没到达上限时,程序不停的进行水缸水位和温度扫描,直到水位达到和温度达到上限的时候,程序跳转到对应的位置执行。其寻迹模块程序流程图如下图4-1所示:图4-1寻迹模块程序流程图4.2.2 驱动电机模块程序流程图程序运行后,首先进行初始化将AT89C52单片机的P1口全部置0,等到水位满和温度达到上限时,然后就循环判断寻迹系统送过的信号,对电机进行相应的功能驱动。具体如下图4-2和表4-1所示:图4-2驱动电机模块程序流程图表4-1驱动电机模块程序功能对照表接收真值表(前左,后右)对应功能1-1前进0-0停车1-0左转0-1右转4.2.3 显示模块程序流程图该程序主要用来把18B20所传过来的温度值实时显示出来。如下图4-3所示:图4-3显示模块程序流程图4.2.4 温度模块程序流程图程序运行后,首先对程序进行初始化,给P0.0-P0.1赋初值。然后对AT89C52单片机的P0.0-P0.1端口进行循环扫描,把扫描到的值送到温度读取函数得到值,送显示模块继续执行。具体如下图4-4所示:图4-4温度模块程序流程图4.2.5 水泵风扇模块程序流程图该模块程序与驱动电机模块采用的驱动电路是一样的。都是用L298N。针对该模块程序流程的相应调用而执行的模块。如下图4-5所示:图4-5水泵风扇模块程序流程图4.3 各功能模块软件程序设计在各个硬件功能模块的基础上,针对其预定实现的相应功能对各个功能模块进行软件程序设计。4.3.1 寻迹模块主程序程序运行后,首先进行初始化,将P1口置低,然后等待水满和温度达到上限报警, void zhengxiang() /正向前进函数 while(1) if(chuan_gan1=0&chuan_gan2=0) ting(); biaozhi=1; if(chuan_gan1=1&chuan_gan2=0) zuozhuan(); if(chuan_gan1=0&chuan_gan2=1) youzhuan(); if(chuan_gan1=1&chuan_gan2=1) qianjin(); if(wendu30&wendu10;i-) WD = 0; / 给脉冲信号 shuju=1; WD = 1; / 给脉冲信号 if(WD) shuju|=0x80; delay(4); return(shuju);WriteOneChar(unsigned char shuju) /写一个字节 uchar i=0; for (i=8; i0; i-) WD = 0; WD = shuju&0x01; delay(5); WD = 1; shuju=1; delay(4);uchar ReadTemperature() /读取温度 uchar diwei=0; uchar gaowei=0; uchar t=0; wdcsh(); /初始化 WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 wdcsh(); /初始化 WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器)前两个就是温度 diwei=ReadOneChar(); /读取温度值低位 gaowei=ReadOneChar();/读取温度值高位 diwei=diwei4; /低位右移4位,舍弃小数部分 t=gaowei0;b-) /控制左右转的时间系数; for(a=0;ab;a+);4.4 本章小结本章用流程图的方法说明了智能寻迹灭火小车控制系统的软件设计,并对系统中主要程序的设计作了详细说明,通过阅读本章内容可以全面了解本控制系统的软件设计。第5章 系统调试5.1 硬件调试硬件调试是用基本测试仪器(万用表、示波器等)和自己编写的测试程序进行相关的测试,来检查系统硬件中存在的问题。5.1.1 RPR220信号产生的调试图5-1RPR220信号产生的原理图如果RPR220遇到黑影,OUT输出哪为低电平。否则为高电平。两组光电开关传感器得到发送,遇到黑影信号后利用比较器LM393输出送给单片机,比较电压,里面的R4电阻是上拉电阻的作用,R3滑动变阻器是来调节RPR220两个电压之间比较用的,最后比较输出接近为0,相差的大一些比较为5V,故想要输出正常,只要调滑动变阻器即可。符合系统设计要求,最终电路原理图如5-1所示。5.1.2 温度模块的时序调试 在接到温度读指令后,如果器件不是从VCC供电的话。I/O线必须至少要体质10MS高电平。这样在发出一个。温度读取命令后。这段时间内单线总线上就不能有其他活动。总线控制器发出一个脉冲(一个最少要保持480US的低电平信号)5.2 调试软件WAVE介绍在调试过程,使用基于WINDOWS95/98/XP操作平台VC风格软件WAVE。WAVE软件是集编辑、编译、连接、加载、调试等为一体的集成开发环境。可能在同一界面环境中完成所有任务。使用方便、易懂并且节省调试间时。5.2.1 主界面WAVE软件是集编辑、编译/连接、加载、调试等为一体的集成开发环境用可以在同一界面环境中完成所有任务。1. 编辑窗口WAVE提供一个多窗口的源文件编辑器。该编辑器不受文件大小的限制,允许无限的撤销/重复功能。编辑器全面支持汇编、C51和PL/M51语言的语法加亮着色。用户可以自定义各种类型文本的颜色和不同语言的关键词。相应的关键词文件名为ASM.KWD、C51.KWD。这些文件都保存在WAVE安装目录下。编辑器还支持拷贝、剪切、粘贴,全程查找等功能。2. 工作区窗口工作区窗口有两个页面窗口。工程页面窗口以树型结构显示工程中的项目文件等内容。没有打开工程时,该页面窗口为空。左面为资源管理器页面窗口3. 输出窗口输出窗口显示用户编译连接过程中的输出信息,用户双击某条编译出错信息提示即可直接定位到源文件的对应行。4. 观察窗口观察窗口中显示调试过程中长期观察的变量项。用户可以添加、删除、修改、刷新观察项。相应命令在右键菜单中。5. 数据窗口数据窗口中成批显示实验机相应存储区域的整块数据内容。用户可以察看,修改相应地址单元的数据。相应命令在右键菜单中。6. 对话窗口用户通过对话窗口可直接用监控命令和实验机对话。5.2.2 菜单介绍1. 文件(F)和文件有关的操作,如打开、关闭、打印等文件操作。2. 编辑(E)包括拷贝、剪切、粘贴、书签、查找和替换等编辑命令。3. 搜索(S)可以为用户查找。4. 项目(P)和工程有关的操作,如编译、加入模块、加入包含文件等工程操作。5. 执行(R)包括调试等编译操作。6. 窗口(W)包括等显示一些窗口等信息命令。7. 外设(L)包括端口、定时器/计数器、串行口等的设置。8. 仿真器(O)包括仿真器、设置编辑器等命令。9. 帮助(H)显示相应帮助文件和软件版本信息。5.3 软件程序调试软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正错误的过程。软件调试的一般方法是先独立后联机、先分块后组合、先单步后连续。5.3.1 调试的主要方法和技巧在使用WAVE软件时,调试的方法和技巧最为重要,不同的情况采用不同的调试方法,有助于程序的实现。在设计过程中显示运行结果一般用全速调试,调试时主要使用了跟踪调试、断点调试。1. 跟踪调试跟踪应用程序用户能够在运行应用程序时,看到PC指针在应用源代码程序中的确切位置,WAVE提供了跟踪型单步和通过型单步。跟踪型单步仅执行一条源语句程序,有利于观察变量。但是,如果调用函数,则进入函数中,在执行函数的第一条源泉语句行前停止。有利于用在延时子程序中。通过跟踪型单步仅执行一条源语句程序,然后又停止。2. 断点调试如果已知程序中某块代码实际运行正常的情况下,仍用跟踪调试,将大大浪费时间,而且很枯燥,因此调试中第二个重要工具是在源代码中预定处设置断点,大多数调试程序通过使用断点中止程序执行。如果用断点调试,由比较容易观察出程序变量的改变及程序运行的结果。3. 查看变量 WAVE软件提供了以下几种方法以变量进行查看:观察窗口、数据窗口(程序空间窗口、内部数据窗口、外部数据窗口。)通过添加窗口菜单可以将用户希望观察的变量添加到观察窗口及数据窗口观察。在设计过程中常用观察窗口观察程序中的变量,修改程序中的错误。4. 更改数值如果用户在调试过程中了解到变量的内容(超值、未定义等)会对程序性能产生影响或引起异常时,立即更改变量的内容是很有交往的方法以确保该值在正确范围内不会产生错误。WAVE软件提供一系列更改变量数值的方法,以便用户能检查程序对整个变量值范围的反应,而无需为设置每个值而重新加载调试。在更改对话框中用户输入要更改的取值,点击确定按钮。用户可以在输入框中输入十六进制或十进制数据。5.3.2 利用WAVE调试本系统首先打开变量观察窗口并添加要观察的变量,然后用跟踪型单步的方式对各个子程序逐条指令执行,观察变量的变化,查看是否达到子程序的功能要求。对子程序调试完成后,用跟踪型单步从START开始逐条执行指令,当遇到WAVE指令调用子程序时使用通过型跟踪的方式跳过子程序,通过这种方式对主程序进行调试。当对主程序进行调试时,如果遇到某段程序存在问题不法继续执行时,可用断点调试的方法,在已知的程序中能够正常运行的代码处设置断点,这样可以大大节省时间。在本系统的开发调试过程中遇到了如下几点问题:1. 将温度模块的延时模块延时时间设置错误开始在软件延时方面不准确,所以七段数码管不显示温度值。经过将延时时间改为大于480us,本程序正确无误,能够实现其预定功能。2. 将直流减速电机驱动模块的连接端口置错高低电平在对直流减速电机的驱动模块进行编程时,我先根据直流减速电机驱动电路制定出编程方案,然后根据编程方案进行对硬件开始编程,并使用WAVE软件开始对本部分进行调试,因为在编程时误将P1.0和P1.1这两个端口的高低电平整反,在左RPR220遇黑时,小车正好是实现右转功能,右RPR220遇黑时,小车正好是实现左转功能。将其P1.0和P1.1这两个端口的高低电平改正后问题就解决了,并与预定效果相同。3. 要观察变量或观察的地址项虽然在复杂的程序调用之间使用了保存现场,可有的时候寄存器的值还是出错,在向老师、同学请教之后学会了使用“观察项”,方法是在观察项中添加要观察的观察变量或要观察的地址项,并可设置想要观察内容的进制(十六进制值、十进制值或二进制值),之后在单步运行时跟踪观察项的取值,也就可以查出是在哪一条语句执行时出的错,这样就大大地解决了寄存器的值出错的问题。通过设置观察项还可以查看子程序的调用及返回是否出错,所以设置观察项是调试汇编程序的一个好工具。5.4 综合调试将各个调试好的程序组合在一起,往往会出现地址重叠、覆盖的情况,合理地分配地址空间,调整好寄存器引用。经过多次反复的设置断点,单步调试,F4跳跃型调试以及观察变量的值,程序可以正常运行,达到要求。通过综合调试,我总结了以下几条经验:1. 在调试程序之前,先检查各模块间的连接是否连接无误,有无断路现象。2. 调试程序时,首先用全速运行的方法进行总体调试,以便快速发现程序中存在问题的部分。然后设置断点调试。主要针对有问题的程序调试,更快地确定出现问题的位置。最后,利用单步调试方法,分析程序中出现的问题,解决问题,使程序正常运行。3. 在多次调试不成功的基础上,考虑思路是否正确,如果确定思路无误,考虑两个问题:一是程序中是否有笔误的地方;二是运行软件是否正常。5.5 本章小结本章将硬件调试与软件调试分开叙述,并对调试过程中出现的问题作了详细的分析。通过对硬件调试的基础上,根据其功能和特性,完成了软件的调试,整个程序能够实现预定的功能。在综合调试中尤其要注意各子程序之间的调用、返回。阅读本章可对智能寻迹灭火小车控制系统的整个调试过程了解得很全面。千万不要删除行尾的分节符,此行不会被打印。“结论”以前的所有正文内容都要编写在此行之前。哈尔滨工业大学华德应用技术学院本科毕业设计(论文)结论本次毕业设计按照课题 “小区智能寻迹灭火车”应实现的功能设计了所需的硬件电路,以AT89C52为主控中心L298N、7805等芯片共同组成了本系统的硬件电路。根据硬件电路设计了相应的软件程序,本次设计主要完成了以下功能:(1)、对温度的感应;因为要准确的读出温度值,必须按照18B20的时序进行相应的操作。时序需要自己去一点一点的调整。

温馨提示

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

评论

0/150

提交评论