空调机的温度控制.docx
《空调机的温度控制.docx》由会员分享,可在线阅读,更多相关《空调机的温度控制.docx(74页珍藏版)》请在冰豆网上搜索。
![空调机的温度控制.docx](https://file1.bdocx.com/fileroot1/2023-2/13/d4ce9eb5-6e0e-4bf3-8c1c-f255f1945cc6/d4ce9eb5-6e0e-4bf3-8c1c-f255f1945cc61.gif)
空调机的温度控制
一总体方案设计······················1
二单片机简介·······················2
三A/D转换························5
四温度检测的概述·····················8
五AD590·························8
六LM741·························11
七显示部分的概述····················12
八74LS47························13
九数码管························15
十键盘部分·······················18
十一软件部分的概述···················20
十二主程序的设计····················22
十三十六进制——十进制转换程序的设计··········23
十四中断服务子程序的设计················24
十五标度转换子程序的设计················25
十六整体程序······················26
十七仿真························33
十八总结························38
十九附录························39
空调机的温度控制
房钰章
摘要:
本文介绍了空调机温度控制系统。
本温度控制系统采用的AT89C51单片机采集数据,处理数据来实现对温度的控制。
主要过程如下:
利用温度传感器收集的信号,将电信号通过A/D转换器转换成数字信号,传送给单片机进行数据处理,并向压缩机输出控制信号,来决定制冷或者制热。
当安装有LED实时显示被控制温度及设定温度,使系统应用更加方便、直观。
关键字:
单片机,温度传感器,A/D转换
一、总体方案设计
用是以AT89C51作为核心部分,控制调节室内温度。
其工作过程将AD590作为室内温度传感器,当温度变化时,AD590会产生电流变化,经OPA1将电流转换为电压,由OPA2做零位调整,最后由OPA3反相放大十倍,并由ADC0804转换成数字信号送入单片机。
按下P2.1(P2.2)按钮,放开后立即进入温度设定模式(进入减1度或增1度设定温度模式,),并显示上一次设定值,在温度范围内,每按一次设定温度将减(加)1OC直到最低设定温度15OC(直到设定最高温度35OC),再按一次又回到最高设定温度35OC(回到最低设定温度15OC)。
当室温高于设定温度,压缩机运转,使室温降低,当室温低于设定温度,缩机停止运转。
当进入减1度或增1度设定温度模式,如未再次按下按钮,经大约2秒后自动解除设定模式(已设定的值有效),回到室温显示模式。
本程序以计时中断,每50毫秒中断一次,比较室温与设定温度一次,而令压缩机运转或停止。
通过键盘设定温度,在温度范围内任意设定温度,超出范围设定无效并返回到原来设定的温度;欲设定温度时,输入“*”(设定),就进入设定模式,显示器显示“35”(设定初值)(如已设定过,则显示上一次设定值),开始输入键盘设定温度,设定完成后按“#”(确认)就可回到现在温度显示模式;如果没按下确定键则设定的温度无效。
原理图如下所示:
二.单片机简介(AT89C51)
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图1所示:
图1
主要特征:
●与MCS-51兼容
●4K字节可编程闪烁存储器
●寿命:
1000写/擦循环
●数据保留时间:
10年
●全静态工作:
0Hz-24MHz
●三级程序存储器锁定
●128×8位内部RAM
●32可编程I/O线
●两个16位定时器/计数器
●5个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
FIash编程和程序校验期间,P1接收低8位地址。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0(RXD)(串行输入口)
P3.1(TXD)(串行输出口)
P3.2(
)(外部中断0)
P3.3(
)(外部中断1)
P3.4(T0)(记时器0外部输入)
P3.5(T1)(记时器1外部输入)
P3.6(
)(外部数据存储器写选通)
P3.7(
)(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/
:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的l/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/VPP:
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
闲散节电模式及掉电模式:
AT89C51有两种可用软件编程的省电模式,它们是闲散模式和掉电工作模式。
这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。
PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。
IDL是闲散等待方式,当IDL=1,激活闲散工作状态,单片机进入睡眠状态。
如需要同时进入两种工作模式,即PD和IDL同时为1,则先激活掉电模式。
在闲散工作模式状态,中央处理器CPU保持睡眠状态,而所有片内的外设仍保持激活状态,这种方式由软件产生。
此时,片内随机存取数据存储器和所有特殊功能寄存器的内容保持不变。
闲散模式可由任何允许的中断请求或硬件复位终止。
终止闲散工作模式的方法有两种,一是任何一条被允许中断的事件被激活,IDL被硬件清除,即刻终止闲散工作模式。
程序会首先影响中断,进入中断服务程序,执行完中断服务程序,并紧随RETI指令后,下一条要执行的指令就是使单片机进入闲散工作模式,那条指令后面的一条指令。
二是通过硬件复位也可将闲散工作模式终止。
需要注意的是:
当由硬件复位来终止闲散工作模式时,中央处理器CPU通常是从激活空闲模式那条指令的下一条开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止中央处理器CPU访问片内RAM,而允许访问其他端口,为了避免可能对端口产生的意外写入:
激活闲散模式的那条指令后面的一条指令不应是一条对端口或外部存储器的写入指令。
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。
退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。
三.A/D转换(ADC0804)
ADC0804是用CMOS集成工艺制成的逐次逼近型A/D转换器。
分辨率8位,转换时间100μs,存储时间135μs,输入电压范围0~5V,增加某些外部电路后,输入模拟电压可为5V。
该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无需附加逻辑接口电路。
ADC0804芯片外引脚图如2所示。
图2
引脚名称及意义如下:
、
、
(引脚1、2、3):
是数字控制输入端,满足标准TTL逻辑电平。
其中
和
用来控制A/D转换的启动信号。
、
用来读A/D转换的结果,当它们同时为低电平时,输出数据锁存器DB0~DB7各端上出现8位并行二进制数码。
CLKIN(引脚4)和CLKR(引脚19):
ADC0801~ADC0805片内有时钟电路,只要在外部“CLKIN”和“CLKR”两端外接一对电阻电容即可产生A/D转换所要的时钟,其震荡频率为FCLK≈1/1.1RC。
其典型应用参数为:
R=10KΩ,C=150PF,FCLK≈640KHZ,转换速度为100μs。
若采用外部时钟,则外部FCLK可以从CLKIN端送入,此时不接R、C。
允许的时钟频率范围为100KHZ~1460KHZ。
(引脚5):
是转换结束信号输出端,输出跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。
在典型应用FCLK=640KHZ时,转换时间约为103μs~114μs。
当FCLK超过640KHZ,转换精度下降,超过极限值1460KHZ时便不能正常工作。
VIN(+)(引脚6)和VIN(-)(引脚7):
被转换的电压信号从VIN(+)和VIN(-)输入,允许此信号是差劲的或不共地的电压信号。
如果输入电压VIN的变化范围从0V到Vmax,则芯片的VIN(-)端接地,输入电压加到VIN(+)引脚。
由于该芯片允许差动输入,在共模输入电压允许的情况下,输入电压范围可以从非0状态开始,即Vmin至Vmax。
此时芯片的VIN(-)端应该接入等于Vmin的恒值电码坟上,而输入电压VIN仍然加到VIN(+)引脚上。
AGND(引脚8)和DGND(引脚10):
A/D转换器一般都有这两个引脚。
模拟地AGND和数字地DGND分别设置引入端,使数字电路的地电流不影响模拟信号回路,以防止寄生耦合造成的干扰。
VREF/2(引脚9):
参考电压VREF/2可以由外部电路供给,“VREF/2”端直接送入,VREF/2端电压值应是输入电压加以改变,转换的0点无需调整。
放大10倍:
本电路A/D→十进制→乘2→显示,取二位整数输出最大转换值=FFH(225),OPA3为放大10倍时,则本电路最大测量度为:
最大显示温度=5.1v/10=0.51v即51摄氏度(10为放大倍数)255x=51,知x=0.2,即先乘2再除以10,FHH→255→255*2=510,R4=0.5,R3=10,即D4=0,D3=5,D2=1,D1=0本电路显示器只取D3,D2两位数。
温度值(℃)
OPA1(V)
OPA2(V)
OPA3(V)
ADC(VIN)
ADC(输出值)
0
2.732
0
0
0
00H(0)
10
2.832
-0.1
1
1
32H(50)
20
2.932
-0.2
2
2
64H(100)
30
3.032
-0.3
3
3
96H(150)
40
3.132
-0.4
4
4
C8H(200)
50
3.232
-0.5
5
5
FAH(250)
51
3.242
-0.51
5.1
5.1
FFH(255)
A/D转换器设计接口:
如图3所示,ADC0804数据输出线与AT89C51的数据总线直接相连,AT89C51的RD、WR和INT1直接连到ADC0804,由于用P1.0线来产生片选信号,故无需外加地址译码器。
当AT89C51向ADC0804发WR(启动转换)、RD(读取结果)信号时,只要虚拟一个系统不占用的数据存储器地址即可
图3A/D转换器的设计接口电路图
在使用时应注意以下几点:
(1)转换时序
图4ADC0804控制信号时序图
ADC0804控制信号的时序图如图4所示,各控制信号时序关系为:
当
与
同时为低电平A/D转换器被启动切在
上升沿后100模数完成转换,转换结果存入数据锁存器,同时,
自动变为低电平,表示本次转换已结束。
如
和
同时来低电平,则数据锁存器三态门打开,数字信号送出,而在
高电平到来后三态门处于高阻状态。
(2)零点和满刻度调节
ADC0804的零点无须调整。
满刻度调整时,先给输入端加入电压,使满刻度所对应的电压值是,其中是输入电压的最大值,是输入电压的最小值。
当输入电压与值相当时,调整端电压值使输出码为FEH或FFH。
(3)参考电压的调节
在使用A/D转换器时,为保证其转换精度,要求输入电压满量程使用。
如输入电压动态范围较小,则可调节参考电压,以保证小信号输入时ADC0804芯片8位的转换精度。
(4)接地
模数、数模转换电路中要特别注意到地线的正确连接,否则干扰很严重,以至影响转换结果的准确性。
A/D、D/A及取样保持芯片上都提供了独立的模拟地(AGND)和数字地(DGND)的引脚。
在线路设计中,必须将所有的器件的模拟地和数字地分别连接,然后将模拟地与数字地仅在一点上相连。
四.温度检测(AD590、LM741C)
温度检测原理图:
五.AD590
AD590是美国模拟器件公司生产的单片集成两端感温电流源。
温度检测元件AD590,输出与温度成正比的线性电流,此电流流过10K电阻转换为与温度成正比的线性电压。
AD590温度与电流、电压关系如下表:
摄氏温度(℃)
AD590电流(μA)
流经10KΩ形成电压(V)
0
273.2
2.732
10
283.2
2.832
20
293.2
2.932
25
298.2
2.982
30
303.2
3.032
40
313.2
3.132
50
323.2
3.232
51
324.2
3.242
OPA1跟随器使前后电路隔离和提高带负载能力。
在0℃时,调VR1使OPA1输出为2.732V(或25℃时,OPA1输出为2.982V)。
OPA2组成调零电路,在0℃时,调VR2使OPA2输出为0V。
OPA3组成10倍线性反向放大器。
这样,在0℃~51℃温度范围内,OPA3的输出端就得到0~+5.1V电压信号,目的是适应ADC0804输入信号电压为0~+5.1V范围的要求。
1、主要特性
AD590是电流型温度传感器,通过对电流的测量可得到所需要的温值。
根据特性分档,AD590的后缀以I、J、K、L、M表示。
AD590L、AD590M一般用于精密温度测量电路,其电路外形如图5所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。
集成温度传感器的带你路符号如图5所示。
图5AD590的外形电路及集成温度传感器电路符号
(1)流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数:
Ir/T=1μA/K,式中Ir—流过器件(AD590)的电流,单位为μA;T—热力学温度,单位为K;
(2)AD590的测温范围为-55℃~+150℃;
(3)AD590的电源电压范围为4~30V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏;
(4)输出电阻为710mΩ;
(5)精度高,AD590在-55℃~+150℃范围内,非线性误差仅为±0.3℃。
2、AD590的工作原理
在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串联一个1KΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。
其基本电路如图6所示。
图6AD590内部核心电路
图6是利用△UBE特性的集成PN结传感器的温度部分核心电路。
其中T1、T2起恒流作用,可用于使左右两支路的集电极电流I1和I2相等;T3、T4是感温用的晶体管,两个管的材质和工艺完全相同,但T3实质上是由n个晶体管并联而成,因为其结面积是T4的n倍。
T3和T4的发射结电压UBE3和UBE4经反极性串联后加载电阻R上,所以R上端电压为△UBE因此,电流I1为:
I1=△UBE/R=(KT/q)(lnn)/R
对于AD590,n=8,这样的总电流将与热力学温度T成正比,将此电流引至负载电阻R1上便可得到与T成正比的输出电压。
由于利用了恒流特性,所以输出信号不受电压和导线电阻的影响。
图6中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了其电阻值,因而在基准温度下可得到1μA/K的I值。
图7AD590的内部电路
图7所示是AD590的内部电路,途中T1~T4相当于图6中的T1、T2,而T9,T11相当于图6中的T3、T4。
R5、R6是薄膜工艺制成的低温度系数电阻,供出厂前调整之用。
T7、T8、T10为对称的Wilson电路,用来提高阻抗。
T5、T12和T10为启动电路,其中T5为恒定偏置二极管。
T6可用来防止电源反接时损坏电路,同时也可使左右两支路对称。
R1、R2为发射极反馈电阻,可用于进一步提高阻抗。
T1~T4是为热效应而设计的连接方式。
而C1和R4则可用来防止寄生震荡。
该电路的设计使得T9、T10、T11三者的发射极电流相等,并同为整个电路总电流I的1/3。
T9和T11的发射结面积比为8:
1,T10和T11的发射结面积相等。
T9和T11的发射结电压互相反极性串联后加在电阻R5和R6上,因此可以写出:
UBE=(R6-2R5)I/3
R6上只有T9发射极电流,而R5上除了来自T10的发射极电流外,还有来自T11的发射极电流,所以R5上的压降是R5的2/3。
根据上式不难看出,要想改变UBE,可以在调整R5后再调整R6,而增大R5的效果和减小R6是一样的,其结果都会使UBE减小,不过,改变R5对UBE的影响会更为显著,因此它前面的系数较大。
实际上就是利用激光修正R5以进行粗调,修正R6以实现细调,最终使其在250℃之下使总电流I达到1μA/K。
六.LM741
LM741是一种应用非常广泛的通用型运算放大器。
由于采用了有源负载,所以只要两级放大就可以达到很高的电压增益和很宽的共模及差模输入电压范围。
本电路采用内部补偿,电路比较简单不易自激,工作点稳定,使用方便,而且设计了完善的保护电路,不易损坏。
LM741可应用于各种数字仪表及工业自动控制设备中。
特点:
●不需要处部频率补偿
●输入有过压保护
●输出有过载保护
●无阻塞和振荡现象
图8封装外形图(管脚朝下)
图9基本接线图
图10电路原理图
七.显示部分(74LS47、7段数码管)
显示部分原理图:
八.74LS47
74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的IO开销。
因此是一个非常好的芯片!
但是由于目前从节约成本的角度考虑,此类芯片已较少用,大部份情况下都是用动态扫描数码管的形式来实现数码管显示。
图1174ls47引脚图
74LS47工作原理:
译码为编码的逆过程。
它将编码时赋予代码的含义“翻译”过来。
实现译码的逻辑电路成为译码器。
译码器输出与输入代码有唯一的对应关系。
74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,图12列出了74LS47的真值表,表示出了它与数码管之间的关系。
图1274LS47真值表
(1)
:
试灯输入,是为了检查数码管各段是否能正常发光而设置的。
当
=0时,无论输入A3,A2,A1,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。
(2)
灭灯输入,是为控制多位数码显示的灭灯所设置的。
=0时。
不论
和输入A3,A2,A1,A0为何种状态,译码器输出均为高电平,使共阳极7段数码管熄灭。
(3)
:
灭零输入,它是为使不希望显示的0熄灭而设定的。
当对每一位A3=A2=A1=A0=0时,本应显示0,但是在
=0作用下,使译码器输出全1。
其结果和加入灭灯信号的结果一样,将0熄灭。
(4)
:
灭零输出,它和灭灯输入
共用一端,两者配合使用,可以实现多位数码显示的灭零控制。
图1374LS47原理图
九.数码管
产品分类:
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到