空调控制设计报告.docx
- 文档编号:10749429
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:43
- 大小:585.07KB
空调控制设计报告.docx
《空调控制设计报告.docx》由会员分享,可在线阅读,更多相关《空调控制设计报告.docx(43页珍藏版)》请在冰点文库上搜索。
空调控制设计报告
课程设计报告
课程名称单片机原理及应用
设计题目基于单片机的空调控制设计
专业班级电子0641
姓名黄永兵
学号15
成绩评定
考核
内容
设计
表现
设计
报告
答辩
综合评
定成绩
成绩
电气与信息学院
和谐勤奋求是创新
课程设计考核和成绩评定办法
1.课程设计的考核由指导教师根据设计表现、设计报告、设计成果、答辩等几个方面,给出各项权重,综合评定成绩。
该设计考核教研室主任审核,主管院长审批备案。
2.成绩评定采用五级分制,即优、良、中、及格、不及格。
3.参加本次设计时间不足三分之二或旷课四天以上者,不得参加本次考核,按不及格处理。
4.课程设计结束一周内,指导教师提交成绩和设计总结。
5.设计过程考核和成绩在教师手册中有记载。
课程设计报告内容
课程设计报告内容、格式各专业根据专业不同统一规范,经教研室主任审核、主管院长审批备案。
注:
1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。
2.为了节省纸张,保护环境,便于保管实习报告,统一采用A4纸,实习报告建议双面打印(正文采用宋体五号字)或手写,右侧装订。
08/09学年第二学期
单片机原理及应用课程设计
指导教师:
于新,姜航班级:
电子0641班地点:
单片机室
课程设计题目:
基于单片机的空调控制器设计
一、课程设计目的
1.了解闭环控制的基本原理。
2.进一步熟悉A/D变换原理和编程方法。
3.进一步掌握按键控制和LCD显示原理和编程方法。
二、空调控制功能设计
1、系统功能概述:
本系统是通过温度传感器对空气进行温度采集,将采集到的温度信号传输给单片机,再由单片机控制显示器,并比较采集温度与设定温度是否一致,经过8255扩展口,然后驱动空调机的加热或制冷循环对空气进行处理,从而模拟实现空调温度控制单元的工作情况。
空调温控器主要单片机,温度采样电路,A/D转换电路,温度显示电路,温度输入电路,驱动电路等组成。
2、系统硬件描述:
1)系统结构框图:
图1空调机温度控制系统框图
2)硬件组成:
A,单片机80c51
空调温度控制器的核心就是单片机,单片机的选择将直接关系到控制系统的工作是否有效和协调。
本设计采用MCS-51系列的80c51单片机,因为80c51单片机应用广泛,性能稳定,抗干扰能力强,性价比高。
8051包含了8位CPU,片内振荡器,4K字节ROM,128字节RAM,2个16位定时器,计数器,中断结构,I/O接口等。
可进行计算,定时,中断等一系列功能。
B,A/D转换电路
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
1.主要特性
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
2.内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近
3.外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
ADC0809及转换图如下所示:
图2ADC0809图
图3A/D转换电路
C,温度采样电路
本系统采用AD590型温度传感器,AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。
在被测温度一定时,AD590相当于一个恒流源,AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,由于此信号为模拟信号,因此,要进行进一步的控制及数码显示,还需将此信号转换成数字信号。
它的主要特性如下:
(1)流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数;即:
式中:
(1)
Ir—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。
(2)AD590的测温范围为-55℃~+150℃;
(3) AD590的电源电压范围为4V~30V;
(4)温度采样工作原理
因为AD590是将温度转换为电流,而单片机对电压信号更好测量,所以要将电流转化为电压,同时对电压信号进行放大后输入A/D转换ADC0801的VI-端口。
电流转化为电压表达式如下:
(2)
由反相比例运算放大电路,根据“虚断”,“虚短”,集成运放净输入电压为零,净输入电流为零,净输入电流为零等推算出表达式为:
(3)
最后由
(1),
(2),(3)得到:
图4温度采样电路
D,按钮开关
按钮开关电路一按键连接到80c51的P3.4端口,另一按键接P2.1端口。
如果P3.4按键为1,进入温度设定模式,显示设定温度20oC,每按一次P2.1设定温度将增加1oC,如果P3.4为0,每按一次P2.1设定温度将减少1oC。
E,LCD显示电路
本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。
图形液晶显示模块有两种连接方式。
一种为直接访问方式,一种为间接控制方式。
本实验仪采用直接控制方式。
直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。
计算机通过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号AO由地址线A0控制。
间接控制方式是计算机通过自身的或系统的并行接口与液晶显示模块连接,如8031的P1口和P3口,8255等并行接口芯片。
计算机通过对该并行接口输出状态的编程操作,完成对液晶显示模块所需时序的操作和数据的传输。
这种间
接控制方式的电路简单,控制时序通过编程来实现。
实际电路如下图所示:
LCD
液
晶
显
示
屏
图5LCD显示电路
F,压缩机驱动电路
压缩机驱动控制,8051的RXD的引脚与7404的引脚相连接,从RXD发出的控制信号经7404和ULN2003到达压缩机,驱动压缩机的运行和停止。
ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
其中ULN2003是由7个NPN具有用共阴二极管夹紧来转换电感负载的高压输出特征的达林顿晶体管组成。
当前一对单精度型的额定电流为500mA,有比较高的电流容量,它的应用软件包括继电器驱动器、显示驱动器,线驱动器和逻辑缓冲器等。
在本驱动电路中的作用是增大电流驱动能力。
该芯片采用16脚的DIP封装,其中第9为公共输出端COM,有一个输出端为高电平,COM就为高电平。
图6压缩机驱动电路
3)系统原理图:
图7系统原理图
3,系统软件
1)编程思想概述:
软件设计的任务包括启动A/D转换、读A/D转换结果、设置温度、温度控制等,其中启动A/D转换、读A/D转换结果、设置温度等工作在中断服务程序中完成,温度控制在主程序中完成,即每隔一段时间对比测量温度与设定温度之间的大小关系,根据对比结果给出控制信号,令压缩机的运行或停止,实现温度调控。
2)程序流程图:
主程序流程图如图8所示
中断0服务程序流程图9所示。
中断1服务程序流程图10所示
图8主程序流程图
图3.2定时器中断服务子程序
图9中断0服务程序流程图
图3.2定时器中断服务子程序
图10中断1服务程序流程图
3)程序代码:
modeequ082h
PORTAequ08000h
CTLequ08003h
ADPortequ0a000h
Heatequ1
Coolequ2
SetTempequ50h
CurTempequ51h
;===============显示
CWADD1EQU0f000H;写指令代码地址(E1)
DWADD1EQU0f001H;写显示数据地址(E1)
CRADD1EQU0f002H;读状态字地址(E1)
DRADD1EQU0f003H;读显示数据地址(E1)
CWADD2EQU0f004H;写指令代码地址(E2)
DWADD2EQU0f005H;写显示数进地址(E2)
CRADD2EQU0f006H;读状态字地址(E2)
DRADD2EQU0f007H;读显示数据地址(E2)
PD1EQU3DH;122/2分成updown两半屏122x32
leiaddEQU30H;列地址寄存器
PAGE_EQU31H;页地址寄存器D1,DO:
页地址
CODE_EQU32H;字符代码寄存器
COUNTEQU33H;计数器
DIRequ34h;-----------?
CTEMPEQU38H;-----------?
COMEQU39H;指令寄存器
DATEQU3AH;数据寄存器
org0000h
ljmpStart
org0003h
jmpnnn;================================读ADC0809值中断
org0013h
jmpyyy;================================设定温度值变化脉冲中断
Delay:
movr7,#0
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
DisplayResult:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>获得0809值>>>>>>>>>>>>>>>>>>>>
jbp3.0,ReadTemp
setbit0
setbit1
setbea
setbex0
setbex1
ReadTemp:
movdptr,#0a000h
mova,#00h
movx@dptr,a
calldelay
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>计算输出值>>>>>>>>>>>>>>>>>>>>
clrex0
mova,r3
movb,#33h
divab
movr6,a;
mova,b
movb,#5h
divab
movr7,a;
ret
;===============================设置温度切换====================
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lcd显示>>>>>>>>>>>>>>>>>>>>>>>>
DisplayLCD:
LCALLINIT
LCALLCLEAR
MOVCTEMP,#0
MOVDIR,#0
AAA:
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#00H
MOVleiadd,A
MOVCODE_,#00H
LCALLCCW_PR
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#10H
MOVleiadd,A
MOVCODE_,#01H
LCALLCCW_PR
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#20H
MOVleiadd,A
MOVCODE_,#02H
LCALLCCW_PR
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#30H
MOVleiadd,A
MOVCODE_,#03H
LCALLCCW_PR
;========================================设定温度十位显示切换
jbp3.0,mu
cjner0,#09h,liming
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#40H
MOVleiadd,A
mova,r1
adda,#0ch
MOVCODE_,a
LCALLCCW_PR
jmpmaxinlei
liming:
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#40H
MOVleiadd,A
mova,r1
adda,#0ch
MOVCODE_,a
LCALLCCW_PR
jmpmaxinlei
mu:
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#40H
MOVleiadd,A
MOVCODE_,#04H
LCALLCCW_PR
;=================================设定温度个位动态显示
maxinlei:
jbp3.0,zzz
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#50H
MOVleiadd,A
mova,r0
adda,#0ch
MOVCODE_,a
LCALLCCW_PR
jmpxxx
zzz:
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#50H
MOVleiadd,A
MOVCODE_,#05H
LCALLCCW_PR
;================================================调用摄氏度符号
xxx:
MOVPAGE_,#02H
MOVA,CTEMP
ADDA,#60H
MOVleiadd,A
MOVCODE_,#06H
LCALLCCW_PR
;====================================当前温度显示程序
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#00H
MOVleiadd,A
MOVCODE_,#07H
LCALLCCW_PR
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#10H
MOVleiadd,A
MOVCODE_,#08H
LCALLCCW_PR
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#20H
MOVleiadd,A
MOVCODE_,#09H
LCALLCCW_PR
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#30H
MOVleiadd,A
MOVCODE_,#0aH
LCALLCCW_PR
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#40H
MOVleiadd,A
MOVCODE_,#0bH
LCALLCCW_PR
;--------------------------------------当前温度动态显示----------------------------------------------------
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#50H
MOVleiadd,A
mova,r6
adda,#0ch
MOVCODE_,a
LCALLCCW_PR
lcalldelay12
jnbp3.0,sss
;=========================================静态显示
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#60H
MOVleiadd,A
MOVCODE_,#0dH
LCALLCCW_PR
jmpGGG
;==========================================动态显示当前温度值程序
SSS:
MOVPAGE_,#04H
MOVA,CTEMP
ADDA,#60H
MOVleiadd,A
mova,r7
adda,#0ch
MOVCODE_,a
LCALLCCW_PR
lcalldelay12
;==========================================当前温度(作比较用)
GGG:
mova,r6
movb,#10
mulab
adda,r7
deca
movCurTemp,a
RET
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>初始化程序
INIT:
MOVCOM,#0E2H;复位
LCALLcwE1
LCALLPR3
MOVCOM,#0A4H;关闭休闭状态
LCALLcwE1
LCALLPR3
MOVCOM,#0A9H;设置1/32占空比
LCALLcwE1
LCALLPR3
MOVCOM,#0A0H;正向排序设置
LCALLcwE1
LCALLPR3
MOVCOM,#0C0H;设置显示起始行为第一行
LCALLcwE1
LCALLPR3
MOVCOM,#0AFH;开显示设置
LCALLcwE1
LCALLPR3
RET
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>清屏
CLEAR:
MOVR4,#00H;页面地址暂存器设置
CLEAR1:
MOVA,R4;取页地址值
ORLA,#0B8H;"或"页面地址设置代码
MOVCOM,A;页面地址设置
LCALLcwE1
LCALLPR3
MOVCOM,#00H;列地址设置为"0"
LCALLcwE1
LCALLPR3
MOVR3,#50H;一页清80个字节
CLEAR2:
MOVDAT,#00H;显示数据为"0"
LCALLdwE1
LCALLPR4
DJNZR3,CLEAR2;页内字节清零循环
INCR4;页地址暂存器加一
CJNER4,#04,CLEAR1
RET
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;---------------------------------1.写E1程序指令代码子程序(E1)
cwe1:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD1;设置读状态字地址
PR01:
;读状态字
MOVXA,@DPTR;读状态字
JBACC.7,PR01;判"忙"标志为句"0",否再读
MOVDPTR,#CWADD1;设置写指令代码地址
MOVA,COM;取指令代码
MOVX@DPTR,A;写指令代码
POPDPH
POPDPL
RET
;;--------------------------------2.写显示数据子程序(E1)
dwE1:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD1;设置读状态字地址
PR11:
MOVXA,@DPTR;读状态宇
JBACC.7,PR11;判"忙"标志为"0",否再读
MOVDPTR,#DWADD1;设置写显示数据地址
MOVA,DAT;取数据
MOVX@DPTR,A;写数据
POPDPH
POPDPL
RET
;;3.--------------------------------读显示数据子程序(E1)
PR2:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD1;设置读状态字地址
PR21:
MOVXA,@DPTR;读状态字
JBACC.7,PR21;判"忙"标志为"0"否,否再读
MOVDPTR,#DRADD1;设置读显示数据地址
MOVXA,@DPTR;读数据
MOVDAT,A;存数据
POPDPH
POPDPL
RET
;;4.-----------------------------写指令代码子程序(E2)
PR3:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD2;设置读状态字地址
PR31:
MOVXA,@DPTR;读状态字
JBACC.7,PR31;判"忙"陈志为"0"否,否再读
MOVDPTR,#CWADD2;设置写指令代码地址
MOVA,COM;取指令代码
MOVX@DPTR,A;写指令代码
POPDPH
POPDPL
RET
;;5.-----------------------------写显示数据子程序(E2)
PR4:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD2;设置读状态字地址
PR41:
MOVXA,@DPTR;读状态字
JBACC.7,PR41;判"忙
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空调 控制 设计 报告