空调机温度控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空调机温度控制系统
1. 设计要求及预期功能
用MCS-51单片机设计一个空调机的温控系统。具体要求及功能如下:
①实时测量环境温度,并显示当前温度值。
②当室温度高于设定温度,压缩机运转,使室温降低。
③当室温低于设定温度,压缩机停止运转。
④温度设定功能,通过按键输入压缩机启停的温度设定值。设定温度过程中显示设定温度值,以便于操作。设定完毕后,改为显示当前测定温度值。
2. 总体方案
(1)系统设计
1所示。
①
②系统由四个主要功能模块组成:温度测量、按键输入,数码显示以及控制压缩机启停
模块。
◆温度测量模块的主要功能是将环境温度转化为电参数(电压),并通过A/D转换得到数
字量送入单片机。
◆按键输入模块主要功能是实现设定温度值的输入。
◆LED显示模块主要功能是显示当前环境温度值。因空调对温度精度要求不高,本设
计只要求显示两位整数的温度值。
◆压缩机控制模块主要功能是单片机根据环境温度与设定温度的比较结果送出开关信
号、控制压缩机的启停。
(2)关键技术
◆本系统中的关键技术是如何实时测量室内温度。在对外界物理量如温度、湿度、压
力等进行测量时,首先要解决的问题是如何将这些非电量转换为电参数(电阻、电压、
电流),其次,是如何将模拟量(电压)转换为数字量。
◆显然对温度的测量,温度传感器是必不可少的。温度传感器的种类、型号很多。在
本设计中选用的是AD590温度传感器。
3. 硬件设计及功能说明
⑴系统的硬件电路:包括主机、温度控制、压缩机的控制、按键及显示5个部分,系统硬件电路原理图如图2所示。
⑵功能说明
①将AD590作为室内温度传感器,当温度变化时,AD590会产生电流变化,经OPA1将电流转换为电压,由OPA2做零位调整,最后由OPA3反相放大10倍。
②ADC0804输出最大转换值=FFH(255),OPA3为放大10倍时,则本电路最大测量温度为:最大显示温度为5.1V/10=0.51V,即51o C(10为放大倍数)
255X=51 知X=0.2 即先乘2再除10
FF→255→255×2→510 R4=0.5 R3=10
即D4=0 D3=5 D2=1 D1=0
本电路显示器只取D3、D2两位数。
③按下P2.1按钮,放开后立即进入温度设定模式,显示设定最高温度34C(建立TABLE内),每按一次设定温度将减少1C直至最低设定温度20C,再按一次又回到34C。
④当室温高于设定温度,压缩机(P3.0)运转,使室温降低,当室温低于设定温度,压缩机停止运转。
⑤当进入设定温度模式,如未按下设定按钮(P2.1),经数秒后自动解除设定模式,回到室温显示模式。
⑥本程序以计时中断,每50毫秒中断一次,比较室温与设定温度一次,而令压缩机运转或停止。
4. 软件设计
(1)软件设计流程
主要包括5个模块:
●主程序
●按键设定温度模块
●十进制调整和数据转换模块
●控制模块
●显示模块
图2空调硬件电路原理图
主程序流程如图3所示。
(2) 汇编语言程序:
ORG 00H
JMP START0;主程序
ORG 0BH
JMP TIM0;TIMER0中断子程序
START0:MOV TMOD,#01H;TIMER0工作在MODE1
MOV TH0,#HIGH(65536-50000);50毫秒中断一次
MOV TL0,#LOW(65536-50000)
SETB TR0;启动TIMER0
MOV IE,#82H;TIMER0中断使能
MOV 24H,#0FFH;设定温度RAM初值
ANL P1,#00H;清除显示器
MOV R0,#14;至TABLE的取码指针初值START:MOVX R0,A;令ADC0804开始转换/WR=0
WAIT:JNB P2.1,SET0;是否设定温度?
P2.0,ADC;ADC0804转换完成否?
JMP WAIT
ADC:MOVX A,R0 ;是则将转换值载入累加器
CALL L1;调用十进制转换子程序
CALL DISP;调用显示子程序
JMP START
L1:CLR C;C=0
MOV 20H,#00H;十进制转换的低位寄存器
MOV 21H,#00H;十进制转换的高位寄存器
MOV R3,#08H;作为十进制调整,调整的次数NEXT:RLC A;将取入值转换为十进制
MOV R2,A;暂存于R2
MOV A,20H;(20H)乘2加C
ADDC A,20H
DA A;做十进制调整
MOV 20H,A;结果存回(20H)
MOV A,21H;(21H)乘2加C
ADDC A,21H
MOV 21H,A;做十进制调整
MOV A,R2;结果存回(21H)
DJNZ R3,NEXT;做十进制调整结束?
L2:MOV A,20H
ADD A,20H;(20H)乘2
DA A;做十进制调整
MOV 20H,A;存回20H
MOV A,21H
ADDC A,21H;(21H)乘2
DA A;做十进制调整
MOV 21H,A;存回(21H)
RET
DISP:MOV A,20H;(取D2值)(20H)RAM的高4位