1、摘要:关键词:温度,单片机,控制,传感器目录摘要:2第一章 绪论5第二章 设计方案521 系统结构522 设计思路6第三章 主要元器件介绍731 AT89C51单片机7311 概述7312 主要特性7313 引脚功能832 AD590温度传感器9321 概述9322 主要特性10323 工作原理1133 ADC0809模数转换器12331 主要特性12332 工作原理13第四章 硬件设计1441外围接口选择1442 温度控制电路1643 温度检测电路设计16431 设计目标16432 设计原理17433 转换电路17434 信号处理电路18435 主电路1944 光电隔离电路2045 过零检测
2、电路2046 PID控制算法21461 PID控制作用21462 PID算法的微机实现21463 PID算法的程序设计22第五章 软件设计2351 设计步骤24511 画出系统的程序框图24512 内存分配25第六章 系统调试2761 硬件调试方法27611 常见的硬件故障27612 联机调试28613 脱机调试2962 软件调试方法2963 误差分析30第七章 结论30参考文献31致谢32附录33第一章 绪论单片机具有体积小、功能强、可靠性好以及价格低等优势,在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。为此在本文中作者设计了基于Atmel公司的AT89
3、C2051单片机的温度控制系统。利用MCS-51单片机来对温度进行控制,具有控制方便、设计简单、灵活性强等优点,可以大幅度提高产品的质量和数量。并且设计的系统还可以根据实际的应用加以扩展实现更多的功能。温度是生产过程中最常见的物理量, 许多生产过程是以温度作为其被控参数的。因此, 因此,单片机对温度的控制问题是一个工业生产包括许多电力工程中经常会遇到的问题。本文介绍一种功能简化后的温度控制系统的设计过程。假设某一烘干道采用过热蒸汽为热源,蒸汽管道经热交换器加热空气并通过风机向烘箱提供热风以实现对胶布(带)的循环加热,烘箱中的温度变化范围为0120。 要求实现如下功能和指标: 温度给定值在85左
4、右且现场可调; 温度控制误差2; 实时显示温度值,保留1位小数;温度超过给定值10时声光报警; 控制参数可在线修改。第二章 设计方案21 系统结构该系统以89C51单片机为核心,由温度测量变换、测量放大、大功率运放、A/D与D/A转换器、输入光电隔离、驱动电路、键盘显示、存储器共同组成。在系统中,温度和时间的设置、温度值及误差显示、控制参数得设置、运行、暂停及复位等功能由键盘及显示电路完成。图2-1 单片机温度控制系统方案原理示意图传感器把测量的温度信号转换成弱电压信号,经过信号放大电路,送入低通滤波电路,以消除噪音和干扰,滤波后的信号输入到A/D转换器转换成数字信号输入单片机。22 设计思路
5、1、设计测量的温度范围为0120,控制精度也不高,可选用8路8位ADC0809作A/D转换器,分辨率可达0.5;为了方便操作,系统可不扩展专用键盘,温度给定输入可用2位BCD码拨盘开关置数;温度显示可用4位LED;为了实现通过调节蒸汽流量控温,可扩展8位DAC0832作D/A转换器。于是,单片机基本系统应为:8031+2764+8255+ADC0809+DAC0832+4位LED。2、温度测量可以选用半导体集成温度传感器AD590,它的响应速度快,与单片机接口简单。其测温范围为-55+150,工作电压430V,输出电流与绝对温度成正比,即为1A/K。执行机构可选用ZKZP-型线性电动单座调节阀
6、,用它来调节通入烘箱的蒸汽流量。调节阀用D/A转换器输出的可调电流控制,0mA对应阀门完全关闭,10mA对应阀门全打开。 3、可采用带死区的比例积分(PI)控制算法实现对温度的控制。温度与给定值的偏差小时,调节阀不动作,以减少阀的机械磨损;偏差较大时,经PI算法运算后,单片机通过D/A输出控制信号控制阀门的开度,为了使控制参数现场可调,可用3个电位器产生3路可调电压经过A/D转换实现对A/D转换,实现对PI算法的3个参数(比例系数Kp、积分系数KI、控制周期Tc)在线整定。这种方法不仅可使参数调整方便,而且具有掉电保护功能。4、为了提高系统的抗干扰能力,D/A转换器与单片机之间进行光电隔离。使
7、电动阀和单片机之间不共地。第三章 主要元器件介绍31 AT89C51单片机311 概述AT89C51是一个低电压,高性能CMOS 8位单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口。片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),可以按照常规方法进行编程,也可以在线编程。器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性
8、价比的解决方案。312 主要特性AT89C51的主要特性如下: 三级程序存储器锁定寿命达1000写/擦循环全静态工作:0Hz24MHz 1288位内部RAM 低功耗闲置和掉电模式32可编程I/O线 2个16位定时器/计数器6个中断源可编程串行通道片内振荡器和时钟电路313 引脚功能AT89C51引脚排列如图3-1所示: 图3-1 AT89C51的引脚排列引脚功能如下:VCC(40):5VGND(20):接地P0口(3932):P0口为8位漏极开路双向I/O口,每个引脚可吸收8个TTL门电流。 P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电
9、流。 P2口(2128):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流。 P3口(1017):P3口是8个带有内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口。 RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间。 ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是
10、,每当访问外部数据存储器时,将跳过1个ALE脉冲。 PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取值期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现。 EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000HFFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。 32 AD590温度传感器321 概述AD590是AD公司利用PN结正向电流与温度的关系制成的
11、电流输出型两端温度传感器。这种器件在被测温度一定时,相当于一个恒流源。该器件具有良好的线性和互换性,测量精度高,并具有消除电源波动的特性。即使电源在5-15V之间变化,其电流只是在1A以下作微小变化。AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分档,AD590后缀以I、J、K、L、M表示。AD590L、AD590M一般用于精密温度测量电路。它采用金属壳3脚封装,其中1脚为电源正端V+,2脚为电流输出端I0,3脚为管壳,一般不用。图3-2 AD590实物图及电路符号322 主要特性AD590的主要特性参数如下:工作电压:430V工作温度:-55+150保存温度:-
12、65+175正向电压:+44V反向电压:-20V焊接温度(10秒):300灵敏度:1A/K323 工作原理在被测温度一定时,AD590相当于一个恒流源,把它和5-30V的直流电源相连,并在输出端串接一个1K的恒值电阻,此电阻上流过的电流与被测温度成正比,此时电阻两端将会有1mV/K的电压信号。其基本电路如图3-3所示。 图3-3 感温部分的核心电路图3是利用URE特性的集成PN结传感器的感温部分核心电路。其中T1、T2起恒流作用,可用于使左右两支路的集电极电流I1和I2相等;T3、T4是感温用的晶体管,两个管的材质和工艺完全相同,但T3实质上是由n个晶体管并联而成,因而其结面积是T4的n倍。T
13、3和T4的发射结电压URE3和URE4经反极性串联后加在电阻R上,所以R上端电压为URE。因此,电流II为:II=URE/R=(KT/q)(Inn)/R对于AD590,n=8,这样,电路的总电流将与热力学温度T成正比,将此电流引至负载电阻RL上便可得到与T成正比的输出电压。由于利用了恒流特性,所以输出信号不受电源电压和导线电阻的影响。图3中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了其电阻值,因而在基准温度下可得到1A/K的I值。 AD590的内部结构电路如图3-4所示。 图3-4 AD590的内部结构33 ADC0809模数转换器331 主要特性ADC0809的主要特性指标:分辨率
14、:n=8时钟频率:小于640KHZ转换时间:大于等于100微秒不可调误差:1LSB电源:单电源正5V模拟输入量:8路模拟输入范围:05V参考电压:Uref(+)Uref(-)=5V332 工作原理ADC0809为逐次逼近式A/D转换器,具有8个模拟量输入通道。它能与微型计算机的大部分总线兼容,可在程序的控制下选择8个模入通道之一进行A/D转换, 然后把得到的8位二进制数据送到微机的数据总线,供CPU处理。转换器是ADC0809的核心部分,它由D/A转换、逐次逼近寄存器(SAR)、比较器等组成。其中,D/A转换电路采用了256RT型电阻网络(即2n个电阻分压器,此处n=8),它在启动脉冲的上升沿
15、来到时被复位,在启动脉冲的下降沿A/D开始转换。如果在转换过程中接收到新的启动转换脉冲,则终止转换。转换结束信号EOC在A/D转换完成时为“1”。ADC0809的管脚图如图3-5所示: 图3-5 ADC0809的管脚图ADC0809的内部结构如图3-6所示:图3-6 ADC0809的内部结构第四章 硬件设计41外围接口选择根据方案,采用8031外扩2764作程序存储器;8255外扩4位LED用于显示温度、声光报警和扩展光电隔型DAC产生010mA可调电流控制电动阀;外扩8路8位ADC0809作温度测量和通过3个电位器产生3个可调控制参数;2位BCD码给定拨盘则和8031的P1口相连。完整的硬件
16、电路组成如图4-1所示:图4-1 硬件电路原理图图4-1中,通过8255的PA口和PC0PC3口扩展4位LED;通过PB口和PC5扩展光电隔型D/A,DAC0832设置为单缓冲方式,VREF=-5V,于是经运算放大器A1后产生05V可调直流电压,再经运算放大器A2在复合三极管T的集电极和+12V电源之间产生010mA可调电流,以便控制电动阀的动作(图4-1中,RW1于调整满量程值,D1用于保护三极管T);通过总线直接扩展ADC0809,由于仅使用4路,故选择通道的C端直接接地,由于温度传感器是输出电流信号且与绝对温度成正比,故采用电平移动电路及放大电路使运算放大器A3输出电压值与摄氏温度成正比
17、(图4-1中RW2,RW3分别用语温度测量电路的零点调节和满量程调节);声音报警电路中,蜂鸣器采用长鸣形式,由门电路构成1s振荡器产生的响音;2位BCD码给定拨盘则和8031的P1口直接接口,各位又通过2k电阻接地。由于各扩展芯片用线选发产生片选信号,故他们的接口地址分别为:2764:0000H1FFFH8255:7000H7003HADC0809:B000HB003H42 温度控制电路8031对温度的控制是通过双向可控硅实现的。如单片机温度控制系统电路原理图所示,双向可控硅管和加热丝串接在交流220V、50Hz是电回路。在给定周期T内,8031只要改变可控硅管的接通时间即可改变加热丝的功率,
18、以达到调节温度的目的。可控硅接通时间可以通过可控硅控制极上触发脉冲控制。该触发脉冲由8031用软件在P3.1引脚上产生,在过零同步脉冲同步后经光电耦合管和驱动器输出送到可控硅的控制极上。43 温度检测电路设计431 设计目标用单片机对温度进行实时检测和控制,以解决工业及日常生活中对温度的及时自动控制问题;用十进制数码显示实际温度值,方便人工监视;用键盘输入温度控制范围值,便于在不同应用场所设置不同温度范围值。当实际温度值不在该范围时,系统能自动调节温度, 以保持设定的温度基本不变,达到自动控制的目的。系统的温度最小区分度为1。在环境温度变化时,温度控制的静态误差小于等于0.5。432 设计原理
19、因为89C51单片机片内含4KB的EEPROM,不需外扩展存储器,可使系统整体结构简单。利用89C51串行口输出工作方式,使外部电路得以简化。89C51可直接对键盘进行扫描读数,可直接用串/并转换模块驱动LED显示温度值。因其利用率高,负载重,后相电路需加一块同相驱动器。在串行传输数据时,频率可达到1MHz,对温度的显示完全达到测控精度要求。 433 转换电路在设计测温电路时,首先应将电流转换成电压。由于AD590为电流输出元件,它的温度每升高1K,电流就增加1A。当AD590的电流通过一个10K的电阻时,这个电阻上的压降为10mV即转换成10mV/K,为了使此电阻精确(0.1%),可用一个9
20、.6K的电阻与一个1K电位器串联,然后通过调节电位器来获得精确的10K。下图所示是一个电流/电压和绝对/摄氏温标的转换电路,其中运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗。而运放A2的作用是把绝对温标转换成摄氏温标,给A2的同相输入端输入一个恒定的电压(如1.235V),然后将此电压放大到2.73V。这样,A1与A2输出端之间的电压即为转换成的摄氏温标。将AD590放入0的冰水混合溶液中,A1同相输入端的电压应为2.73V,同样使A2的输出电压也为2.73V,因此A1与A2 两输出端之间的电压:2.73-2.73=0即对应于0 图4-2 电流/电压和绝对/摄氏温标的转换电路434
21、 信号处理电路 温度检测的小信号放大与绝对/摄氏温度转换采用图电路,其中RW用来完成绝对/摄氏温度转换及调零功能,运放要求采用一片集成普通四运放LM324来完成图的信号处理功能,其工作电源取单电源VCC=9V。设计中电阻元件可参考下列取值:R1=R2=10K、R3=R4=20K、R5=R6=20K、RG=5K、RW=10K;高频滤波电容可取C=0.01F。 图4-3 信号处理电路435 主电路 主电路如图4-4所示,温度检测信号输入ADC0809的IN3引脚,经过模数转换结果输入AT89C51,结果从P1口输出驱动2个LED实现数据显示功能。图4-4 温度检测主电路44 光电隔离电路这部分电路
22、是单片机与电阻丝加热器的接口。由于电阻丝的加热电压大于单片机的工作电压,为了避免烧坏单片机系统,采用光电隔离电路如图4-5所示。图4-5 光电隔离及放大电路45 过零检测电路过零检测电路在每一个电源周期开始时产生一个脉冲,作为触发器的同步信号, 计数器T0对其进行计数。其电路如图4-6所示。220V交流电压经电阻限流后直接加到2个反相并联的光电偶器的输入端。在交流电源的正负半周, 分别导通, 输出低电平, 在交流电源正弦波过零的瞬间,两个光电耦合器均不导通, 输出高电平。该脉冲信号经非门整形后作为单片机的中断请求信号和可控硅的过零同步信号。图4-6 过零检测电路46 PID控制算法前面提到,大
23、多数的温度控制系统可以看作一阶纯滞后环节,由于本系统纯滞后时间较小,故可采用PID(比例、积分、微分)控制算法实施控制。461 PID控制作用PID是比例(P)、积分(I)和微分(D)3个控制作用的组合。连续系统PID控制器的微分方程为:y(t)= KPPe(t)+ (4-1)式中 y(t)为控制器的输出;e(t)为控制器的输入;KP比例放大系数;TI为控制器的积分时间常数;TD为控制器的微分时间常数。显然,KP越大,控制器的控制作用越强;只要e(t)不为0,积分项会因积分而使控制器的输出变化;只要e(t)有变化的趋势,控制器就会在微分作用下,在偏差出现且偏差不大时提前给输出一个较强的控制作用
24、。462 PID算法的微机实现由于微机控制系统是一种时间离散控制系统,故必须把微分方程离散化为差分方程,最终写出递推公式才能直接应用。显然: (4-2) (4-3)于是, KPe(n)+e(n)-e(n-1) (4-4)式中t=T,为采样周期;e(t)为第n次采样的偏差值;e(n-1)为第(n-1)次采样时的偏差值;n为采样序列,n=0,1,2,。由式(4-4)可以看出:计算一次Y(n),不仅需要的存储器空间大,而且计算量也很大,于是进一步写出递推公式:由 Y(n-1)= KP e(n-1)+ +e(n-1)-e(n-2) (4-5) 由式(4)减去式(5)得: Y(n)=Y(n)-Y(n-1
25、) =KP e(n)-e(n-1)+e(n)-2e(n-1)+e(n-2) = KPe(n)-e(n-1)+ KI e(n)+KDe(n)-2e(n-1)+e(n-2) (4-6) 或 Y(n)=Y(n-1)+ KPe(n)-e(n-1)+ KI e(n)+KDe(n)-2e(n-1)+e(n-2)(4-7)式中 KI=KP,称为积分常数;KD=KP,称为微分常数。463 PID算法的程序设计在本控制系统中,烘箱温度与给定值的偏差经过单片机PI算法运算后从DAC0832输出010mA控制电流去控制电动阀的开度,所以应采用式(7)的位置式算法(且KD=0即为PI),即:YPI(n)=Y(n-1)
26、+ KPe(n)-e(n-1)+ KI e(n)(4-8)如果设KP,KI为纯小数,KP,KI,e(n),e(n-1)分别放在8031片内RAM的25H,26H,29H,2AH中,PI结果YPI(n)放在R3R4中,则PI控制程序如下: PI:MOV A,29H ;e(n) CLR C SUBB A,2AH ;e(n)-e(n-1) MOV B,25H ;KP LCALL MULTS ;KP e(n)-e(n-1) MOV R4,A MOV R3,B ;暂存于R3R4 MOV A,29H ;e(n) MOV A,26H ;KI LCALL MULTS ;KI e(n) ADD A,R4 MOV
27、 R4,A MOV A,B ADDC A,R3 MOV R3,A ;R3R4= KP e(n)-e(n-1)+ KI e(n) RETMULTS:CLR F0 ;置e(n)符号标志位为正 JNB ACC.7,MUL1 SETB F0 ;置e(n)符号标志位为负 CPL A INC A ;取绝对值MUL1:MUL AB JNB F0,MUL2 CPL A ADD A,#1 MOV R2,A MOV A,B CPL A ADDC A,#0 MOV B,A MOV A,R2 ;还原为补码MUL2:RET第五章 软件设计本系统的控制软件可设计为一个主程序和一个T0通道中断服务程序。主程序的功能是完成系
28、统初始化及温度和设定参数的显示,由于只有4位LED,而温度BCD码设定值正常工作时应在85左右,不可能太小,故可以用它设定为小值时来选择显示参数;T0通道可定时100ms,其中,定时1s完成数据的采集、报警和显示处理,定时Tc秒完成控制算法的运算和控制输出。51 设计步骤511 画出系统的程序框图如图5-1所示,为主程序框图,为T0通道中断服务程序框图。T0中断服务程序是温度控制系统的主体程序,用于启动A/D转换,读入采样数据,数字滤波,越限温度报警和越限处理,PID计算和输出可控硅的同步触发脉冲等。P1.3引脚上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8031利用等待T1溢出中断
29、空隙时间完成把本次采样值转换成显示值而放入显示缓冲区和调用温度显示程序。8031从T1中断服务程序返回后便可恢复现场和返回主程序,以等待下次T0中断。图5-1 温度控制系统程序框图512 内存分配为了编程方便,可以把8031的内部128B RAM先进行分配;也可在程序中用标号代替,最后用EQU或DATA定义。如果先对内存进行分配,本系统可分配为: 00H07H,R0R7供主程序使用 08H0FH,R0R7供T0中断服务程序使用 20H 定时1s时间常数(初值为10) 21H 8255A口数据暂存(显示器段码) 22H 8255B口数据暂存(D/A数据) 23H 8255C口数据暂存 24H 8
30、031 P1 口的T给定BCD值暂存。当T给定=01H时,显示的数据为KP参数,格式为P-;当T给定=02H,显示器显示的数据为KI参数,格式为I-;当T给定=03H,显示器显示的数据为Tc参数,格式为T-;T给定为其他值(85左右),显示器显示的数据为温度测量值 25H KP参数暂存 26H KI参数暂存 27H Tc参数暂存 28H T测量值(A/D)暂存 29H e(n)参数暂存 2AH e(n-1)参数暂存 2BH2EH 4次A/D值暂存 2FH 定时Tc秒调节工作单元 30H31H T测量BCD码值暂存、格式为. 32H T测量值实际温度暂存 50H7BH SP指针工作区 7CH7F
31、H 显示缓冲区(从左到右)第六章 系统调试系统调试通常包括实验室硬件联调、实验室软件联调、实验室系统仿真、仿真考机运行和现场安装调试等几个环节。在系统总装以后,首先要进行实验室条件下的系统硬件联调;联调成功以后,有了硬件操作保证,就很容易发现软件的错误,在软件调试过程中,有时也会发现硬件故障,软件故障完毕,硬件中的隐藏问题也能被发现和纠正;在进入现场以前,还必须在实验室条件下把存在的问题充分暴露,并加以解决,通常是用模型代替实际系统进行完全仿真调试,通过后进行连续不停机的48h考机运行,正确无误后再进入现场安装,运行成功并经过一定时间的使用,最终验收合格才算完成整个系统的设计工作。下面通过硬件
32、和软件两方面介绍相应的调试方法。61 硬件调试方法611 常见的硬件故障1、元器件失效 可能是两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、二极管的极性错误、集成电路安装方向错误等。2、逻辑错误 它是由设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路、相位错等。3、可靠性差 引起可靠性差的原因很多,如金属化孔、虚焊接触不良会造成系统时好时坏,经不起振动;内部和外部干扰、电源纹波系数大、器件负荷过大等造成逻辑电平不稳定;走线和布局不合理也会引起系统可靠性差。612 联机调试 通过脱机调试可排除一些明显的硬件故障,但有些故障还必须通过
33、联机调试才能发现和排除。联机前先断电,将单片机开发系统的仿真头插到样机的8031插件上,检查开发机和样机之间的电源、接地是否良好。一切正常后,即可打开电源。通电后执行开发机的读写指令,对样机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察有关波形(如选中的译码器输出波形、读写控制信号、地址数据波形以及有关的控制电平)。通过对波形的观察分析,寻找故障原因并进一步排除故障。可能的故障有:路线连接上有逻辑错误、有断路或短路现象、集成电路失效等。在样机主机部分调试好后,可以插上系统的其他外围部件,例如键盘、显示器、输出驱动板、A/D及D/A板等,再对这部分进行初步调试。在调试过程中
34、若发现用户系统工作不稳定,可能有下列情况:电源系统供电不足,或联机时公共地线接触不良,或用户系统主板负载过大,或用户的各级电源滤波不完善等。对这些问题一定要查出原因并加以排除。613 脱机调试 在样机加电以前,先用万用表等工具根据硬件电气原理和装配图仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求,特别应注意电源的走线,防止电源线之间短路和极性错误,并检查扩展系统总线是否存在相互短路或与其他信号线的短路。对于样机所用电源,事先必须单独调试。调试好后,检查其电压值、负载能力、极性等均符合要求,才能加到系统的各个部件上。在不插芯片的情况下,加电检查各插件上引脚的电位,仔细测量各
35、点电位是否正常,尤其应注意8031插座上各电位是否正常,若有高压,联机时将损坏仿真器。式的复位电路后,系统运行正常。62 软件调试方法软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块分别调试。调试各子程序时一定要符合现场环境,即入口条件和出口条件。调试手段可采用单步或设置断点运行方式,通过检查系统CPU 的现场,ARM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。通过检测可发现程序中的死循环错误、机器码错误及转移地址的错误。同时也可以发现用户系统中的硬件故障,软件算法及硬件设计错误。在调试过程中不断调试用户系统的软件和硬件,逐步通过一个个程序模块。
36、 各模块通过以后,可以把有关的功能块联合起来一起进行综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,标志位的建立和清除在设计上有无失误,堆栈区域有无溢出,输入设备的状态是否正常等等。若用户系统是在开发机的监控下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,不能确定定时精度,CPU的实时响应等问题。待全部调试完成后,应反复运行多次,除了观察稳定性之外,还要观察系统的操作是否符合原始设计要求,安排的用户操作是否合理等,必要时应再作适当的修正。 如果采用实时多任务
37、操作系统,一般是逐个任务进行调试,调试方法与上述基本类似,只是实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。调试好以后,再使各个任务程序同时运行,如果操作程序无错误,一般情况下就能正常运行。63 误差分析集成温度传感器误差校正:校正误差和温度误差。校正误差:传感器在实际使用中所指示的温度值和实际温度值的差值,该误差大小和温度成正比,通过调整外部电阻可得到补偿。在T=27时只要调整R1使vT=300mV即可。该一点调整法不能修正整个范围内的误差。温度误差(校正误差调整后):温度特性的非线形引
38、起的误差。如不进行误差调整,则总误差为校正误差与非线形误差之和,误差较大。调整Rwl使其在0时输出为0V,调整Rw2使其在50时输出为5V,再进行测温,精度提高。系统理论测控精度为04 ,而实际显示时,只有1 ,原因在于系统误差、固有误差、元件误差等的存在。定性分析主要误差来源有:检测元件的固有误差、转换的误差、数据量化误差。本设计有待于进一步提高测控精度、减小误差、进一步提高系统性能。第七章 结论本设计介绍的单片机温度控制系统,可了解微机系统硬、软件的构成及各种控制参数变化对系统动、静态特性的影响。系统用PID控制算法实现温度控制,可以使系统的精度达到0.1,准确度和稳定性都可以令人满意。系
39、统还以单回路控制为例,极易扩展成多回路控制。MCS-51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。本文的温度控制系统,只是单片机广泛应用于各行各业中的一例,相信单片机的应用会更加广泛化。本系统的设计方案有多种,上述方案是从多种方案中选出的最优方案,其具有功能强、成本低、元件少、精度高、可靠性好、稳定性高、抗干扰性强、执行速度快、简单易行、具有实效性、使用范围广等特点,故具有推广价值。参考文献1 王树勋.MCS单片微型计算机原理与开发M;北京:机
40、械工业出版社,19952 马江涛. 单片机温度控制系统的设计及实现J. 计算机测量与控制 , 2004,(12) . P121912293 何力民.MCS系列单片机应用系统设计M;北京:北京航空航天大学出版社,19934 潘新民王燕芳微型计算机控制技术实用教程M北京:电子工业出版社,20075 徐科军传感器与检测技术M北京:电子工业出版社,20076 张开生,郭国法MCS-51单片机温度控制系统的设计J微型计算机信息,2007 7 李晓妮. 单片机温度控制系统的设计J. 九江学院学报(自然科学版) , 2005,(02) . P2023 8 龚红军. 单片机温度控制系统J. 电气时代 , 20
41、02,(10) . P1718 9 冯越,杨继华,俞曙滨. 单片机温度控制系统J. 自动化技术与应用 , 1998,(02) . P363810 姜波. 单片机温度自动控制系统J. 自动化与仪器仪表 , 1996,(05) P515911马明建数据采集与处理技术M西安交通大学出版社,20059,(02)P868912曹龙汉,刘安才,高占国MCS-51单片机原理及应用M重庆出版社,2004,10P22924713 ATMELMicrontroller Data Book.1995P4650致谢 附录: 源程序清单(1)主程序 ORG 0000H LJMP START ORG 0003H LJMP T0 ORG 0030H START:MOV SP,#50H ;主程序入口,置SP指针 LCALL D100ms ;延时,使8255复位可靠 CLR A MOV R0,#20H MOV R1,#60H CLR1:MOV R0,A INC R0 DJNZ R1,CLR1 ;清内存单元 MOV 20H,#10 ;定时1s初值 MOV A,P1