空调控制系统设计.docx
- 文档编号:24634523
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:22
- 大小:185.72KB
空调控制系统设计.docx
《空调控制系统设计.docx》由会员分享,可在线阅读,更多相关《空调控制系统设计.docx(22页珍藏版)》请在冰豆网上搜索。
空调控制系统设计
1、设计任务描述
1.1设计主要内容及要求:
设计一个空调控制器。
能利用单片机等原理部件模拟温度的调控和显示等功能,空调器是能控制风机和压缩机同时工作产生调节温度的原理。
硬件要求能有电路原理图及各部件完整的实物分析等,要对空调机有完整的了解。
才能达到此次设计任务的效果。
要求:
1)硬件电路设计,包括原理图和PCB板图。
2)控制器软件设计。
3)要求能够设定温度、测量温度、显示温度、制冷控制以及风机控制。
2、设计思路
2.1系统总体结构的设计
可以说空调控制器是围绕着一个核心部件来架设外围部件的设备,在这里核心部件是大多数厂家都会选用的单片机,因为现在的单片机拥有很高的集成设备,包含了大量的存储器和虚拟存储等,而且键盘输入及显示都是在内部集成的省却了扩展外围设备的麻烦,这样更能有利于我们着手于功能设置。
系统的设计出空调器的原理和注意事项,能方便的使用空调器来完成我们所想达到的目的,对于一般的空调器来说能自动的调节温度的变化范围,可以说这是一种恒温的效果,但是毕竟我们模拟的设备部能像真实的一样细致。
所以我采用灯和电机等代替采集和设定的比较结果,能很好的显示和明显的完成任务。
2.2环节设计、部件选择及参数计算
无疑对于空调器的设计来说,要能人工智能的操作其能控制温度的调节和设定温度的比较是一个较大的难题,因为往往我们所用的都是十进制数即所说的阿拉伯数字,但是像单片机这种高级的工具设备是不能识别的,它只能识别机器码也就是术语说的机器语言,这就为我们采集温度带来了一个很大的难题。
对于我所采集的温度值来讲,把每个温度值分为16等份,在每一等份之间我人为的规定每跳变一个数字度即比较一次,当然采集的都是模拟信号这样的话单片机是不能用于比较的,所以接入单片机之前用A/D转换器把数据转换成数字量,这样通过单片机本身的比较器就能计算出设定值和采集值的判定工作模式和是否应该工作电机和风机及压缩机等外部设备。
主要的步骤包括转换十进制数和十六进制数,这其中有一种方法叫按位加权累加和法,即当你把十进制数分别存储在两个存储单元中,即按十位和个位的排法,把个位的数值乘以16的零次方,并且存储在原位,这时可以用另一个单元的数乘以16的一次方这样循环使用把两者的数值相加,即能完成一个数的十进制和十六进制的转化。
这样当你的键盘有输入值的时候,每一个键值会自动转化为每个存储单元供显示作用。
2.3各部分部件选择
温度采集电路中所选用的传感器是热电偶,因为它测量精度高,而且输出的是电压信号,与摄氏温度成正比,同时又能够直接与单片机的A/D直接相连,使用方便,便于处理。
温度的采集是通过热电偶的温度采集电路,将温度转化成模拟电压进行输出,作为输入信号送给单片机,单片机的A/D最高输入电压为
,对应于十二位A/D转换器的最大值FFFH,根据其对应关系得到A/D转换后的值,存入固定的存储单元中准备与温度设定值进行比较。
在比较之前需要按照一定的比例值进行转换,这个比例值近似的取为16倍,得到一个新的十六进制数,由于选用的传感器每摄氏度对应0.01V,经过模数转换后得到每摄氏度对应08H,再通过判断查表即可得到温度的十六进制数,再存到相应的单元中与设定值进行比较。
当温度高于设定值时进行制冷,温度低于设定值时加热,只有温度处于人体适宜温度提示灯才不会亮。
温度设定是通过键盘输入来完成的,再通过查表得到可以进行比较的数,存入相应的存储单元,进行显示。
2.4总体功能解析
它主要完成的功能就是可以设定温度,实时采集温度并在LED上显示设定温度和当前温度。
我设计的空调控制器硬件部分主要有温度采集传感器应用电路、制冷电路、加热电路、指示灯电路、C8051F020单片机,以及单片机的复位和晶振电路。
3、设计方框图
图3-1空调控制器框图
图3-2空调控制器程序流程图
4、各部分硬件电路设计及参数计算
4.1电源电路设计
图4-1电源电路
单片机所采用的电源是3.3V,还有复位电路和其他电路也需要直流电源,而家用电是交流220V,所以需要进行整流、滤波。
需要将输入为5V~9V的电压值稳压到3.3V需要使用两块LM7805和1117稳压芯片。
其中LM7805的作用是将输入为5V~9V的电压稳压为5V,满足1117稳压芯片的工作电压(5V),经过1117稳压芯片后其输出的电压为所需的3.3V电压。
LM7805系列为3端正稳压电路,TO-220封装,能提供多种固定的输出电压,应用范围广。
内含过流、过热和过载保护电路。
带散热片时,输出电流可达1A。
虽然是固定稳压电路,但使用外接元件,可获得不同的电压和电流。
主要特点:
(1)输出电流可达1A
(2)输出电压有:
5V
(3)过热保护
(4)短路保护
(5)输出晶体管SOA保护
4.2单片机电路
单片机正常工作时,除了要加恒压电源外,还需要设计复位电路和晶振电路,我所设计的复位电路既可以上电复位,又可以在单片机非正常工作时进行手动复位,晶振采用的是12MHZ外部晶振。
通电时,电容
进行充电,电路导通,充电结束后,复位结束,充电时间决定复位时间。
工作过程中,当按下复位键后,电路导通,按键时间决定了复位时间。
电路中电容
的作用是抑制干扰从复位端进入。
器件内还集成了外部振荡器驱动电路,允许使用晶体、陶瓷谐振器、电容、RC或外部时钟源产生系统时钟。
复位电路和晶振电路图如下所示:
图4-2单片机复位及晶振电路
4.3键盘和显示电路
PB和PC口是8255两个八位带锁存的输入口,可实现输出数据锁存。
PB口的端口地址为8001H,PC口的端口地址为8002H。
PA口未用。
用PB口作六个数码管的位选。
用8708作显示器的位选驱动。
PC口作字型码锁存。
8255控制字的端口地址是8003H。
8078作数码管字型显示驱动。
六位数码管采用共阴极方式。
键盘及显示电路如下图所示:
图4-3键盘输入电路
图4-4输出显示电路
8255扩展接口是由高八位地址(A8~A15)通过74LS138译码产生的。
PA,PB,PC口和8255控制口的地址分别是8000H,8001H,8002H和8003H,它们由低位地址A0和A1区别。
低位地址A0和A1从低位地址锁存器74LS138的输出端引出。
4.4温度传感器的选择
本系统采用镍铬-镍硅热电偶作为温度传感器,由热电偶的特性可知,进入放大器的电压信号实为热电偶冷热端温差引起的热电势信号,冷端处于设定温度,热端处于外界室温,单片机的A/D通道可以直接采集热电偶信号,经冷端温度补偿后,在查K分度表则可以得到热端温度值,室温的测量可以经过热电阻式传感器变化为电压信号,经放大后直接送给单片机的A/D通道,单片机程序自动完成热电偶信号的采集和冷端信号采集,计算出实际的温度,从而控制控制空调的外部设备工作。
图4-5传感器采集电路
4.5外围部件的选择
在单片机的程序中需要设定适宜温度的范围,当从传感器接受的温度电压信号经过模数转换后,室内温度高于或者低于设定的范围,那么指示灯亮,通过编写单片机的I/O输出来控制指示信号的发出。
当采集温度高于设定温度时,需进行制冷,通过程序的设计启动风机;当采集温度低于设定温度需利用电机进行加热。
图4-6外部工作灯电路
由于二极管所能承受的最大电流为
而电源电压为5V,所以应串接一个电阻,其阻值最小为:
5、主要元器件介绍
5.1热电偶传感器
镍铬温度传感器是一种电压输出型精密温度传感器。
它工作类似于齐纳二极管,其反向击穿电压随绝缘温度以
的比例变化。
该器件在工作电流为
范围内的动态电阻小于
,当对它在
校准后,它在范围内具有小于的典型误差。
热电偶可应用于范围在
内的任何形式的温度检测,它的低阻抗和线性输出使得其读出和控制接口电路非常简单。
热电偶测温范围分别为
。
其短时间使用测温上限可扩宽至
。
主要特点:
(1) 在绝对温度下直接校准。
(2) 1℃的初始精度。
(3)工作于400uA~5mA电流范围。
(4)低于1Ω的动态阻抗。
(5) 容易校准。
(6)-40℃~+100℃宽工作温度范围。
5.28255扩展芯片
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
主要特点:
8255管脚特性如下:
(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。
引脚功能:
(1)RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
(2)CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
(3)RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
(4)WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
(5)D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
(6)PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
(7)PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
(8)PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
(9)A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择。
5.3C8051F020系列单片机
本系统的核心控制部件采用SiliconLaboratories公司生产的C8051F020单片机作为控制器。
C8051F系列单片机是集成的混合信号片上系统(SOC),具有与MCS-51内核及指令集完全兼容的微控制器,除了具有标准8051的数字外设部件之外,片内还集成的数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。
C8051F系列单片机的功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/I2C、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/O端口、电源监视器、看门狗定时器WDT和时钟振荡器等。
C8051F020单片机是C8051F系列中一个比较有代表性的型号,该器件是完全集成的混合信号系统级SCM芯片,具有64个数字I/O引脚。
主要性能:
(1)高速、流水线结构的8051兼容的MCS-51内核(可达25MIPS)。
(2)全速、非侵入式的在系统调试接口(片内)。
(3)真正12位、100ksps的8通道ADC,带PGA和模拟多路开关。
(4)真正8位、500ksps的ADC,带PGA和8通道模拟多路开关。
(5)两个12位DAC,具有可编程数据更新方式。
(6)64KB可在系统编程的Flash存储器。
(7)4352(4096+256)B的片内RAM。
(8)可寻址64KB地址空间的外部数据存储器接口。
(9)硬件实现的SPI、SMBus/I2C和两个UART串行接口。
(10)5个通用的16位定时器。
(11)具有5个捕捉/比较模块的可编程计数/定时器阵列。
C8051F系列单片机都可工作在工业温度范围(-45~+85
)内用2.7~3.6V的电压工作。
端口I/O、/RST和JTAG引脚都容许5V的输入信号电压。
C8051F020为100引脚TQFP封装。
6、软件介绍
6.1主程序
MAIN:
MOVWDTCN,#0DEH;禁止看门狗定时器
MOVWDTCN,#0ADH
MOVXBR2,#40H;使能交叉开关
LCALLSYSCLK_Init;初始化系统时钟
LCALLPORT_Init;交叉开关和通用I/O口初始化
LCALLData_init;数据初始化
LCALLINT8255;8255初始化
MOVEIE2,#10H;使能A/D中断
MOVP3IF,#00H
MOVAMX0CF,#00H;A/D初始化
MOVAMX0SL,#00H
MOVREF0CN,#03H
MOVADC0CF,#58H
MOVADC0CN,#0C0H
SETBEA
ORLADC0CN,#10H;启动A/D转换
主程序中首先要进行的是将看门狗定时器关掉,否则会影响程序的正常执行。
因为本程序中要用到A/D,所以要进行中断就必须在主程序中将A/D中断使能,程序中要用到I/O口,所以需对交叉开关和I/O口进行初始化,I/O口输出方式设置为推挽。
又调用了数据初始化,子程序中对各个存储单元和循环变量也进行了初始化。
单片机的工作需要一个精确的时钟基准,通过调用系统时钟的子程序来对系统时钟进行初始化,初始化为使用11.0592MHZ晶体作为时钟源,也同样是调用子程序来实现,然后开启A/D转换器进行工作。
6.2键盘及显示程序
wait:
movDPTR,#8001H//PB端口地址,位码//
mova,#00H
movx@DPTR,a
movDPTR,#8000H//PA端口地址,输入//
movxa,@DPTR
movR2,a
cjneR2,#0ffH,lop4
ajmplop5
lop4:
lcallKeypad
lop5:
nop
ret
//键盘输入程序//
Keypad:
cpla
anla,#0fH
mov70H,a
scan:
movDPTR,#8001H//扫描位码//
mova,67H
movx@DPTR,a
movDPTR,#8000H
movxa,@DPTR
anla,#0fH
cjnea,#0fH,pp
mova,67H
rla
mov67H,a
ajmpscan
pp:
mova,67H//确认是否有键按下//
mov67H,#0feH
anla,#0fH
cpla
anla,#0fH
mov69H,a
lcalltranslate
mova,68H
mov@R0,a
incR0
cjneR0,#73H,lop6
movR0,#71H
lop6:
nop
ret
//数据转换程序//
translate:
lcallDelay2
lcallDelay2
movDPTR,#TABA
mova,69H
movca,@a+DPTR
mov69H,a
movDPTR,#TABB
mova,70H
movca,@a+DPTR
clrc
adda,69H
clrc
mov68H,a
mov6AH,a
leave:
movDPTR,#TABC
mova,68H
movca,@a+DPTR
mov68H,a
movDPTR,#TABD
mova,6AH
movca,@a+DPTR
mov6AH,a
incR6
mova,R6
cjnea,#02H,lll
movR6,#00H
anl6BH,#0F0H
mova,6BH
orla,6AH
mov6BH,a
ajmpmmm
lll:
mova,6AH
swapa
anl6BH,#0fH
orla,6BH
mov6BH,a
mmm:
nop
ret
//显示程序//
Show:
lcallwait
movDPTR,#8001H
mova,R3//扫描键盘行首地址//
movx@DPTR,a
movDPTR,#8002H
mova,@R1
movx@DPTR,a
lcallDelay1
mova,R3
rla
movR3,a
cjneR3,#40H,lop1
movR3,#01H
lop1:
incR1
cjneR1,#77H,Show
movR1,#71H
MOVEIE2,#12H
ret
SC:
mova,31H
movr4,#1CH
movr5,#01H
next:
clrc
mov7FH,r4
cjnea,7FH,yyy
ajmpN
yyy:
jcN
mov31H,a
mova,r4
adda,#10H
movr4,a
mova,31H
incr5
cjner5,#0FH,goon
ajmpN
goon:
ajmpnext
N:
movdptr,#TABE//查表显示//
mova,r5
movca,@a+DPTR
mov6CH,a
swapa
mov6DH,a
anla,#0FH
movDPTR,#TABC
movca,@a+dptr
mov75H,a
mova,6CH
anla,#0FH
movdptr,#TABC
movca,@a+dptr
mov76H,a
ret
此部分程序虽然看起来挺复杂,其实原理很简单。
要想使温度显示在LED上,将LED初始化后,首先需要将温度分别存入不同的单元里。
我在这部分的设计思路是在LED显示当前的温度和设定温度,通过设一个循环变量使第一次只显示6个字符,而LED能利用的是ASCII值,所以需要将十六进制数转换为ASCII,通过变址寻址来取出6个单元需要显示的数,在经过MOVCA,@A+DPTR将代码字节存入累加器A中,因为DPTR指向的是ASCII表的首地址,这样就可以完成转换。
每个数字对应着不同的ASCII值,温度的显示是6位的,所以ASCII值只需列出能够显示0到9这十个数,在显示完第一次后,通过进行当前显示时间与所设的十六个分割温度分别进行比较,因为比较的语句过长,而LOP是短跳转,所以在中间又插进几条语句,来进行长调转来达到跳转指令。
如果当前温度与所设温度相一致,便会将I/O置位,因为输出方式是推挽,意味着置位后连接的发光二级管灭,即铃响,同时会进入第二次显示程序,第二次八个字符显示完成后从新跳回第一次显示部分,而且这个显示程序的循环是死循环,然后进行同样过程直到当前温度与所设温度不一致铃停响,直接跳回显示程序,在显示程序执行时,不会影响中断。
7、元器件清单
元件
名称
封装
10K
R6
AXIAL1.0
10K
R1
AXIAL1.0
10K
R3
AXIAL1.0
10K
R5
AXIAL1.0
10K
R4
AXIAL1.0
10uF
C15
RB.5/1.0
22uF
C2
RAD0.1
104
C1
RAD0.1
138
U5
DIP16
373
U1
DIP4
1117
U8
SOT223
4148
IN
M7
7805
LM
TO-220
8078
U4
DIP20
8255
U7
DIP40
8708
U6
DIP-12
BATTERY
BT1
RAD0.4
C8051F
U2
LQFP-32
DPY_7-SEG_DP
DS3
SMLED
DPY_7-SEG_DP
DS2
SMLED
DPY_7-SEG_DP
DS4
SMLED
DPY_7-SEG_DP
DS?
SMLED
LED
D4
DIODE0.4
LED
D1
DIODE0.4
LED
D2
DIODE0.4
LED
D3
DIODE0.4
LED
D6
DIODET
RT
U3
DIP14
8、工作过程分析
我所设计的空调控制器硬件部分主要有温度采集传感器应用电路、制冷电路、加热电路、指示灯电路、C8051F020单片机,以及单片机的复位和晶振电路。
本次课程设计是以单片机为基础的,通过外围设备来搭建模拟空调控制器的实现电路,我们在事实中是通过遥控器来调节空调器的温度变化的,但在模拟中我们无法达到一样的效果,所以我用外部中断来代替遥控器的作用,每当中断进入时空调器可以切换一个工作模式,空调无疑是在冷时能增加温度,而在温度过高时能启动风机来降温。
而我在此次设计中还用到了4个LED灯,其中两个为状态模式灯,当模式确定时此灯常亮,还有两个为工作状态灯,当灯工作时表示这时处于工作状态。
外部中断可以切换两者。
当然你所设定的温度是通过外部键盘进行输入的,这些在主程序中会转化成机器码来识别,这样省却了转化数制的麻烦,键盘直接相连的是显示模块,显示采用4位LED显示,前两位为设定值,后两位为采集值,利用单片机本身的比较器来使两者比较达到判断结果的目的。
附录1(原理图)
附录2(PCB板)
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空调 控制系统 设计