毕业论文_自动温度控制系统设计.doc_第1页
毕业论文_自动温度控制系统设计.doc_第2页
毕业论文_自动温度控制系统设计.doc_第3页
毕业论文_自动温度控制系统设计.doc_第4页
毕业论文_自动温度控制系统设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

南京邮电大学 毕 业 设 计(论 文)题 目自动温度控制系统设计专 业电气工程及其自动化学生姓名李涵玥班级学号B090606 B09060603指导教师庞宗强 指导单位自动化学院 日期: 2012 年 11 月 1 日至 2013 年 7 月 10 日毕业设计(论文)原创性声明本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。 论文作者签名:李涵玥 日期:2013 年 5 月 23日摘 要随着现代信息技术的飞快发展,温度控制系统被广泛应用于农业和工业生产中,它对人们的生活产生了很大的影响,所以对温度控制系统的研究和设计意义重大。本文设计的目的在于学习基于STC89C52单片机的自动温度控制系统的设计流程。本设计以单片机为主控单元,以DS18B20温度传感器为温度控制系统。由温度传感器采集温度,然后以数字信号传递给单片机。本设计用单片机实现温度检测,具有良好的实时性。用PC机完成数据显示、存储和统计分析,绘制实时温度曲线,并对系统所处状况作出判断。本设计中的硬件电路部分包括:STC89C52单片机最小系统,键盘扫描及按键处理程序,测温电路,继电器控制程序,PC机,串口通讯电路和接口电路。关键字:温度控制;STC89C52单片机;串口通讯;DS18B20温度芯片;ABSTRACTWith the rapid development of modern information technology, the temperature control system is widely used in agriculture and industry, it greatly influences on peoples production and life,so the research and design of temperature control system has very important significance.The purpose of this paper is to study automatic temperature control system design based on STC89C52 single chip microcomputer basic flow. Design with the single chip microcomputer processor as the master control unit, DS18B20 temperature sensor for temperature control system. Collecting temperature by temperature sensors, and then passed to the single chip microcomputer with digital signal. This design using single chip microcomputer temperature detection, has good real-time performance, use PC to complete data display, storage, and statistical analysis, draw the real-time temperature curve, and a judge for what is going on in the system. The design of hardware circuit including: STC89C52 SCM smallest system,digital tube display program,keyboard scanning and processing program,temperature measurement circuit,relay control program, PC ,a serial port communication circuit and interface circuit.Key words:temperature control;STC89C52 single chip microcomputer;serial communication;temperature chip DS18B20目 录第一章 引言71.1课题研究的背景71.2目的和意义71.3设计要求8第2章 总体设计9 2.1系统实现的功能9 2.2总体设计方案9 2.3本章小结9第3章 硬件电路的设计11 3.1系统总体设计方案 11 3.2单片机最小系统电路11 3.3单片机的选择12 3.4温度传感器电路14 3.5电源电路16 3.6串口通讯电路17 3.7按键接口电路19第四章 系统软件的设计20 4.1程序结构分析20 4.2主程序模块20 4.3显示流程图22 4.4DS18B20数据采集模块22 4.5本章小结23第五章 系统调试及结论分析245.1硬件调试245.2软件调试255.3结论分析26第6章 总结及展望28 6.1总结28 6.2展望28结束语30致谢31参考文献32附录33南京邮电大学XXXX届本科生毕业设计(论文)第一章 引言1.1课题研究的背景 温度是工业生产和科学实验研究中的一个非常重要的参数,物体的许多物理现象和化学性质都与温度有关,许多生产过程都是在一定温度范围内进行的,需要测量温度的场合极其广泛。随着工业检测技术和自动化程度的不断提高,对温度控制的要求也越来越高。目前的温度测量系统一般使用的都是传统仪器,传统仪器的功能是通过硬件或固化的软件来实现。这种框架结构决定了它只能由仪器厂家来定义、制造,而且功能和规格一般都是固定的,用户无法随意改变其结构和功能。工业控制是计算机应用的一个重要领域,计算机控制系统正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通过信息技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。随着微机测量和控制技术的快速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。本设计就是基于STC89C52单片机的温度控制系统,通过本次课程实践,我们更加明确了单片机的广泛用途和使用方法,以及其工作的原理。目前国内温控仪器的发展,相对国外而言在性能上还存在着一定的差距,它们之间最大的差别主要还是在控制算法方面,具体表现为国内温控仪器在全量程范围内温度控制精度比较低,自适应性较差。造成这种不足的原因是多方面的,如针对不同的被控对象,由于控制算法的不足而导致控制精度不稳定。1.2目的和意义 随着工业生产的发展,温度的测量及控制变得越来越重要。温度控制技术涉及冶金,机械和电子等领域,是多种高新技术发展的综合集成。一方面,温度控制在制造业的应用范围越来越广阔,其标准化,智能化和网络化程度越来越高。另一方面,温度自动控制逐渐从制作业向非制造业转变,向以人为中心的个人化方向发展,并将服务于人类活动的各个领域。本课题采用单片机STC89C52设计了自动温度控制系统。单片机STC89C52 能够根据DS18B20温度传感器所采集的温度在电脑上实时显示,从而把温度控制在设定的范围之内。通过该课程的研究使我们对计算机控制系统有了一个全面的了解。掌握了常规控制算法的使用方法,掌握了简单微型计算机应用系统软硬的设计方法,进一步锻炼了同学们在微型计算机应用方面的实际工作能力。1.3设计要求本课题设计的是基于单片计算机的自动温度控制器,用于控制温度。要求熟悉温度传感器和电阻加热设计器等温度测量控制元件。本文主要介绍了利用VB开发环境设计上位机的监控界面,上位机通过USB转max232串行口与89C52单片机通信,读取温度传感器DS18B20的温度测量数据,从而实现对温度参数的实时控制。本文主要进行了以下几方面的工作:1、论述了自动温度控制系统的课题目的及意义,以及自动温度控制系统在国 外的发展概况。 2、自动温度控制系统的设计思路及方案,选择系统软件开发平台。3、介绍自动温度控制系统的硬件组成以及各硬件电路的设计。4、介绍自动温度控制系统的软件整体设计方案,以及上位机和下位机的设计过程。5、对所做工作进行总结,对未来研究工作的展望。 第二章 总体设计2.1系统实现的功能 本课题研究的自动温度控制系统主要实现以下功能: 1、实现单片机与电脑的串口通信,能及时地将温度数据传给电脑,并将在上位机界面形成曲线,直观的表现温度的变化。 2、检测参数的显示:如测试时间,设定温度和当前温度等,当温度超出某个范围时,及时进行温度的调节。 3、显示温度实时监测曲线,而且具有数字显示和波形图显示。 4、测试结果的数据保存:用户可以将采集到的数据的一部分或者全部保存在Excel表格中,方便查询和打印。2.2总体设计方案本论文设计开发的是基于VB的自动温度控制系统,通过对系统功能的分析,根据从总体到局部的设计原则,将整个系统分解为实现不同功能的几个部分,然后分别对每个部分进行设计。为了能够实现自动温度控制系统所提出的各项具体要求,可以将整个系统分解为上位机和下位机两个部分:上位机为装有VisualBasic软件的PC机,下位机是由单片机及外围电路组成的小系统。两个部分通过PC机中的USB串口进行通信。其中下位机部分主要完成的是温度信号的采集以及温度数据的输出;上位机部分完成对硬件的驱动,数据显示、处理与存储以及人机交互操作界面的生成。系统总体设计框图如图3.1所示。PC机串口 89C52 单片机DS18B20 计算机 VisualBasic 发送指令 采集到的温度 图3.1总体设计框图2.3本章小结本章主要内容是自动温度控制系统的设计方案。首先讲述了系统的设计原则,即从整体到部分的设计思想。在系统设计中要综合考虑系统的经济性、可靠性、可扩展性及易操作性等性能指标,再根据系统的实际情况提出总体设计方案。根据系统的主要功能将系统分为两大部分,即上位机部分和下位机部分,然后分别进行设计。两部分是通过计算机的串口进行通信的。同时选择VB作为温度检测系统的软件开发平台。在系统的整体设计中,软件设计是关键,也占大部分工作量。第三章 硬件电路的设计3.1系统总体设计方案 图3.1 系统设计图3.2单片机最小系统电路在本课题设计的自动温度控制系统中,控制核心是低电压、高性能的CMOS8位STC89C52单片机,片内含有256 bytes随机存取数据存储器(RAM)。器件采用ATMEL公司的高密度,非易失性存储的技术生产。与标准的51单片机指令系统及8052产品引脚兼容,内置Flash存储单元和通用8位中央处理器。其外部晶振为12MHz,一个指令周期为1us,便于用电的方式瞬间擦除和改写,而且价格便宜。使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路以及存储器选择模式,电路如下图3.2所示: 图3.2.单片机最小系统电路3.3单片机的选择 本课题设计的自动温度控制系统主控芯片选型为STC89C52单片机,其特点如下:3.3.1 STC89C52单片机简介 目前,51系列单片机在工业检测领域得到了广泛的应用,我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,来增强人机对话的功能。STC89C52单片机在一小块芯片上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个512K的片内数据存储器RAM;4K片内程序存储器;两个定时器/记数器;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。允许的最高振荡频率是12MHZ。以上各个部分通过内部总线相连。3.3.2 STC89C52单片机时序 STC89C52单片机的一个机器周期由6个状态(s1s6)组成,每个状态又持续2个震荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为16us;在一般情况下,算术和逻辑操作发生在P1期间,而内部寄存器到寄存器的传输发生在P2期间。对于单周期指令,当指令操作码读入指令寄存器时,便从s1P2开始执行指令。如果是双字节指令,则在同一机器周期的s4期间读入第二字节。若为单字节指令,则在s1期间仍进行读入,但所读入的字节操作码被忽略,且程序计数数据也不加1。多数STC89C52指令周期为12个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需要4个机器周期。 对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读入两个字节,但是Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令。在执行Movx指令期间,当外部数据存储器被访问且被选通时,跳过两次取址操作。3.3.3 STC89C52单片机引脚介绍STC89C52单片机的40个引脚中有2个专用于主电源的引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述各个引脚的功能。(1) 电源引脚Vcc和Vss Vcc(40脚):接+5V电源正端;Vss(20脚):接+5V电源正端。 (2)外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚 控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。(A)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。(B)ALE/ P (30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低电平。 (C)PSEN(29脚):片外程序存储器读选通信输入端,低电平有效。当从外部程序存储器读取指令或常数时,每个机器周期PSEN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PSEN信号将不再出现。 (D)EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS52子系列为8KB)。若超出该范围时,单片机自动去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源Vpp。 (4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口(A).P0口(39脚22脚):P0.0P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。(B).P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。(C).P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(D).P3口(10脚到17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口的第二功能见下表1表1 单片机P3.0管脚含义引脚第2功能P3.0RXD(串行口输入端0)P3.1TXD(串行口输出端)P3.2INT0(部中断0请求输入端,低电平有效)P3.3INT1(中断1请求输入端,低电平有效)P3.4T0(时器/计数器0计数脉冲端)P3.5T1(时器/计数器1数脉冲端)P3.6WR(部数据存储器写选通信号输出端,低电平有效)P3.7RD(部数据存储器读选通信号输出端,低电平有效) 综上所述,MCS51系列单片机的引脚作用可归纳为以下两点:1).单片机的功能多,引脚数少,因而许多引脚具有第2功能;2).单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。3.4温度传感器电路采用一线制数字温度传感器DS18B20作为本课题的温度传感器。传感器输出信号进4.7K的上拉电阻直接接到单片机的P1.0引脚上。3.4.1DS18B20温度传感器应用DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线)。每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55到+125,增量值为0.5。可在l秒(典型值)内把温度变换成数字。每一个DS18B20包括一个唯一的64位长的序号,该序号值存放在DS18B20内部的ROM(只读存贮器)中。开始8位是产品类型编码(DS18B20编码均为10H),接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC(循环冗余校验)码。DS18B20中还有用于贮存测得的温度值的两个8位存贮器,RAM编号为0号和1号。1号存贮器存放温度值的符号如果温度为负()。则1号存贮器8位全为1,否则全为0。0号存贮器用于存放温度值的补码,LSB(最低位)的“1”表示0.5。将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值(-550-125)。每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快。DS18B20的引脚如图3.4.1所示。 图3.4.13.4.2DS18B20温度传感器特点 DS18B20是美国DALLAS公司生产的应用单总线技术数字温度传感器,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)然后给单片机处理,且在同一总线上可以挂接多个传感器芯片。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主要有以下几方面的原因: (1)系统的特性:测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。 (2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。 (3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。 (4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。DS18B20温度传感器只有三根外引线:单线数据传输总线端口DQ ,外供电源线VDD,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路如图3.4.1所示. 图3.4.1温度传感器接口电路 3.5电源电路的设计 本系统采用电源稳压芯片是LM2596,该开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,输入电压是+5v,输入电压是+24v,同时具有很好的线性和负载调节特性。 该器件内部集成频率补偿和固定频率发生器,开关频率为150KHz,与低频开关调节器相比较,可以使用更小规格的滤波元件。 该器件还有其他一些特点:在特定的输入电压和输出负载的条件下,输出电压的误差可以保证在4%的范围内,振荡频率误差在15%的范围内;可以用仅80A的待机电流,实现外部断电;具有自我保护电路(一个两级降频限流保护和一个在异常情况下断电的过温完全保护电路) 在该温度控制系统中,其电源电路设计如下图3.5.1所示。 图3.5.1电源电路3.6串口通讯电路3.6.1MAX232电平转换芯片应用 本课题设计的通讯采用的是常见的串口通讯,协议转换芯片是采用MAX232A。MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。下图3.6.1为MAX232转换芯片的电路引脚图。 图3.6.1MAX232转换芯片的电路引脚图3.6.2MAX232电平转换芯片的引脚介绍第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。3.6.3 MAX232电平转换芯片的主要特点1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电 3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器 6、高集成度,片外最低只需4个电容即可工作。 这些器件特别适合电池供电系统,这是由于其低功耗关断模式可以将功耗减小到5uW以内。MAX225、MAXX233、MAX235以及MAX245/MAX246/MAX247不需要外部元件,推荐用于印刷电路板面积有限的应用。Max232主要特点有:符合所有的RS-232C技术标准;只需要单一 +5V电源供电;片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-;功耗低,典型供电电流5mA;内部集成2个RS-232C驱动器;高集成度,片外最低只需4个电容即可工作。51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。串口通讯接口图如下:图3.6.1 通讯接口电路3.7按键接口电路本课题按键接口电路如下图所示: 图3.8.1 按键接口电路3.8硬件实物图 第四章 系统软件的设计 由于整个系统软件比较复杂,为了便于编写、调试、修改和增删,系统程序的编制适合采用模块化的程序结构,故要求整个控制系统软件由许多独立的小模块组成,它们之间通过软件接口连接,遵循模块内数据关系紧凑,模块间数据关系松散的原则,将各功能模块组织成模块化的软件结构。 系统的软件设计主要包括对端口的初始化、DS18B20 模块设计(包括DS18B20 的复位、写命令字ROM 操作命令和存储操作命令)、读温度函数和数值处理函数设计以及串口通信设计等几部分。 主模块的功能是为其余几个模块构建整体框架及初始化工作;数据采集模块的作用是将数字量采集并储存到存储器中;数据处理模块是将采集到的数据进行一系列的处理。4.1程序结构分析 系统的软件主要是采用C语言,对单片机进行编程来实现各种功能。主程序对模块初始化,然后,读温度,处理温度,显示。主程序调用了以下几个子程序:温度信号处理程序,按键处理程序,继电器控制程序,单片机与PC机串口通讯程序。温度信号处理程序对温度芯片送来的数据进行处理、判断和显示。继电器控制程序用来控制继电器的运行。按键处理程序用来识别输入和进入相应程序。串口通讯程序用来实现PC机与单片机的通讯,将温度数据传给PC机。程序结构图如图4.2 图4.1系统程序流程图4.2主程序模块 主程序模块要做的主要工作是对系统初始化和构建系统整体软件框架,其中初始化包括对单片机的初始化、串口初始化等。然后等待温度设定,若温度已经设定好了,判断系统运行键是否按下,若系统运行,则依次调用各个相关模块,循环控制直到系统停止运行。主程序模块的程序流程图如图4.2所示 开始系统初始化 等待温度设定否 N读温度设定值 等待运行/停止键按下否 N Y数据采集温度显示PID运算控制输出运行/停止键按下否 Y N 图4.2主程序流程图4.3显示流程图主要通过对传输过来的信号进行显示后,给操作者提供提示,已达到本系统对温度显示和监控的目的。系统的显示流程图如图4.3 开始 串口初始化向缓冲区送数 查段码 送显示 结束 图4.34.4DS18B20数据采集模块 数据采集模块的任务是负责温度信号的采集以及将采集到的数字量提供给单片机。STC89C52通过控制DS18B20读取实时温度。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20有严格的通信协议来保证各位数据的传输的正确性和完整性。主机操作单线器件DS18B20必须遵循下面的顺序.1.初始化单线总线上的所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入Rx接收模式主机释放总线时,会产生一个上升沿。单线期间DS18B20检测到改上升沿后,延时15-60us,通过拉低总线60-240us来产生应答脉冲。主机棘手到从机的应答脉冲后,说明有单线器件在线。2.ROM操作命令一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。工有5位ROM操作命令。3.内存操作命令在成功执行了ROM操作命令之后,才可以使用内存操作命令。主机可以提供6种内存操作命令。4.数据处理DS18B20要有严格的时序来保证数据的完整性。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”几种信号类型。其中,出来映带脉冲之外,均由主机产生。数据位的读和写则是通过使用读、写时隙实现的。首先来看写时隙。当主机将数据从高电平来至低电平时,产生写时隙。有2种类型的写时隙:写“1”和写“0”。所有写时隙必须在60us以上,各个写时隙之间必须保证最段1us的恢复时间。DS18B20在DQ线变低后的15-60us的窗口对DQ线进行采样,如果为高电平,就写“1”;如果为低电平就写“0”。对于主机产生写“1”时隙的情况,数据线必须先被拉低,然后释放,在写时隙开始后的15us,允许DQ线来至高电平。读主机产生写“0”时隙的情况,DQ线必须被拉至低电平且至少保持低电平60us。再来看读时隙。当主机从DS18B20读数据时,把数据线从高电平来至低电平,产生读时隙。数据线DQ必须保持低电平至少1us,来自DS18B20的输出数据在读时隙下降沿之后15us内有效。因此,在此15us内,主机必须停止将DQ引脚置低。在读时隙结束时,DQ引脚将通过外部上拉电阻拉回来至高电平。所有的读时隙最短必须持续60us,各个读时隙之间必须保证延时到最段1us的恢复时间。所以的读写时隙至少需要60us,且每两个独立的时隙之间至少需要1us的恢复时间。在写时隙中,主机将在拉低中线15us内释放总线,并向DS18B20写“1”。若主机拉低总线后能保持至少60us的低电平,则向单总线期间写“0”。DS18B20仅在主机发生读时隙时才向主机传输数据,所以,当主机向DS18B20发生读数据命令后,必须马上产生读时隙,以便DS18B20能传输数据。4.5本章小结 本章主要讲单片机自动温度系统软件部分的流程图,也是系统设计的主要思路,通过流程图进行设计,达到对系统完整的运行,对温度的显示和控制。在分析了系统软件组成的基础之上,采用传统的前、后台方式编制系统软件,分别介绍了系统中的主程序模块、数据采集模块、数据处理模块。第五章 系统调试及结论分析 单片机应用系统样机组装好以后,便可进入系统的在线、联仿真器调试,其主要任务是排除样机硬件故障,并完善其硬件结构,试运行所设计的程序,排除程序错误,优化程序结构,使系统达到期望的功能,进而固化软件,使其产品化。5.1硬件调试单片机应用系统的硬件和软件调试是交叉进行的,但通常是先排除样机中明显的硬件故障,尤其是电源故障,才能安全地和仿真器相连,进行综合调试。5.1.1硬件电路故障及解决方法 1、错线、开路、短路:由于设计错误和加工过程中的工艺性错误所造成的错线、开路、短路等故障。解决方法:在画原理图时仔细检查、校正即可解决。2、元器件损坏:由于对元器件使用要求的不熟悉及制作调试过程中操作不当致使器件损坏。 解决方法:在设计过程中要明确各元器件的工作条件,严格按照制作要求进行操作,损坏的元器件要及时更换,以免损坏其他元件或影响电路功能的实现。 3、电源故障:设计中存在电源故障,即上电后将造成元器件损坏、无法正常供电,电路不能正常工作。电源的故障包括:电压值不符和设计要求,电源引出线和插座不对应,各档电源之间的短路,变压器功率不足,内阻大,负载能力差等。解决方法:电源必须单独调试好以后才能加到系统的各个部件中。本设计中就出现电源故障经过一个稳压电路才使其正常工作。5.1.2硬件调试方法 本设计调试过程中所用的调试方法有:静态测试、联仿真器在线调试等。 1.静态测试 在样机加电之前,首先用万用表等工具,根据硬件电器原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查扩展系统总线地址总线、数据总线和控制总线,是否存在相互间的短路或与其它信号线的短路。第二步是加电后检查各个插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位,若有高压,联机时将会损坏仿真器。第三步是在不加电情况下,除单片机以外,插上所有的元器件,最后用仿真适配器将样机的单片机插座和仿真器的仿真接口相连,为联机调试做准备。2. 联仿真器在线调试测试RAM存储器:用仿真器写命令将一批数据写入样机中扩展的RAM,然后用读命令读出其内容,若对任意单元读出和写入内容一致,则扩展RAM和单片机的连接没有逻辑错误。若读出写入内存不一致,则可能是地址数据线短路,试写入不同的数据观察读出结果,或缩小对RAM的读写范围,检查对RAM中其它区域的影响,这样可初步对地址数据线短路错误定位,再用万用表、示波器等进一步确诊。5.2软件调试5.2.1软件电路故障及解决方法 设计软件部分出现这种错误的现象:1.当以断点或连续方式运行时,目标系统没有按规定的功能进行操作或什么结果也没有,这是由于程序转移到意外之处或在某处死循环所造成的。解决方法:这类错误的原因是程序中转移地址计算错误、堆栈溢出、工作寄存器冲突等。在采用实时多任务操作系统时,错误可能在操作系统中,没有完成正确的任务调度操作,也可能在高优先级任务程序中,该任务不释放处理器,使CPU在该任务中死循环。通过对错误程序的修改使其实现预期的功能。2.不响应中断 CPU不响应中断或不响应某一个中断这种错误的现象是连续运行时不执行中断任务程序的规定操作,当断点设在中断入口或中断服务程序中时碰不到断点。 错误的原因有:中断控制寄存器、IE、IP的初值设置不正确,使CPU没有开放中断或不许某个中断源请求,或者对片内的定时器、串行口等特殊功能寄存器和扩展的I/O口编程有错误,造成中断没有被激活,或者某一中断服务程序不是以RETI指令作为返回主程序的指令,CPU虽已返回到主程序但内部中断状态寄存器没有被清除,从而不响应中断,或由于外部中断源的硬件故障使外部中断请求无效。解决方法:修改中断控制寄存器、IE、IP的初值设置。5.2.2软件调试方法软件调试所使用的方法有:计算程序的调试方法、I/O处理程序的调试法、综合调试法等。1. 计算程序的调试方法:计算程序的错误是一种静态的固定的错误,因此主要用单拍或断点运行方式来调试。根据计算程序的功能,事先准备好一组测试数据。调试时,用防真器的写命令,将数据写入计算程序的参数缓冲单元,然后从计算程序开始运行到结束,运行的结果和正确数据比较,如果对有的测试数据进行测试,都没有发生错误,则该计算程序调试成功。如果发现结果不正确,改用单步运行方式,即可检查出错误所在。计算程序的修改视错误性质而定。若是算法错误,那是根本性错误,应重新设计该程序。若是局部的指令有错,修改即可。如果用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行过程中暴露出来。2. I/O处理程序的调试:对于A/D转换一类的I/O处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方式进行调试。3. 综合调试:在完成了各个模块程序或各个任务程序的调试工作以后,便可进行系统的综合调试。综合调试一般采用全速断点运行方式,这个阶段的主要工作社排除系统中遗留的错误以提高系统的动态性能和精度。在综合调试的最后阶段,应在目标系统的晶振频率工作,使系统全速运行目标程序,实现了预定功能技术指标后,便可将软件固化,然后在运行固化的目标程序,成功后目标系统便可脱机运行。一般情况下,这样一个应用系统就算研制成功了。5.3实验结果5.4结论分析在调试过程中,故障是不可避免的,或者如老师所说没有故障反而还不正常。产生故障的原因很多,情况也很复杂,有的是因为一种原因引起的简单故障,有的是多种原因相互作用引起的复杂故障,因此我们需要掌握故障的一般诊断方法。故障诊断过程就是从故障现象出发,通过反复测试,做出分析判断,逐步找出故障。对于一个复杂的系统来说,要在大量的线路和元器件中迅速、准确地找出故障是件很不容易的事。要通过对原理图的分析,把系统分成不同功能的电路模块,逐一测量找出故障模块,然后再对故障模块内部加以测量找出故障,查找故障,分析故障和排除故障。这样可以提高我们分析问题和解决问题的能力,因此,我把它看成是一次好的学习机会。在程序的编辑和修改方面,问题出现得最为严重。首先,程序的编辑需要查找很多的资料。这次出现了芯片的初始化,因为第一次接触DS18B20这样的芯片,所以只有通过效仿人家的程序对这芯片进行初始化。对于整个程序来说,写出来花的时间并不是很多。但是在调试KEIL和PROTEUS当中,花费的时间却是很多的。在C程序转换成HEX文件的时候。由于出现了不计其数的错误,而导致一次又一次的失

温馨提示

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

评论

0/150

提交评论