JJYYY水温控制系统设计方案论文_第1页
JJYYY水温控制系统设计方案论文_第2页
JJYYY水温控制系统设计方案论文_第3页
JJYYY水温控制系统设计方案论文_第4页
JJYYY水温控制系统设计方案论文_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGEPAGE1水温掌握系统摘要:该水温掌握系统采纳单片机进行温度实时采集与掌握.温度信号由“一线总线”数字化温度传感器DS18B20供应,DS18B20在-10~+85°C范围内,固有测温分辨率为0.5℃。水温实时掌握采纳继电器掌握电热丝和风扇进行升温、降温掌握。系统具备较高的测量精度和掌握精度,能完成升温和降温掌握。关键字:AT89C51DS18B20水温掌握目录1。系统方案选择和论证……………21。1题目要求……………………21.1.1基本要求…………21.2系统基本方案……………31.2.1各模块电路的方案选择及论证…………………31.2.2系统各模块的最终方案…………52.硬件设计与实现……………42.2主要单元电路的设计……………………52.1。1温度采集部分设计………52.1.2键盘显示掌握部分……………53.系统软件设计……………6主程序流程图……………74.系统测试……………………74.1静态温度测试……………84。2动态温控测量………………84.3结果分析……………………8附录1:产品使用说明…………………8附录2:系统硬件原理图…………9附录3:软件程序清单……………10参考文献…………………………191.系统方案选择和论证题目要求设计并制作一个水温自动掌握系统,掌握对象为1L净水,容器为搪瓷器皿。水温可以在肯定范围内由人工设定,并能在环境温度降低时实现自动掌握,以保持设定的温度基本不变。1.1。1基本要求(1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。(2)环境温度降低时(例如用电风扇降温)温度掌握的静态误差≤1℃。(3)用十进制数码管显示水的实际温度。1.2系统基本方案依据题目要求系统模块分可以划分为:温度测量模块,显示电路模块,加热模块,掌握模块,系统的框图如图1。2.1所示。为实现各模块的功能,分别做了几种不同的设计方案并进行了论证.1。2.1各模块电路的方案选择及论证(1)掌握器模块依据题目要求,掌握器主要用于对温度测量信号的接受和处理、掌握电热丝和风扇使掌握对象满意设计要求、掌握显示电路对温度值实时显示以及掌握键盘实现对温度值的设定等。对掌握器的选择有以下二种方案:OutputOutput显示电路加热装置测温部分键盘输入控制部分Input图1.2。1系统基本模块方框图方案一:采纳模拟运算放大器组成PID掌握系统。对于水温掌握是足够的。但要附加显示、温度设定等功能,要附加很多电路,稍显麻烦。方案二:采纳ATMEL公司的AT89C51作为系统掌握器。单片机算术运算功能强,软件编程灵敏、自由度大,可用软件编程实现各种算法和规律掌握,并且其功耗低、体积小、技术成熟和成本低等优点。基于以上分析拟订方案二,由AT89C52作为掌握核心,对温度采集和实时显示以及加热装置进行掌握。(2)加热装置有效功率掌握模块依据题目,可以使用电热炉进行加热,掌握电热炉的功率即可以掌握加热的速度。当水温过高时,关掉电热炉进行降温处理,让其自然冷却。在制作中,我们装设一个二极管来代替表示,当水温超高时关闭电炉开启风扇散热,当需要加热时开启电炉关闭风扇。都通过二极管发光来表示。(3)温度采集模块题目要求温度静态误差小于等于0.2℃,温度信号为模拟信号,本设计要对温度进行掌握和显示,所以要把模拟量转换为数字量。该温度采集模块有以下二种方案:方案一:采纳温度传感器AD590K。AD590K具有较高精度和重复性,良好的非线性保证±0.1℃的测量精度.加上软件非线性补偿可以实现高精度测量.AD590将温度转化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。送入8为A/D转换器,可以获得255级的精度,基本满意题目要求.方案二:采纳数字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简洁。基于以上分析和现有器件所限,温度采集模块选用方案二。DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可依据实际要求通过简洁的编程实现9~12位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简洁,牢靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。(4)键盘与显示模块ﻩ依据题目要求,水温要由人工设定,并能实时显示温度值。采纳三位LED七段数码管分别显示温度的十位、个位和小数位.按键采纳单列3按键进行温度设定。数码管具有:低能耗、低损耗、低压、寿命长、耐老化,对外界环境要求较低。同时数码管采纳BCD编码显示数字,程序编译容易,资源占用较少。1.2。2系统各模块的最终方案依据以上分析,结合器件和设备等因素,确定如下方案:1。采纳AT89C52单片机作为掌握器,分别对温度采集、LED显示、温度设定、加热装置功率掌握。2。温度测量模块采纳数字温度传感器DS18B20.此器件经软件设置可以实现高分辨率测量。3。电热丝有效功率掌握采纳继电器掌握,实现电路简洁有用,加上温度变化缓慢可以满意设计要求。4.显示用LED数码管显示实时温度值,用ENTER、UP、DOWN三个单键实现温度值的设定。OutputOutputLED数码管继电器DS18B20键盘输入AT89C52Input图1.2.3系统基本框图系统的基本框图如图1.2.3所示。CPU(AT89C52)首先写入命令给DS18B20,然后DS18B20开头转换数据,转换后通过89S52来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度掌握信息到继电器。DS18B20可以被编程,所以箭头是双向的。硬件设计与实现2.1主要单元电路的设计2.1.1温度采集部分设计本系统采纳半导体温度传感器作为敏感元件。传感器我们采纳了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,直接输出数字量,可以直接和单片机进行通讯,大大简化了电路的简洁度.DS18B20应用广泛,性能可以满意题目的设计要求。DS18B20的测温电路如图2.2.1所示。图2。2。1DS18B20测温电路2。1.2键盘、显示、掌握器部分本设计中采纳动态显示方式驱动3个七段数码管,分别显示温度的十位、个位和小数位.数码管采纳共阴极,由于AT89C52单片机每个I/O的拉电流只有1-2mA。所以在位码和段码都加上了同相驱动器.键盘采纳按键开关经上拉电阻分别接P1。0、P1.1、P1.2口上,起到掌握、上调和下调作用。每按上调和下调键,设定温度值增1减1.单片机XTAL2、XTAL1接12MHZj晶振,供应系统时钟基值。另RESET接复位按键。原理图如图2.2.4所示。图2。2。4键盘、显示、掌握器部分原理图3.系统软件设计系统的软件设计采纳汇编语言,对单片机进行变成实现各项功能。主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘、和继电器各模块.用的是循环查询方式,来显示和掌握温度。主程序流程图总模块流程图如图3.1。1所示.本软件设计采纳循环查询来处理各个模块,温度是缓慢变化量所以可以满意性能要求。图3.1.1所示为系统主程序流程图否否初始化开始调用A/D转换子程序DS18B20存在?数据处理子程序显示子程序键盘扫描子程序继电器控制子程序错误处理显示888是图3.1.1主程序流程图4.系统测试4.1静态温度测试测试方式:由于种种条件的限制,采纳模拟加热方式进行测试.利用继电器的指示灯来显示继电器的动作.红灯表示加热,绿灯表示降温。测试结果如表4.1.1所示:表4.1.1测试结果数据标准温度/℃测量温度/℃误差/℃4。2动态温控测量测试方式:加热方式用体温对传感器DS18B20进行加热。设定掌握温度,记录超调温度,稳态误差。超调温度与加热的功率有关,这里不再测量。测量结果如表4.2.1所示:表4。2.1测试结果数据设定温度/℃超调温度/℃稳态误差/℃4。3结果分析有以上的测量结果可见,系统基本上达到了所要求的指标,静态测温的精度主要由DS18B20来决定。在控温指标中,影响系统的性能的因素很多。最关键的是加热系统本身的物理性质及掌握算法。由于条件的限制,在本设计中采纳体温进行测试。附录1:产品使用说明本水温掌握系统能在0~99℃范围内设定任意温度值,超出此范围将有出错显示888,之后返回到99℃或0℃。通过按ENTER键确认开头温度设定;P1。1的UP键为加1键,每按一次使设定温度值加1℃P1.2的DOWN键为减1键,每按下一次设定温度值减1℃。设置完温度要在按ERTER键确认温度设定完成,之后显示实测温度值。当温度传感器没有接入时也将有出错提示显示888.附录2:系统硬件原理图附录3:软件程序清单TEMPERATURE_LDATA31Hﻩ;DS18B20低8位Buffer

TEMPERATURE_HDATA30H ;DS18B20高8位BufferﻫﻩﻩﻩﻫTEMPERATURE_HCDATA32H;计算后十位的BCD码存放BUFFERﻫTEMPERATURE_LCDATA33H;计算后的个位和小数位的BCD码存放BUFFERﻫTEMPERATURE_ZHDATA34H;计算后十位和个位HEX码的存放BUFFERﻫﻩﻫDIS_BUF_XDATA35Hﻩ;数码管小数位BufferﻫDIS_BUF_GDATA36Hﻩ;数码管个位BufferﻫDIS_BUF_SDATA37Hﻩ;数码管十位Buffer

ﻫﻩﻩﻫKEY_BUF_GDATA39H;键盘输入后,的个位值

KEY_BUF_SDATA49H;键盘输入后,的十位值

ﻫﻩ K_ENTEREQUP1.0;输入数据确认按钮ﻫK_UPEQUP1.1;上调按钮

K_DOWNEQUP1.2;下调按钮ﻫ

P_DS18B20EQUP3.0;读取DS18B20的输入端口ﻫP_SWITCHEQUP1.7;继电器掌握端口,1—加热,0-断开ﻫP_FANEQUP1.5;风扇掌握,1—降温,0-断开ﻫFLAGEQU20H.0;标志位,确定是否存在DS18B20,1—存在,0—不存在

ENTER_FLAGEQU20H.1;键盘输入的标志位,为0说明键盘正在输入,为1说明键盘输入退出ﻫﻫ;程序开头执行

ORG0000H

LJMPMAINﻫORG0100HﻫMAIN:MOVSP,#60H;初始化ﻫMOVKEY_BUF_G,#00H;由于KEY_BUF是由用户输入的,所以先赋值初始化ﻫMOVKEY_BUF_S,#00Hﻫﻩ

NEXT:ﻫLCALLREAD_TEMP;调用读温度子程序ﻫJBFLAG,NORMALﻩ;推断是否有DS18B20的存在ﻫCALLERRﻩﻩﻩ;不存在时显示错误信息ﻫAJMPNEXTﻫNORMAL:LCALLDATA_DEALﻩﻩ;处理从DS18B20得到的数据

LCALLSET_DIS_BUFﻩﻩ;赋值给DIS_BUF_X,G,S,ﻫLCALLDISPLAYﻩﻩ;调用数码管显示子程序ﻫLCALLSCAN_KEY ﻩ;扫描键盘ﻫLCALLSWITCHﻩﻩ ;处理继电器ﻫAJMP NEXTﻫ

;程序名称:ERR

;功能:程序出错处理,显示三个8,即888ﻫ;入口参数:无ﻫ;出口参数:DIS_BUF_X,DIS_BUF_G,DIS_BUF_S,ﻫERR:ﻩMOVDIS_BUF_X,#08H;如果没有找到DS18B20,那么就显示错误,错误显示为888ﻫMOVDIS_BUF_G,#08HﻫMOVDIS_BUF_S,#08H

LCALLDISPLAYﻫRETﻫ;程序名称:DATA_DEAL

;功能:处理采集后的的数据ﻫ;入口参数:TEMPERATURE_Lﻫ;出口参数:DIS_BUF_G,DIS_BUF_S,DIS_BUF_XDATA_DEAL:ﻫMOVA,TEMPERATURE_H ;判温度是否零下

ANLA,#80HﻫJZTEMPC1 ﻩ ;A为0,说明是正数,跳往TEMPC1,如果是负数,则对低8为进行补码处理

CLRC

MOVA,TEMPERATURE_L ;二进制数求补(双字节)ﻫCPLAﻩ ﻩﻩ;取反加1

ADDA,#01HﻫMOVTEMPERATURE_L,A ;取补码后存回TEMPERATURE_L,此时TEMPERATURE_L里面的值就可以表示温ﻫ;度了,不过还要连续处理一下。

MOVA,TEMPERATURE_HﻫCPLA

ADDCA,#00H;高位TEMPERATURE_H取反,加上从低位TEMPERATURE_L进来的位ﻫMOVTEMPERATURE_H,A;写回TEMPERATURE_H

MOVTEMPERATURE_HC,#0BH

SJMPTEMPC11ﻫﻫTEMPC1:MOVTEMPERATURE_HC,#0AHﻫTEMPC11:MOVA,TEMPERATURE_HCﻫSWAPAﻫMOVTEMPERATURE_HC,AﻫMOVA,TEMPERATURE_LﻫANLA,#0FH;取A低4位(小数位,单位是0。0625),得出来的数要乘以0.0625,通过查表来算出值ﻫMOVDPTR,#TEMPDOTTAB

MOVCA,@A+DPTR;查表

MOVTEMPERATURE_LC,A;TEMPERATURE_LCLOW=小数部分BCD

MOVDIS_BUF_X,A;小数位的BCD码送入显示buffer中ﻫﻫMOVA,TEMPERATURE_L;整数部分

ANLA,#0F0H;得到个位单个数值ﻫSWAPA;SWAP后就得到个位真正的个位ﻫMOVTEMPERATURE_L,AﻫMOVA,TEMPERATURE_HﻫANLA,#0FH

SWAPAﻫORLA,TEMPERATURE_LﻫMOVTEMPERATURE_ZH,A;组合后的值存入TEMPERATURE_ZH

LCALLHtoB;转换HEx值成为BCD码ﻫMOVTEMPERATURE_L,A;TEMPERATURE_L目前存入的是十位和个位的BCD编码ﻫANLA,#0F0H

SWAPA

ORLA,TEMPERATURE_HC;TEMPERATURE_HCLOW位=十位数BCD

MOVTEMPERATURE_HC,A

MOVA,TEMPERATURE_LﻫANLA,#0FHﻫSWAPA;TEMPERATURE_LCHI位=个位数BCDﻫORLA,TEMPERATURE_LCﻫMOVTEMPERATURE_LC,ARET

;小数部分码表ﻫTEMPDOTTAB:DB00H,00H,01H,02H,03H,03H,04H,04H,05H,06H,06H,07H,08H,08H,09H,09Hﻫ;0.0625->00Hﻫ;0.0625*2=0。125—〉01Hﻫ;0.0625*3=0.1875->02Hﻫ;0.0625*4=0.25-〉03H

;0。0625*5=0。3125-〉03H

;以此类推.....。。。..ﻫ

;程序名称:HtoB

;功能:十六进制转BCDﻫ;入口参数:Aﻫ;出口参数:R7

HtoB:MOVB,#064H;100ﻫDIVAB;a/100ﻫMOVR7,A;

MOVA,#0AHﻫXCHA,B

DIVABﻫSWAPAﻫORLA,B

RET

;程序名称:INIT_TEMPﻫ;功能:初始化DS18B20,确定DS18B20是否是存在的ﻫ;入口参数:无ﻫ;出口参数:FLAGﻫINIT_TEMP:ﻩ

SETBﻩP_DS18B20ﻫﻩNOPﻫ CLRﻩP_DS18B20 ;主机发出延时537微秒的复位低脉冲ﻫﻩMOVﻩR0,#6BHﻫ MOVﻩR1,#04HﻫTSR1:DJNZﻩR0,$ﻫﻩMOVﻩR0,#6BH

ﻩDJNZﻩR1,TSR1ﻫﻩSETBﻩP_DS18B20ﻩ;然后拉高数据线,释放总线进入接受状态

ﻩNOP

ﻩNOP

ﻩNOP

ﻩMOV R0,#32HﻫTSR2:JNBﻩP_DS18B20,TSR3ﻩ;等待DS18B20回应pﻫDJNZﻩR0,TSR2ﻫLJMP TSR4ﻩﻩ ﻩ;延时

TSR3:SETB FLAGﻩﻩﻩﻩ;置标志位,表示DS1820存在

LJMPﻩTSR5ﻫTSR4:CLRﻩFLAGﻩ ﻩﻩ;清标志位,表示DS1820不存在ﻫLJMPﻩTSR7ﻫTSR5:MOVﻩR0,#06BH

TSR6:DJNZﻩR0,TSR6 ﻩ ;时序要求延时一段时间ﻫTSR7:SETBﻩP_DS18B20ﻫRETﻫﻫ;程序名称:READ_TEMPﻫ;功能:读取DS18B20的数据

;入口参数:TEMPERATURE_L,TEMPERATURE_Hﻫ;出口参数:无ﻫREAD_TEMP:ﻫSETB P_DS18B20ﻫLCALLﻩINIT_TEMPﻩ;先复位DS18B20ﻫJBﻩFLAG,TSS2

RET ;推断DS1820是否存在?若DS18B20不存在则返回

TSS2:ﻩMOVﻩA,#0CCHﻩ;跳过ROM匹配

LCALLﻩWRITE_18B20ﻫMOVﻩA,#44Hﻩ;发出温度转换命令ﻫLCALLﻩWRITE_18B20;LCALLﻩDISPLAYﻩ;等待AD转换结束,12位的话750微秒ﻫLCALLﻩINIT_TEMP ;筹备读温度前先复位ﻫMOV A,#0CCHﻩ;跳过ROM匹配

LCALLﻩWRITE_18B20ﻫMOV A,#0BEHﻩ;发出读温度命令ﻫLCALL WRITE_18B20ﻫLCALLﻩREAD_18B20 ;将读出的温度数据保存到35H/36H

RETﻫ

;简略的步骤:初始化完后当拉低电平开头产生写时隙-》15微妙之内送入一位数据—》15~60微妙1820来ﻫ;采样读取它

ﻫ;程序名称:WRITE_18B20ﻫ;功能:将A保存的数值写入DS1820中,有简略的时序要求,简略参考附图的说明

;入口参数:A寄存器ﻫ;出口参数:无ﻫWRITE_18B20:ﻩﻫMOVﻩR2,#08Hﻩﻩ ;一共8位数据,串行通讯

CLRﻩCﻫWR1: CLRﻩP_DS18B20ﻫMOV R3,#07H

DJNZ R3,$ﻫRRCﻩAﻩﻩﻩﻩ;循环右移ﻫMOVﻩP_DS18B20,C

MOVﻩR3,#3CHﻫDJNZ R3,$ﻩﻩﻩ ;23*2=46微妙ﻫSETBﻩP_DS18B20ﻫNOP

DJNZﻩR2,WR1ﻩ ﻩ;A里面一共是8位,所以要送8次

SETBﻩP_DS18B20ﻩﻩ;释放总线ﻫRET

ﻫ;程序名称:READ_18B20ﻫ;功能:读取18B20中的数据,由于是串行通讯,每次读取一个,循环8次读取ﻫ;入口参数:TEMPRATURE_L

;出口参数:无ﻫREAD_18B20:ﻩﻫMOVﻩR4,#02Hﻩﻩﻩﻩ;将温度高位和低位从DS18B20中读出ﻫMOVﻩR1,#TEMPERATURE_LﻩﻫRE00:ﻩMOVR2,#08Hﻩ ﻩﻩ;数据一共有8位

RE01:ﻩCLRCﻫSETBﻩP_DS18B20ﻫNOPﻫNOPﻫCLR P_DS18B20ﻫNOP

NOPﻫNOPﻫSETBﻩP_DS18B20ﻫMOVﻩR3,#09HﻫRE10: DJNZR3,RE10ﻫMOVﻩC,P_DS18B20

MOVﻩR3,#3CH

RE20: DJNZR3,RE20ﻫRRC A

DJNZR2,RE01

MOV @R1,AﻫDECﻩR1ﻫDJNZR4,RE00

RETﻫ

;程序名称:SCAN_KEYﻫ;功能:扫描键盘ﻫ;入口参数:DIS_BUF_G,DIS_BUF_S,ﻫ;出口参数:KEY_BUF_G,KEY_BUF_S,ﻫSCAN_KEY:ﻫJBK_ENTER,QUITﻩﻩﻩ;如果有Enter键入,则开头键盘输入ﻫLCALLK_DELAYﻫJBK_ENTER,QUIT

CLRENTER_FLAGﻩ ﻩ;每次进来都赋值输入标志,设置为0ﻫMOVKEY_BUF_G,DIS_BUF_G;将当前的温度赋值给KEY_BUF,也就是说是以当前温度为基准,进行加减的ﻫMOVKEY_BUF_S,DIS_BUF_SﻫK_LOOP:ﻫJBENTER_FLAG,QUITﻩ ﻩ;如果输入完成,ENTER_FLAG则为1,退出键盘程序

JBK_ENTER,KUP

CALLPRO_ENTERﻫKUP:JBK_UP,KDOWN

CALLPRO_UP

KDOWN:JBK_DOWN,LOOPAﻫCALLPRO_DOWNﻫLOOPA:LCALLDISPLAYﻫSJMPK_LOOP

QUIT:RET

ﻫ;程序名称:PRO_ENTERﻫ;功能:确认键盘输入和退出键盘输入

;入口参数:ENTER_FLAGﻫ;出口参数:ENTER_FLAGﻫPRO_ENTER:ﻫCALLK_DELAY

JBK_ENTER,K_LOOP;按键抖动处理ﻫSETBENTER_FLAGﻫCALLK_DELAYﻫRETﻫﻫ;程序名称:PRO_UPﻫ;功能:数值上调处理ﻫ;入口参数:KEY_BUF_G,KEY_BUF_S,ﻫ;出口参数:DIS_BUF_G,DIS_BUF_S,ﻫPRO_UP:ﻫCALLK_DELAYﻫJBK_UP,K_LOOP;按键抖动处理ﻫINCKEY_BUF_G;个位增一

MOVA,KEY_BUF_GﻫCJNEA,#0AH,UPNEXT;个位增加到10,回0ﻫMOVKEY_BUF_G,#00HﻫINCKEY_BUF_S;十位加一ﻫMOVA,KEY_BUF_SﻫCJNEA,#0AH,UPNEXT;十位超过99,溢出了ﻫMOVR0,#200ﻫERROR1:LCALLERR;出错,显示888ﻫDJNZR0,ERROR1ﻫDECKEY_BUF_S;退回99ﻫMOVKEY_BUF_G,#09HﻫUPNEXT:ﻫMOVDIS_BUF_G,KEY_BUF_GﻫMOVDIS_BUF_S,KEY_BUF_SMOVDIS_BUF_X,#00HﻫCALLK_DELAYﻫRET

ﻫ;程序名称:PRO_DOWNﻫ;功能:数值下调处理ﻫ;入口参数:KEY_BUF_G,KEY_BUF_S,ﻫ;出口参数:DIS_BUF_G,DIS_BUF_S,ﻫPRO_DOWN:ﻫCALLK_DELAYﻫJBK_DOWN,K_LOOP;按键抖动处理ﻫDECKEY_BUF_G;个位减一ﻫMOVA,KEY_BUF_GﻫCJNEA,#0FFH,DOWNNEXT;个位减到0,回到9ﻫMOVKEY_BUF_G,#09HﻫDECKEY_BUF_S;十位减一

MOVA,KEY_BUF_SﻫCJNEA,#0FFH,DOWNNEXT;十位低于0,溢出了

MOVR0,#200ﻫERROR2:LCALLERR;出错,显示888ﻫDJNZR0,ERROR2

INCKEY_BUF_S;退回00

MOVKEY_BUF_G,#00HﻫDOWNNEXT:

MOVDIS_BUF_G,KEY_BUF_G;增加完成后,赋值退出,然后DISPLAY显示出来

MOVDIS_BUF_S,KEY_BUF_SMOVDIS_BUF_X,#00HﻫCALLK_DELAYﻫRET

K_DELAY:ﻩﻩ ;键盘抖动延时子程序ﻫﻩMOVR6,#250ﻫDL20MS_1:ﻫﻩMOVR7,#200ﻫﻩDJNZR7,$ﻫ DJNZR6,DL20MS_1ﻫ RETﻫﻫ;继电器掌握

SWITCH:

MOVA,KEY_BUF_Gﻩﻩ;三个Buffer都是0的话,说明还没有输入数值,直接退出ﻫJNZSNEXT

MOVA,KEY_BUF_SﻫJNZSNEXTﻫJZSQUIT

SNEXT:ﻩCALLSET_DIS_BUFﻫ MOVA,KEY_BUF_SﻫﻩSUBBA,DIS_BUF_Sﻫ JCCOOL

ﻩJNZHOTﻩﻩﻩﻩﻩ;十位如果相等,那么连续比较个位ﻫ MOVA,KEY_BUF_G

ﻩSUBBA,DIS_BUF_GﻫﻩJCCOOLﻫHOT:CLRP_SWITCHﻩﻩ ;P_SWITCH为0说明当前温度小于设定温度,要升温,所以接继电器掌握电热丝加热ﻫ CLRP_FANSJMPSQUITﻫCOOL:SETBP_FANSETBP_SWITCH;P_SWITCH为1说明当前温度大于设定温度,要降温,所以接风扇ﻫSQUIT:RET

ﻫ;程序名称:SET_DIS_BUFﻫ;功能:赋值给DIS_BUF_G,DIS_BUF_S,ﻫ;入口参数:TEMPERATURE_LC,TEMPERATURE_HCﻫ;

温馨提示

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

评论

0/150

提交评论