




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的恒温箱控制系统设计 仪器与系统课程设计专业班级:测控09-1班姓名:李科 20090006 徐贺 20090007 冯增涛 20090008 任兴 20090009 高达睿 20090010 宋杰 20090011指导老师:吴晔 张阳 党学明 洪占勇目录1引言12系统概述12.1简述13设计思路分析14方案论证24.1温度传感器24.2显示部分24.3输出控制35硬件设计及工作原理35.1系统功能及工作流程介绍35.2功能模块45.3系统硬件设计55.3.1DS18B20测温电路55.3.2DS18B20的特点介绍55.3.3DS18B20的引脚及功能介绍55.3.4DS18B20
2、的使用方法6 5.3.5 温度越线报警电路. 85.4 PID算法设计6系统的应用软件设计126.1软件描述126.1.1键盘管理模块136.1.2显示模块136.1.3控制模块136.1.4温度报警模块146.1.5主程序和中断服务程序流程147系统调试与仿真167.1 硬件调试167.1.1脱机检查167.1.2仿真调试167.1.3检查CPU的时钟电路167.2 软件调试167.2.1手工汇编167.3 系统仿真168抗干扰技术178.1硬件抗干扰技术178.2软件抗干扰技术17参 考 文 献4041基于单片机的PID恒温箱控制系统设计1.引言恒温控制在工业生产过程中举足轻重,温度的控制
3、直接影响着工业生产的产量和质量。本设计是基于AT89C51单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括:键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计。编写程序结合硬件进行调试,能够实现设置和PID调节温度值,另外,进行数码管显示。本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。2.系统概述简述传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差、测量温度准确率低,而且必须
4、经过专门的接口电路转换成数字信号后才能由单片机进行处理。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在温度控制器中应用单片机,具有设计简单、可靠性高、控制精度高,功能易扩展,有较强的通用性等优点。温度控制器主要实现对恒温箱温度的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能: 温度的测量与显示;用户设定功能(如温度设定,定时设定等);实现PID控制温度功能; 本文将采用一种数字温度传感器来实现基于51单片机的恒温箱控制系统设计。整个控制系统分为硬件电路设计和软件程序设计两部分。在本设计中,需要达到以下几点技术要求:(1) 控制温度范围5
5、0-120摄氏度,控制精度为2摄氏度;(2) 温度采集数字量输入;(3) 键盘按键输入,具有设定功能;(4) 显示功能,数码管显示设定值及当前所设定温度值;(5) 具有超温报警功能.3设计思路分析设计51单片机的恒温箱控制系统设计时,需要考虑下面3个方面的内容: 选择合适的温度传感器芯片。显然,本文中的核心器件是单片机和温度传感器,单片机采用常用的51单片机即可,而温度传感器的选择则需慎重。 单片机和温度传感器的接口电路设计。 控制温度传感器实现温度信息采集以及数据传输的软件设计。4方案论证4.1温度传感器方案一:采用热敏电阻,可满足4090的测量范围,但热敏电阻精度、重复性、可靠性都比较差,
6、其测量温度范围相对较小,稳定性较差,不能满足本系统温度控制的范围要求。方案二:采用温度传感器铂电阻 Pt1000。铂热电阻的物理化学性能在高温和氧化性介质中很稳定,它能用作工业测温元件,且此元件线性较好。在 0100 摄氏度时,最大非线性偏差小于 0.5 摄氏度。铂热电阻与温度关系是,Rt = R0(1+At+Bt*t) ;其中 Rt 是温度为 t 摄氏度时的电阻;R0 是温度为 0 摄氏度时的电阻;t 为任意温度值,A,B 为温度系数。方案三:采用模拟温度传感器AD590K,AD590K具有较高精度和重复性(重复性优于0.1),其良好的非线性可以保证优于0.1的测量精度。但其测量的值需要经过
7、运算放大、模数转换再传给单片机,硬件电路较复杂,调试也会相对困难,所以本系统不宜采用此法。方案四:采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围-55125,采用独特1-WIRE 总线协议,只需一根口线即实现与MCU 的双向通讯,具有连接简单,高精度,高可靠性等特点。并且,DS18B20支持一主多从,若想实现多点测温,可方便扩展。综合以上四种方案,本设计采用第四种方案,利用数字温度计DS18B20作为温度传感器。4.2显示部分方案一:采用I/O口直接驱动,需要占用大量可贵的I/O口资源,且系统运行后,更换元件不易,不符合系统设计的可靠性、易扩展性原则。方案二:采用串
8、行口驱动、静态显示,利用单片机的串行口输出数据,显示多位数码,可节省大量的I/O口,但每个数码管必须有一个驱动芯片,且每位段码须接一个限流电阻,所须元件多,硬件电路比较复杂。方案三:采用串行口驱动、动态扫描显示,利用单片机的串行口输出数据,显示多位数码,多个数码管可共用驱动芯片和限流电阻。这样既可以简化硬件电路,又可以节省大量的I/O口线,为功能扩展留下空间。综合以上三种方案,本设计采用方案三:串行口驱动、动态显示。根据系统具体指标要求,可以对每一个具体部分进行分析设计。4.3输出控制方案一:采用继电器,易于控制,且实行比较简单,但强电和弱电不能很好的隔离,抗干扰能力极差。方案二:采用光电藕合
9、器,控制信号与输出信号可以很好的隔离,增强了系统的安全性和抗干扰能力。综合以上两种方案,本设计采用继电器控制负载工作。5硬件设计及工作原理5.1系统功能及工作流程介绍根据恒温箱控制器的功能要求,并结合对51系列单片机的资源分析,即单片机软件编程自由度大,可用编程实现各种控制算法和逻辑控制。所以采用AT89C51作为电路系统的控制核心。按键将设置好的温度值传给单片机,通过温度显示模块显示出来。初始温度设置好后,将从数字温度传感器DS18B20测量到的温度值实时的显示出来,当超过或低于设定温度值时,单片机控制声光报警模块,发出声光报警,并通过PID调节以达到恒温控制的目的。系统结构框图如图1所示,
10、系统基本硬件电路图如图2所示,在本系统中,DP1DP3用于七段数码显示;P1.0用于接收DS18B20采集到的数字温度信号;FUZA1控制光电开关,决定电阻丝的工作;K1K3用于按键控制;BELL和P1.4、P1.5用于控制扬声器和发光二极管,进行声光报警;串行口用于输出显示段码;P2.0、P2.1用于对数码管进行动态扫描。图1 系统结构框图图2 基本硬件电路图5.2功能模块根据上面对工作流程的分析,系统软件可以分为以下几个功能模块:(1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。(2) 显示:显示设置温度及当前温度。(3) 温度检测及温度值变换:完成A/D转换。(4) 温度控制:
11、通过PID实现恒温控制。(5) 报警:当当前温度超过或低于预置温度时报警。5.3系统硬件设计5.3.1DS18B20测温电路DS18B20数字温度计是Dallas公司生产的1Wire器件,即单总线器件。与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化成串行数字信号,以供单片机处理,具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点。因此用它来组成一个测温系统,具有电路简单,在一根通信线上可以挂很多这样的数字温度计,十分方便。目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等)。通过编程,DS18B20可以实现
12、912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。每片DS18B20在出厂时都设有唯一的产品序列号,因此多个DS18B20可以挂接于同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。5.3.2DS18B20的特点介绍(1)独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任何外围元件。 (3)可用数据
13、线供电,电压范围:+3.0+5.5 V。 (4)测温范围为-55 +125 。在-10+85范围内误差为0.5 。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,通过识别芯片各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(9)告警寻找命令可以识别和寻址那些温度超出预设告警界限的器件。5.3.3DS18B20的引脚及功能介绍DS18B20的外形及TO92封装引脚排列见左图,其引脚功
14、能描述见表1,实测温度和数字输出的对应关系见表2.表1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。表2 温度值分辨率配置表温度数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2h+0.50000 000
15、0 0000 10000008H00000 0000 0000 0000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FF6FH-551111 1100 1001 0000FC90H 5.3.4DS18B20的使用方法 由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是
16、在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1) DS18B20的复位时序,见图3图3 DS18B20的复位时序图置总线为低电平并保持至少480us,然后拉高电平,等待从端重新拉低电平作为响应,则总线复位完成。(2) DS18B20的读时序,见
17、图4。图4 DS18B20的读时序图对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 (3) DS18B20的写时序 ,见图5。图5 DS18B20的写时序图对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序
18、时,单总线被拉低之后,在15us之内就得释放单总线。 (4) DS18B20在电路中的连接,见图6。1- wire总线支持一主多从式结构,硬件上需外接上拉电阻。当一方完成数据通信需要释放总线时,只需将总线置高点平即可;若需要获得总线进行通信时则要监视总线是否空闲,若空闲,则置低电平获得总线控制权。图6 DS18B20测温电路5.3.5温度越线报警电路报警电路如图7所示,该电路采用一个小功率三极管Q1驱动蜂鸣器BELL,当单片机接收到超额温度信号或危险信号时,输出脚BELL输出高点平,Q1导通,致使蜂鸣器BELL得电工作,发出报警声。同时,电路中的发光二极管指示出电路的工作状态。图7 报警电路5
19、.4 PID算法的微机实现由于微机控制系统是一种时间离散控制系统,故必须把微分方程离散化为差分方程,最终写出递推公式才能直接应用。显然: (5-1) (5-2)于是, KPe(n)+e(n)-e(n-1) (5-3)式中t=T,为采样周期;e(t)为第n次采样的偏差值;e(n-1)为第(n-1)次采样时的偏差值;n为采样序列,n=0,1,2,。由式(5-3)可以看出:计算一次Y(n),不仅需要的存储器空间大,而且计算量也很大,于是进一步写出递推公式:由 Y(n-1)= KP e(n-1)+ +e(n-1)-e(n-2) (5-4) 由式(3)减去式(4)得: Y(n)=Y(n)-Y(n-1)
20、=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) (5-5) 或 Y(n)=Y(n-1)+ KPe(n)-e(n-1)+ KI e(n)+KDe(n)-2e(n-1)+e(n-2)(5-6)式中 KI=KP,称为积分常数;KD=KP,称为微分常数。5.4.1 PID算法的程序设计在本控制系统中,测量的温度与给定值的偏差经过单片机PI算法运算后经过控制电路驱动。所以应采用式(5-6)的位置式算法(且KD=0即为PI),即:YPI(n)=Y(n-1)+ KPe(n)-e(n-1)+
21、KI e(n)(5-7)如果设KP,KI为纯小数,KP,KI,e(n),e(n-1)分别放在89C51片内RAM的25H,26H,29H,2AH中,PI结果YPI(n)放在R3R4中,则PI控制程序如下: PI:MOV A,29H ;e(n) CLR C ;带Cy的减法指令 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 B,26H ;KI LCALL MULTS ;KI e(n) ADD A,R4 ;两个低四位数相加
22、 MOV R4,A MOV A,B ADDC A,R3 ;两个高四位带Cy相加 MOV R3,A ;R3R4= KP e(n)-e(n-1)+ KI e(n) RETMULTS:CLR F0 ;置e(n)符号标志位为正 JNB ACC.7,MUL1 ;若ACC.7=0转到MUL1 SETB F0 ;置e(n)符号标志位为负 CPL A ;取反 INC A ;取绝对值MUL1:MUL AB ;相乘,高四位放入B中,低四位放入A中 JNB F0,MUL2 ;若F0=0转到MUL2 CPL A ADD A,#1 MOV R2,A MOV A,B CPL A ADDC A,#0 ;带Cy的加法指令 M
23、OV B,A MOV A,R2 ;还原为补码MUL2:RET5.4.2 输出控制电路温度偏差通过PID算法输出通过硬件电路输出PWM信号,从而控制固体继电器的通断实现恒温控制。 图86系统的应用软件设计6.1软件描述在软件设计时,电阻丝开始时处于停止状态,首先设定温度,显示器显示温度,温度设定后则可以启动加热。温度检测系统不断检测并显示系统中的实时温度,并通过PID不断的调节电阻丝的工作,使温度保持在设定范围之内。根据以上对操作和工作过程的分析,程序分为以下几个功能模块:温度设定和启动;显示;温度检测;温度控制以及报警。6.1.1键盘管理模块键盘管理子程序流程如图9所示。图9 键盘处理程序流程
24、当通电或复位以后,系统进入键盘管理状态,。当检测到有键闭合时先去除抖动,这里采用软件延时的方法,延时一段时间后,再确定是否有键闭合,然后将设定好的值送入预置温度数据区,并调用温度合法检测报警程序,当设定温度超过或低于设定值时就会报警,最后通过PID调节电阻丝达到恒温。键盘设定:用于温度设定。共三个按键。 KEY1(P1.1): 状态切换;温度设置确认;温度重新设置。KEY2(P1.2): 设置温度“+”。KEY3(P1.3): 设置温度“-”。 系统上电后,数码管全部显示为零,根据按 KEY1 次数,决定显示的状态,根据相应的状态,利用KEY2、KEY3进行加减,当温度设定好之后,再按KEY1
25、确定,系统开始测温,开启加热器。6.1.2显示模块显示子程序的功能是将缓冲区的二进制数据先转换成3个BCD码,再将其分别存入百位、十位、个位3个显示缓冲区,送往串行口,利用单片机的P2口进行扫描,让数据动态的显示出来,可显示设置温度和测量温度。6.1.3控制模块温度控制子程序流程如图10所示,将当前温度与设定好的温度比较,当当前温度大于或小于设定温度时,通过PID调节电阻丝工作;当二者相等时,电阻丝保持这一状态。图10 控制模块程序流程6.1.4温度报警模块根据设计要求,当检测到当前温度值高于或低于设定温度值时报警。6.1.5主程序和中断服务程序流程主程序完成系统的初始化,温度预置及其合法性检
26、测,预置温度的显示及定时器0设置。定时器0中断服务子程序是温度控制体系的主体,用于温度检测、控制和报警(包括启动温度转换、读入采样数据、数字滤波、越限温度报警和越限处理、输出控制脉冲等)。中断由定时器0产生,根据需要每隔15 s中断一次,即每15 s采样控制一次。但系统采用6 MHz晶振,最大定时为130 ms,为实现15 s定时,这里另行设了一个软件计数器。图11 主程序流程图图12 中断服务程序流程图7系统调试与仿真7.1 硬件调试根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。7.1.1脱机检查用万能表或逻辑测试笔逐步按
27、照逻辑图检查机中各器件的电源及各引脚的连接是否正确,检查数据总线、地址总线和控制总线是否有短路等故障。有时为保护芯片,先对各管座的电位(或电源)进行检查,确定其无误后再插入芯片检查。 7.1.2仿真调试暂时排除目标板的CPU和EPROM,将样机接上仿真机的40芯仿真插头进行调试,调试各部分接口电路是否满足设计要求。这部分工作是一种经验性很强的工作,一般来说,设计制作的样机不可能一次性完好,总是需要调试的。通常的方法是,先编调试软件,逐一检查调试硬件电路系统设计的准确性。7.1.3检查CPU的时钟电路通过测试ALE信号,如没有ALE信号,则判断是晶体或CPU故障,这称之为“心脏”检查。 检查AB
28、US/DBUS的分时复用功能的地址锁存是否正常。 检查I/O地址分配器。一般是由部分译码或全译码电路构成,如是部分译码设计,则排除地址重叠故障。7.2 软件调试7.2.1手工汇编这种方法是最原始,但又是一种最简捷的调试方法,且不必增加调试设备。这种方法的实质就是对照MCS51指令编码表,将源程序指令逐条地译成机器码,然后输入到RAM重新进行调试。在进行手工汇编时,要特别注意转移指令、调用指令、查表指令。必须准确无误地计算出操作码、转移地址和相对偏移量,以免出错。 以上3种方法调试完成以后,即可通过EPROM写入器,将目标代码写入EPROM中,并将其插至机器的相应插座上,系统便可投入运行。7.3
29、 系统仿真因本系统是利用单片机进行系统控制,所以需采用单片机仿真工具Proteus进行仿真。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus为使用者建立了完备的电子设计开发环境! Prote
30、us产品系列也包含了革命性的VSM技术8,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真,是一款非常优秀的单片机仿真软件。可以使用Keil c51和 Proteus进行联调,使调试、仿真更为方便。由于Proteus软件库内没有本系统所用到的DS18B20测温元件,所以在仿真时,系统电路作了一些调整。首先画好仿真图,将程序的二进制文件调入单片机对话框的Program File栏内,8抗干扰技术8.1硬件抗干扰技术光电隔离: 在输入和输出通道上采用光电隔离器来进行信息传输是很有好处的,它将微机系统与各种传感器、开关、执行机构从电气上隔离开来,很大一部分干扰将被阻挡。抗干扰电源: 微机系
31、统供电线路是干扰的主要来源,电源采用隔离变压器接入电网,可以防止电网的干扰侵入微机系统。配置去耦电容: 原则上每个集成电路芯片都应安置一个0.01mF的陶瓷电容器,可以消除大部分高频干扰。良好接地: 在既有模拟电路又有数字电路中,数字地与模拟地要分开,最后只在一点相连,如果两者不分,则会互相干扰。8.2软件抗干扰技术人工复位: 对于失控的CPU,最简单的方法是使其复位,程序自动从0000H开始执行。为此只要在单片机的RESET端加上一个高电平信号,并持续10ms以上即可。掉电保护: 在掉电中断子程序中,首先进行现场保护,保存当时重要的状态参数,当电源恢复正常时,CPU重新复位,恢复现场,继续未
32、完成的工作。指令冗余: 应多采用单字节指令,并在关键的地方人为地插入一些单字节指令(NOP),或将有效单字书指令重复书写,在一些对程序流向起决定作用的指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确的控制轨道。9.任务分配:李科 20090006 组长 键盘加显示 完成任务分配 组织协调成员完成任务 徐贺 20090007 PID控制 冯增涛 20090008 键盘加显示 任兴 20090009 DS18B20 高达睿 20090010 查阅资料 宋杰 20090011 原理图结束语本文利用AT89C51对温度进行控制,采用单总线传输方式的DS18B20作为温度传感器,与按键、数码显示
33、、报警器等外部辅助硬件共同组成一个温度控制系统。设计中用到了KEIL C51 V8.01、PROTEL99SE、PROTEUS6.7等设计与仿真软件,作者本着安全性、可靠性、稳定性和易扩展性等设计原则,对各方案进行了细心的比较,并对设计中使用的芯片进行了仔细的分析,力求设计出一个安全、稳定、可靠的温度控制系统。因此,本系统的安全性和可扩展性都比较好。在仿真过程中,由于仿真软件库内没有DS18B20这个元件,并且动态显示在仿真时数码显示不稳定,所以仿真时采用了静态显示,并利用软件来模拟温度的变换,从而仿真得到系统工作的整个过程。附录:DATA_BUSBITP3.2KEYS BIT P3.3;SE
34、TKEY1BIT P3.4;LIFTKEY2 BIT P3.5;PLUSFLAGBIT00H;标志位TEMP_LEQU 30H;温度值低字节TEMP_HEQU31H;温度值高字节TEMP_DPEQU32H;温度小数TEMP_INTEQU33H;温度值整数TEMP_BAIEQU34H;温度百位数TEMP_SHIEQU35H;温度十位数TEMP_GEEQU36H;温度个位数DIS_BAIEQU37H;显示百位数DIS_SHIEQU38H;显示十位数DIS_GEEQU39H;显示个位数DIS_DPEQU3AH;显示小数位DIS_ADDEQU3BH;显示地址DIS_FU EQU 3CH ;符号位YIM
35、IAOEQU 3DH ;显示位置位DIS_DP1 EQU 3EH ;小数百分位L_BAI EQU 3FHL_SHI EQU 40HL_GE EQU 41HL_DP EQU 42HL_DP1EQU 43HH_BAI EQU 44HH_SHI EQU 45HH_GE EQU 46HH_DP EQU 47HH_DP1EQU 48HTEMP_DP1 EQU 49HPOL EQU 4AH/参量声明D0 EQU 4EHD1 EQU 4FHD2 EQU 50H;设定温限时的最小位 D3 EQU 51H;设定温限时的第二位D4 EQU 52H;设定温限时的最高位D5 EQU 53H;设定温限时的正负位 HDI
36、S_BAIEQU54H;显示百位数HDIS_SHIEQU55H;显示十位数HDIS_GE EQU56H;显示个位数HDIS_DP EQU57H;显示小数位HDIS_DP1EQU 58H;LDIS_BAIEQU59H;显示百位数LDIS_SHIEQU5AH;显示十位数LDIS_GE EQU5BH;显示个位数LDIS_DP EQU5CH;显示小数位LDIS_DP1EQU 5DH;TEMP DATA 5EHORG 0000H AJMPSTARTORG 000BHLJMP STOP;初始化ORG 0050HSTART:SETB EA SETB ET0 MOV TMOD,#01H MOV TH0,#3C
37、H MOV TL0,#0B0H SETBTR0 MOV YIMIAO,#14H MOVSP,#60H MOV L_SHI, #01H MOVL_GE, #00H MOVL_DP , #00H MOVL_DP1,#00H MOVH_SHI , #05H MOVH_GE , #00H MOVH_DP ,#00H MOVH_DP1,#00H MOV D0,#00H MOV D1,#00H MOV D2,#00H MOV D3,#00H MOV D4,#00H MOV D5,#00H MOV TEMP,#4EH MOV R2,#1 MOV R3,#20 MOV P1,#0FFH ;主程序MAIN: L
38、CALL DISPLAY LCALL BIJIAO JNB KEYS,JP1 AJMP MAINJP1:SETB KEYS LJMP MAIN1 ;读温度程序READ_TEMP: LCALLRESET_PULSE ;调用复位脉冲程序MOV A,#0CCH;跳过ROM命令LCALL WRITEMOVA,#44H;读温度LCALL WRITELCALLRESET_PULSE;调用复位脉冲程序MOVA,#0CCH;跳过ROM命令LCALLWRITEMOVA,#0BEH;读缓存命令LCALL WRITELCALLREADRET;复位脉冲程序RESET_PULSE:RESET:SETBDATA_BUSN
39、OPNOPCLRDATA_BUSMOVR7,#255DJNZR7,$SETB DATA_BUSMOVR7,#30DJNZR7,$JNB DATA_BUS,SETB_FLAGCLRFLAGAJMPNEXTSETB_FLAG:SETB FLAGNEXT:MOV R7,#120DJNZR7,$SETB DATA_BUSJNBFLAG,RESET RET;写命令WRITE:SETBDATA_BUSMOVR6,#8CLRCWRITING:CLRDATA_BUSMOVR7,#5DJNZR7,$RRCAMOVDATA_BUS,CMOVR7,#30HDJNZR7,$SETBDATA_BUSNOPDJNZR6,
40、WRITINGRET;循环显示段位DISPLAY:MOV R4,#200DIS_LOOP:SETB P1.0 MOV A,DIS_DP1MOV P0,ACLR P1.3 LCALL DELAY2MSSETB P1.3MOVA,DIS_DPMOVP0,A CLR P1.2 LCALLDELAY2MSSETB P1.2MOVA,DIS_GEMOVP0,ACLR P0.7 CLR P1.1 LCALLDELAY2MSSETB P1.1MOVA,DIS_SHIMOVP0,ACLR P1.0 LCALLDELAY2MSNEXTT:NOPDJNZR4,DIS_LOOPRET;读命令READ:SETBDAT
41、A_BUSMOVR0,#TEMP_LMOV R6,#8MOVR5,#2CLRCREADING:CLRDATA_BUSNOPNOPSETBDATA_BUSNOPNOPNOPNOPMOVC,DATA_BUSRRCAMOVR7,#30HDJNZR7,$SETBDATA_BUSDJNZR6,READINGMOVR0,AINC R0MOVR6,#8SETBDATA_BUSDJNZR5,READINGRET;数据处理PROCESS:MOV R7,TEMP_LMOVA,#0FHANLA,R7MOVTEMP_DP,AMOV R7,TEMP_LMOVA,#0F0HANLA,R7SWAPAMOVTEMP_L,AM
42、OVR7,TEMP_HMOVA,#0FHANLA,R7SWAPAORLA,TEMP_LMOV B,#64HDIVABMOVTEMP_BAI,AMOVA,#0AHXCHA,BDIVABMOVTEMP_SHI,AMOVTEMP_GE,B MOV A,TEMP_DPMOV B,#10MUL ABMOV B,#16DIV ABMOV DPTR,#TABLE_INTERMOVC A,A+DPTRMOV DIS_DP,AMOV A,#10MUL ABMOV B,#16DIV ABMOV TEMP_DP1,AMOV DPTR,#TABLE_INTERMOVC A,A+DPTRMOV DIS_DP1,AMOV
43、A,TEMP_GEMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOV DIS_GE,AMOVA,TEMP_SHIMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOVDIS_SHI,ARETFUHAO:MOV DIS_FU,#80H RETBIJIAO:COMPARE_DOWN1: CLR CMOV A,TEMP_DP1SUBB A,L_DP1MOV A,TEMP_DPSUBB A,L_DPMOV A,TEMP_GESUBB A,L_GEMOV A,TEMP_SHISUBB A,L_SHIJC COMPARE_DOWNSETB P2.1LJMP LOOP
44、_NEXT2COMPARE_DOWN:CLR P2.1 LOOP_NEXT2:SETB P2.5CLR CMOV A,TEMP_SHICJNE A,H_SHI,TT1LJMP TT2 TT1:JNC COMPARE_DOWN11 LJMP STOP1TT2:MOV A,TEMP_GECJNE A,H_GE,TT3LJMP TT4TT3:JNC COMPARE_DOWN11 LJMP STOP1TT4:MOV A,TEMP_DPCJNE A,H_DP,TT5LJMP STOP1TT5:JNC COMPARE_DOWN11SETB P2.5SETB P1.5LJMP STOP1 /* MOV A,TEMP_SHICJNE A,H_SHI,SS1SS1:JC STOP1*/COMPARE_DOWN11:CLR P2.5CLR P1.5 STOP1: RET/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宣城职业技术学院《中医筋伤学》2023-2024学年第二学期期末试卷
- 武汉光谷职业学院《商务英语口译实践二》2023-2024学年第二学期期末试卷
- 学习动力提升的教育心理学策略探讨
- 教育技术工具在教学中的实践与探索
- 教育政策与在线教育趋势预测与市场机遇
- 教育技术视角下的混合式教学设计与实施策略研究
- 教育行业精准营销与数据分析-西安篇
- 智能化办公促进教育公平的新选择
- 中国IT运维管理行业发展分析及发展预测研究报告2025-2028版
- 2025年中国黄铜排气球阀行业投资前景及策略咨询研究报告
- 2024年陕西新华出版传媒集团有限责任公司招聘笔试冲刺题(带答案解析)
- 江苏开放大学本科行政管理专业060193国家公务员制度期末试卷
- 农村排灌用电安全管理
- 重庆开放大学《工具书与文献检索》形考测验1-4答案
- 纺织非遗:让世界读懂中国之美智慧树知到期末考试答案2024年
- 结节性红斑的护理措施
- 应急处突知识培训课件
- 江苏省苏州市四市2022-2023学年八年级下学期期末语文试题
- 幼儿园病媒生物防制培训方案
- “影子教育”之全球扩张教育公平、质量、发展中的利弊谈
- JB T 8925-2008滚动轴承汽车万向节十字轴总成技术条件
评论
0/150
提交评论