空调温度控制器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机控制课程设计
学生姓名:
学生学号:
所在班级:
所在专业:
指导教师:
课题空调温度控制器设计
一.设计任务(要求)
1.设计任务
运用<<微型计算机原理与接口技术>>、《单片机原理及应用》等课程知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。
了解闭环控制的基本原理,熟悉A/D变换原理和编程方法,掌握键盘扫描和LED 显示原理和编程方法。
2.设计要求
利用8255扩展LED显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制设计。
(1)可以利用实验仪上的电位器模仿温度变化,利用ADC0809采样可变电位器
的输出电压,可将初始ADC0809的输出值作为设定温度;
(2)加热和致冷电机可以用发光管代替,加热时红色发光管亮,制冷时驱动绿色
发光管亮;
(3)当单片机采样到可变电位器的输出电压值超过设定温度+2℃时,启动致冷电
机;采样到可变电位器的输出电压值低于设定温度-2℃时,启动加热电机。二.设计方案
1. 设定一恒温温度25度,通过键盘来控制它的大小,设定一键温度加一,一键温度减
一,电位器所出的模拟温度来和恒温温度进行比较。
2.对各个子程序(LED显示,键盘扫描,A/D采样)在主程序实行调用,以此来达到实
验的要求。
三.原理框图
A/D采样子程序
温度控制主程序
四.系统模块详细设计与调试
系统模块的设计
1.A/D转换子程序
BEING: MOV DPTR , #8000H ; AD转换子程序
MOV DPTR , #8000H;启动A/D转换
MOVX @DPTR , A
MOV R6 , #14H
DELAY2: NOP
NOP
NOP
DJNZ R6,DELAY2
MOVX A,@DPTR
MOV 47H,A ; 温度AD转换结果暂存47H单元
ACALL CHANGE ; 十六进制转十进制子程序
LCALL DISPLAYLED
RET
CHANGE: MOV R1 , #00H
MOV R2,#00H
CLR C
CHAN: SUBB A,#64H
JC CHAN1
INC R1
AJMP CHAN
CHAN1: ADD A,#64H
CHAN2: SUBB A,#0AH
JC CHAN3
INC R2
AJMP CHAN2
CHAN3: ADD A, #0BH
MOV 64H,A ;转换结果个位暂存2AH单元
MOV 63H,R2 ;十位存2BH单元
MOV 62H,R1 ;百位存2CH单元
RET
2.LED转换子程序
DISPLAYLED :MOV R0,#BUF ;r0指向显示缓冲首地址MOV R1,#5 ;要循环2次,有2个LED
MOV R2,#00100000B ;从第一位开始
LOOP: MOV DPTR,#OUTBIT
MOV A,#0
MOVX @DPTR,A ;关所有的位的显示
MOV A,@R0
MOV DPTR,#LEDMAP ;查表
MOVC A,@A+DPTR
MOV DPTR,#OUTSET
MOVX @DPTR,A ;输出r0指向的单元的数
MOV DPTR,#OUTBIT
MOV A,R2
MOVX @DPTR,A ;开显示,将这个数显示出来(r2决定在哪一位显示)
MOV R6,#01 ;延时
CALL DELAY ;延时
MOV A,R2
RR A
MOV R2,A ;准备显示下一位数
INC R0 ;r0指向下个单元
DJNZ R1,LOOP ;循环六次
MOV DPTR,#OUTBIT
MOV A,#0
MOVX @DPTR,A ;关所有的位的显示
RET
3.按键子程序
ANJIAN:
CALL TESTKEY ;检测键盘是否有按键按下
JZ ANJIAN
MOV R6,#10 ;延时去抖动
CALL DELAY
CALL TESTKEY ;再次检测键盘是否有按键按下
JZ ANJIAN
MOVX @DPTR,A
MOV R1,#00100000B
MOV R2,#6
KLOOP: MOV DPTR,#OUTBIT ;扫描,得到按键的行和列
MOV A,R1
CPL A ;(取反)用零去扫描各列
MOVX @DPTR,A
CPL A
RR A ;下一列
MOV R1,A ;R1暂存列值
MOV DPTR,#IN
MOVX A,@DPTR ;读行状态
CPL A
ANL A,#0FH
JNZ GOON1
DJNZ R2,KLOOP ;下一列扫描(一轮6次)
MOV R2,#06H
SJMP KLOOP ;下一轮扫描
GOON1: ;按照行列计算键值
MOV R1,A ;行号放在R1内