单片机空调温度控制系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理
课程设计报告
设计题目:空调温度控制系统的设计
专业班级:测控技术与仪器1202班
学号:
姓名:
指导教师:
起止日期:2014年12月15日~2014年12月21日
目录
1.课程设计目的 (1)
2.课程设计题目和要求 (1)
3.设计内容 (1)
3.1设计方案 (1)
3.2硬件各单元电路的设计 (3)
3.3软件设计 (5)
3.3.1 程序框图 (6)
3.3.2 程序清单 (6)
4.总结 .................................................................................... 错误!未定义书签。参考文献 (10)
附录 ........................................................................................ 错误!未定义书签。
1.课程设计目的
(1)加深对单片机原理的理解;
(2)培养实践动手能力,开发创新思维;
(3)提高分析、解决问题的能力;
(4)了解单片机系统开发流程。
2.课程设计要求
(1)用MCS-51单片机设计一个空调机的温控系统。
(2)具体要求及功能如下:
① 实时测量环境温度,并显示当前温度值。
② 当室温度高于设定温度,压缩机运转,使室温降低。
③ 当室温低于设定温度,压缩机停止运转。
④ 温度设定功能,通过按键输入压缩机启停的温度设定值。设定温度
过程中显示设定温度值,以便于操作。设定完毕后,改为显示当前测定温度值。
3.设计内容
3.1 设计方案
1、根据设计要求,设计出温度控制系统的基本结构框图如图1所示。
图1温度控制系统的基本结构框图
系统由四个主要功能模块组成:温度测量、按键输入,数码显示以及控制压缩机启停模块。
(1)温度测量模块的主要功能是将环境温度转化为电参数(电压),并通过A/ D转换得到数字量送入单片机。
(2)按键输入模块主要功能是实现设定温度值的输入。
(3)LED显示模块主要功能是显示当前环境温度值。因空调对温度精度要求不高,本设计只要求显示两位整数的温度值。
(4)压缩机控制模块主要功能是单片机根据环境温度与设定温度的比较结果送出开关信号、控制压缩机的启停。
2、硬件设计及功能说明
⑴ 系统的硬件电路:包括主机、温度控制、压缩机的控制、按键及显示5个部分
⑵ 功能说明
① 将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毫秒中断一次,比较室温与设定温度一次,而令压缩机运转或停止。
3.2 硬件各单元电路的设计1、8051单片机引脚图
2、A/D转换器
3、LED显示电路
4、电压放大电路
5、温度传感器
3.3 软件设计
3.3.1 程序框图
开始
启动AD转换
初始化
有键按下设定温度值读AD0809
数据转换
显示
开始
室温大于设定温
启动压缩机关闭压缩机
恢复现场
返回
程序流程如图3所示。
3.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 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