空调机温度控制系统
- 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 ;是否设定温度?
JB P2.0,ADC ;ADC0804转换完成否?
JMP W AIT
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位
ANL A,#0F0H
SWAP A ;变为低4位存入(22H)RAM
MOV 22H,A
MOV A,21H ;(取D3值)(21H)RAM的低4位
ANL A,#0FE
SWAP A ;变为高4位
ORL A,22H ;D3、D2合成8位存入室温地址(23H)
MOV 23H,A
MOV P1,A ;输出至P1显示温度
MOV R7,#0FFH ;延时
DJNZ R7,S
RET
SET0:CALL DELAY ;设定温度,按钮消除抖动JNB P2.1,S ;放开否?
CALL DELAY ;消除抖动
A2:CJNE R0,#0FFH,A1 ;是否取完最低温度20O C MOV R0,#14 ;是,则令取码指针指到最高温度A1:MOV A,R0 ;至TABLE取设定温度MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A ;输出至P1显示设定温度
MOV 24E,A ;设定温度值存入(24H)RAM
MOV R5,#4FH ;设定P2.1按钮按键时间
D4:MOV R7,#0FFH
D2:MOV R6,#0FFH
D1:JNB P2.1,SET1 ;有按则跳至SET1
DJNZ R6,D1
DJNZ R7,D2
DJNZ R5,D4
JMP START ;没按时间到,则回到START SET1:CALL DELAY ;消除抖动
JNB P2.1,S ;放开否?
CALL DELAY ;消除抖动
DEC R0 ;将取码指针减去1,即减1O C
JMP A2 ;跳至A2,再检测P2.1有键按下否?
TIM0:PUSH ACC ;TIMER0中断子程序
PUSH PSW
MOV TH0,#HIGH(65536-50000);重设中断时间
MOV TL0,#LOW(65536-50000)
CLR C ;C=0
MOV A,24H ;(24H)设定温度RAM,(23H)室温RAM
SUBB A,23H ;(24H)减(23H)
JNC OFF ;C=0表示(24H)大,即设定温度大
CLR P3.0 ;C=1,设定温度小,令压缩机运转(P3.0)RETURN:POP PSW
POP ACC
RETI
OFF:SETB P3.0 ;设定温度大,令压缩机停止JMP RETURN
DELAY:MOV R7,#60 ;消除抖动延时
D3:MOV R6,#248
DJNZ R6,S
DJNZ R7,D3
RET
TABLE:DB 20H,21H,22H,23H,24H ;设定温计值
DB 25H,26H,27H,28H,29H
DB 30H,31H,32H,33H,34H
END
5. 系统调试
●完成了硬件设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必
须进行系统调试。
●系统调试包括硬件调试和软件调试两个部分,软硬件的调试是不可能绝对分开的,
硬件的调试常常需要利用调试软件,软件的调试也可能需要通过对硬件的测试和控制来进行。
模拟实验时可用发光二极管的亮灭代替压缩机控制模块的起停来进行。
(1) 硬件调试
硬件的调试主要是把电路各种参数调整到符合设计要求,排除硬件故障,其中包括设计错误和工艺性故障。
(2) 软件调试
软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
6. 参考文献
《单片机原理及应用》主编:张毅刚高等教育出版社
《单片机原理及系统设计》编著:胡汉才清华大学出版社
《MCS-51单片机应用设计》作者:张毅刚等哈尔滨工业大学出版社。