基于51单片机的空调温度控制设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Ⅰ基于MCS-51单片机的空调智能温控器的设计与开发摘要本控制电路是以8051单片机为控制核心。整个系统硬件部分包括温度采样电路,自激式A/D转换器,按键电路,驱动电路,时序电路,和8段译码器,LED数码显示器。在配合用汇编语言编制的程序使软件实现,实现空调温度智能转换的基本功能。本控制电路成本低廉,功能实用,操作简便,有一定的实用价值。本文从3个方面展开论述,首先是硬件电路的描述;接着软件部分的设计;最后实现功能。关键词8051单片机温度控制LED数码显示一系统总体设计方案1.1课题背景电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的C51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会.而今,空调等家用电器随着生产技术的发展和生活水平的提高越来越普及,一个简单,稳定的温度控制系统能更好的适应市场。而本次设计就是要通过以MCS-51系列单片机为控制核心,实现空调机温度控制器的设计。方案一通过温度传感器对空气进行温度采集,将采集到的温度信号传输给单片机,再由单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动空调机的加热或降温循环对空气进行处理,从而模拟实现空调温度控制单元的工作情况。空调温控器主要单片机,时序电路,温度采样电路,A/D转换电路,温度显示电路,温度输入电路,驱动电路等组成。系统原理图见图1所示:图1空调机温度控制系统框图方案二DS18B20单线连接方案,方案二采用单线连接,就是四块DS18B20连到单片机的一个IO口上,这种方案只用到单片机的一个IO口,大大的节约了单片机的IO口资源。缺点实在是时序上就复杂了,DS18B20的编程就增加读ROM程序,搜索ROM和匹配ROM程序。综合比较决定选用方案一二、系统硬件设计2.1单片机由于空调温度控制器的核心就是单片机,单片机的选择将直接关系到控制系统的工作是否有效和协调。本设计采用MCS-51系列的8051单片机,因为8051单片机应用广泛,性能稳定,抗干扰能力强,性价比高。8051包含了8位CPU,片内振荡器,4K字节ROM,128字节RAM,2个16位定时器,计数器,中断结构,I/O接口等。可进行计算,定时等一系列功能。80518段译码器8段译码器数码管数码管按键电路驱动电路A/D转换电路时钟温度采样电路2.2A/D转换电路2.2.1ADC0801介绍ADC0801是8位全MOS中速A/D转换器、它是逐次逼近式A/D转换器,片内有三态数据输出锁存器,可以和单片机直接口接。其主要引脚功能如下:(1)RD,WR:读选通信号和选通信号(低电平有效)。(2)CLK:时钟脉冲输入端,上升有效。(3)DB0—DB7是输入信号。(4)CLKR:内部时钟发生器外接电阻端,与CLKIN端配合可由芯片自身产生时钟脉冲,其频率为1/1.1RC。(5)CS:片选信号输入端,低电平有效,一旦CS有效,表明A/D转换器被选中,可启动。(6)WR:写信号输入,接受微机系统或其它数字系统控制芯片的启动输入端,低电平有效,CS、WR同时为低电平时,启动转换。(7)INTR:转换结束输出信号,低电平有效,输出低电平表示本次转换已完成。该信号常作为向微机系统发出的中断请求信号。(8)CLK:为外部时钟输入端,时钟频率高,A/D转换速度快。允许范围为10-1280KHZ,典型值为640KHZ,此时,A/D转换时间为10us。通常由MCS—51单片机ALE端直接或分频后与其相连。当MCS单片机与读写外,RAM操作时,ALE信号固定为CPU时钟频率的1/6,若单片外接的晶振为6MHZ,则1/6为1MHZ,A/D转换时间为64us。2.2.2A/D转换电路工作原理A/D转换电路如图2.1所示。ADC0801的A/D转换结果输出端DB0—DB7与8051的P0.0-P0.7相连,INTR与P2.0口相连,INTR端用于给出A/D转换完成信号,所以通过查询P2.0便可以获知A/D转换是否完成。RD与8051RD相连,WR也是跟8051WR相连。CS、VIN+接地。(低电平有效)ADC0801的两模拟信号输入端,用以接受单极性、双极性和差摸输入信号,与WR同时为低电平A/D转换器被启动切在WR上升沿后100模数完成转换,转换结果存入数据锁存器,同时,INTR自动变为低电平,表示本次转换已结束。如CS、RD同时来低电平,则数据锁存器三态门打开,数字信号送出,而在RD高电平到来后三态门处于高阻状态。图2.1A/D转换电路图2.3温度采样电路2.3.1AD590型温度传感器AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。在被测温度一定时,AD590相当于一个恒流源,AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,由于此信号为模拟信号,因此,要进行进一步的控制及数码显示,还需将此信号转换成数字信号。它的主要特性如下:(1)流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数;即:式中:/1IrT(1)Ir—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。(2)AD590的测温范围为-55℃~+150℃;(3)AD590的电源电压范围为4V~30V;2.3.2温度采样工作原理因为AD590是将温度转换为电流,而单片机对电压信号更好测量,所以要将电流转化为电压,同时对电压信号进行放大后输入A/D转换ADC0801的VI-端口。电流转化为电压表达式如下:0rfUIR(2)由反相比例运算放大电路,根据“虚断”,“虚短”,集成运放净输入电压为零,净输入电流为零,净输入电流为零等推算出表达式为:0(1/)IfVRRU(3)最后由(1),(2),(3)得到:(1/)IffVRRTR(4)图2.2温度采样电路2.4按健开关按键开关电路由一按键连接到8051的P2.1端口所示。按下P2.1按键,放开后进入温度设定模式,显示设定最高温度34oC,每按一次设定温度将减小1oC,直至最低设定温度20oC,再按一次回到34oC。2.5温度显示电路2.5.1LED驱动7447介绍:7447是一块BCD码转换成7段LED数码管的译码驱动IC,7447的主要功能是输出低电平驱动的显示码,用以推动共阳极7段LED数码管显示相应的数字。相应引脚功能如下:(1)QA,QB,QC,QD,QE,QF,QG:7段LED数码输出引脚。(2)A,B,C,D:输入引脚。(3)RBO,BT,LI高电平输出有效。2.5.2温度显示工作原理温度显示电路如图2.3所示:由2片TTL7447和2片七段LED组成,LED采用共阳级接法。7447的QA-QG接BCD的a-g,段选信号由8051的P1口提供,LED显示数据由7447的输出决定,即由P1口信号的取值决定。图2.3TTL7447BCD显示电路2.6压缩机驱动电路压缩机驱动控制,8051的RXD的引脚与7404的引脚相连接,从RXD发出的控制信号经7404和ULN2003到达压缩机,驱动压缩机的运行和停止。ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。其中ULN2003是由7个NPN具有用共阴二极管夹紧来转换电感负载的高压输出特征的达林顿晶体管组成。当前一对单精度型的额定电流为500mA,有比较高的电流容量,它的应用软件包括继电器驱动器、显示驱动器,线驱动器和逻辑缓冲器等。在本驱动电路中的作用是增大电流驱动能力。该芯片采用16脚的DIP封装,其中第9为公共输出端COM,有一个输出端为高电平,COM就为高电平。图2.4压缩机驱动电路三、系统软件设计3.1软件设计思路软件设计的任务包括启动A/D转换、读A/D转换结果、设置温度、温度控制等,其中启动A/D转换、读A/D转换结果、设置温度等工作在主程序中完成,温度控制在中断服务程序中完成,即每隔一段时间对比测量温度与设定温度之间的大小关系,根据对比结果给出控制信号,令压缩机的运行或停止,实现温度调控。3.2程序流程主程序流程图如图3.1所示中断服务程序流程图3.2所示图3.1主程序流程图图3.2定时器中断服务子程序图3.2中断服务程序流程图开始系统初始化Y启动定时器启动A/D转换设置温度要设置温度吗?是否完成A/D转换?读入A/D转换结果显示处理YNYN保护现场重装定时初值设定温度≥测量温度?令压缩机工作令压缩机停止工作中断返回YN3.3程序内容编写ORG0000HJMPSTART1;ORG000BH;定时器/计数器0溢出中断JMPTIM0;转中断程序START1:MOVTMOD,#01H;设定定时器0工作方式1MOVTH0,#HIGH(65536-50000);设定初值MOVTL0,#LOW(65536-50000);SETBTR0;启动定时器0MOVIE,#82H;定时器0开放中断MOV24H,#0FFH;ANLP1,#00H;MOVR0,#14;延时START:MOVX@R0,A;启动A/D转换WAIT:JNBP2.1,SET0;检测温度输入JBP2.0,ADC;检测转换是否完成JMPWAITADC:MOVXA,@R0;将转换好的值送入ALCALLL1;LCALLDISP;JMPSTARTL1:CLRC;清0MOV20H,#00H;MOV21H,#00H;MOVR3,#08H;显示位数NEXT:RLCA;将A的内容和Cy左移一位,显示准备MOVR2,A;MOVA,20H;ADDCA,20HDAA;对A进行十进制调整MOV20H,A;MOVA,21H;ADDCA,21HMOV21H,A;MOVA,R2;DJNZR2,NEXT;R2-1≠0循环计数L2:MOVA,20HADDA,20H;DAA;MOV20H,A;MOVA,21H;ADDCA,21H;DAA;MOV21H,A;RETDISP:MOVA,20H;显示程序ANLA,#0F0HSWAPA;交换高低位MOV22H,AMOVA,21H;ANLA,#0FFHSWAPA;ORLA,22H;MOV23H,AMOVP1,A;MOVR7,#0FFH;DJNZR7,$;是否显示完RETSET0:LCALLDELAY;JNBP2.1,$;等待按键操作LCALLDELAY;消除按键抖动A2:CJNER0,#0FFH,A1;MOVR0,#14;延时A1:MOVA,R0;MOVDPTR,#TABLE;数据指针指向表头MOVCA,@A+DPTR;查表MOVP1,A;MOV24H,A;MOVR5,#4FH;D4:MOVR7,#0FFHD2:MOVR6,#0FFHD1:JNBP2.1,SET1;有按键按下转SET1DJNZR6,D1DJNZR7,D2DJNZR5,D4JMPSTART;SET1:LCALLDELAY;JNBP2.1,$;等待按键操作LCALLDELAY;消除抖动DECR0;JMPA2;TIM0:PUSHACC;保护现场PUSHPSWMOVTH0,#HIGH(65536-50000);重装定时初值MOVTL0,#LOW(65536-50000)CLRC;进位标志清0MOVA,24H;比较温度SUBBA,23H;JNCOFF;CLRC;MOVA,24H;SUBBA,23H;JNCOFF;CLRP3.0;压缩机停止工作RETURN:POPPSWPOPACCRETI;中断返回OFF:SETBP3.0;驱动压缩机开始工作JMPRETURNDELAY:MOVR7,#60;延时程序D3:MOVR6,#24

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功