基于单片机的暖风机设计.docx
《基于单片机的暖风机设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的暖风机设计.docx(33页珍藏版)》请在冰豆网上搜索。
基于单片机的暖风机设计
毕业论文
题目:
基于单片机的暖风机设计
摘要
本文设计了一种以AT89S52单片机为核心的低成本、高精度、微型化LED显示温湿度监测系统,并使用一些常用芯片如:
DS18B20、GHS-20E等。
系统由单片机、温度检测电路、电机驱动电路、报警电路以及显示电路构成。
由芯片AT89S52控制温湿度传感器检测到的温湿度值进行存储转换,从而在显示电路中数码管中显示出来。
本系统具有易安装检测、软件功能完善,工作可靠、准确度高等优点。
本文论述了单片机技术研制成功的暖风机的监测系统的基本原理,温湿度传感器信号采集通过单片机来实现方案。
采用软件校正,提高了测量精度和整机的可靠性。
实际使用表明,极大的提高了安全性、可靠性和准确度。
关键词:
暖风机,温湿度传感器,单片机AT89S52
第1章概述
1.1选题背景
带液晶显示屏的暖风机,越来越受到用户的欢迎,配合液晶屏显示,可显示环境温度及设定状态,大大方便了产品的使用。
目前,各大厂商为了在市场上占有一席之地,纷纷在遥控型暖风机的性能参数标准,重量,体积,厚度,色彩,价格大大下功夫。
如:
海宝驰的奔驰暖风取暖器NSB-200遥控型暖风机,SANYO的三洋暖风机R-P201MR等,样式新颖,都占有很高的性价比。
消费者可以量身挑选适合自己的。
1.2设计过程及工艺要求
一、基本功能
~吹出恒定的暖风
~检测温度
~显示温度
~过限报警
二、主要技术参数
~温度检测范围:
0℃-+50℃
~测量精度:
0.5℃
~检测精度:
1%RH
~显示方式:
温度:
二位显示湿度:
四位显示
~报警方式:
三极管驱动的蜂鸣音报警
1.3设计的重点与难点
本设计的任务是设计一个暖风机系统,可以应用于温湿度有一定要求的区域。
测量时能够清晰稳定地显示出监测结果。
系统组成的设计:
各部分硬件的选取很有讲究,要十分合理。
设计的难点是:
1、温度湿度模块设计
2、电机驱动模块
3、显示电路设计
4、流程图及程序的设计
第2章方案论证与比较
当将单片机用作测控系统时,系统总要有被测信号懂得输入通道,由计算机拾取必要的输入信息。
对于测量系统而言,如何准确获得被测信号是其核心任务;而对测控系统来讲,对被控对象状态的测试和对控制条件的监察也是不可缺少的环节。
传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。
工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。
2.1温度传感器的选择
方案一:
采用热电阻温度传感器。
热电阻是利用导体的电阻随温度变化的特性制成的测温元件。
现应用较多的有铂、铜、镍等热电阻。
其主要的特点为精度高、测量范围大、便于远距离测量。
铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。
缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。
按IEC标准测温范围-200~650℃,XX电阻比W(100)=1.3850时,R0为100Ω和10Ω,其允许的测量误差A级为±(0.15℃+0.002|t|),B级为±(0.3℃+0.005|t|)。
铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。
在工业中用于-50~180℃测温。
方案二:
采用DS18S20,独特的单线接口,多点能力使分布式温度检测应用简单,不需要外部元件和备份电源,可用数据线供电,测量范围从-55~+125℃,增量值为0.5℃,并且以9位数值方式读出温度且可在1秒内把温度变成数字。
综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。
2.2电机选择与论证
方案一:
采用步进电机,步进电机的一个显著特点就是具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。
另一个显著特点是转换精度高,正转反转控制灵活。
但是步进电机价格昂贵。
方案二:
采用直流伺服电机,直流伺服电机具有优良的速度控制性能,它输出较大的转矩,直接拖动负载运行,同时它又受控制信号的直接控制进行转速调节,在很多方面具有优越性,但是直流伺服电机价格昂贵,且不易购买。
方案三:
采用普通的直流电机,直流电动机具有优良的调速特性,调速平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转;能满足各种不同的特殊运行要求,且价格实惠,容易购买。
由于普通的直流电机价廉物美,且能完成所需的功能,故我们采用方案三作为小车的动力源。
2.2测速模块:
方案1:
采用采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速度的作用。
霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。
霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车速测量。
2.3.2方案2:
采用红外传感器进行测速。
但无论是反射式红外传感器还是对射式红外传感器,他们对都对外围环境要求较高,易受外部环境的影响,稳定性不高,且价格较为昂贵。
通过对方案1、方案2的比较其优缺点,综合多方面因素决定选用方案1,其原理图接线如(图5)所示:
(图5)
第3章系统总体设计
3.1系统设计
本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器可以产生模拟信号,和A/D模拟数字转换芯片的性能,我设计了以AT89S52基本系统为核心的一套检测系统,其中包括A/D转换、单片机、复位电路、温度检测、按键及显示、报警电路、系统软件等部分的设计。
见图3.1所示:
图3.1系统总体框图
本设计由信号采集、信号分析和信号处理三个部分组成的。
(一)信号采集由红外传感器、DS18B20及TLC549组成;
(二)信号分析由A/D转换器TLC549、单片机89S52基本系统组成;
(三)信号处理由串行口LED显示器和报警系统等组成。
3.2芯片AT89S52介绍
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
由于此单片机应用在仓库温湿度检测上,所以本设计选用了低功耗、高性能、低价格、小管脚(40脚)的AT89S52单片机。
如图3.2所示:
:
图3.2AT89S52芯片引脚图
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚功能介绍
1.Vcc:
电源电压。
2.GND:
地。
3.P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
4.P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3.1所示:
在flash编程和校验时,P1口接收低8位地址字节。
表3.1P1口的第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
5.P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
6.P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2所示。
在flash编程和校验时,P3口也接收一些控制信号。
表3.2P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INTO(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.3传感器的介绍
3.3.1传感器的定义及作用
一、广义地来说,传感器是一种能把物理量或化学量转变成便于利用的电信号的器件。
国际电工委员会(IEC:
InternationalElectrotechnicalCommittee)的定义为:
“传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的信号”。
按照Gopel等的说法是:
“传感器是包括承载体和电路连接的敏感元件”,而“传感器系统则是组合有某种信息处理(模拟或数字)能力的传感器”。
传感器是传感器系统的一个组成部分,它是被测信号输入的第一道关口。
二、传感器的作用
1.信息的收集;
2.信息数据的交换;
3.控制信息的采集。
3.3.2传感器的特性
1、灵敏度高、可靠性强、稳定性好;
2、防尘耐湿、耐高低温、耐冲击、耐振动等严酷环境条件;
3、收发兼用,使用方便。
3.3.3温度传感器DS18B20
数字温度传感器DS-18B20是美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
一、主要特性
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。
这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。
数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机。
(1)DS18B20的性能特点如下[9]:
1)独特的单线接口仅需要一个端口引脚进行通信;
2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
3)无须外部器件;
4)可通过数据线供电,电压范围为3.0~5.5V;
5)零待机功耗;
6)温度以3位数字显示;
7)用户可定义报警设置;
8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(2)DS18B20的内部结构
DS18B20采用3脚PR-35封装,DS18B20的内部结构,如图3.3所示
图3.3DS18B20封装
图3.4DS18B20内部结构
二DS18B20的工作原理
1DS18B20的工作时序
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换须经过三个步骤:
1).每一次读写之前都必须要对DS18B20进行复位;
2).复位成功后发送一条ROM指令;
3).最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
其工作时序包括初始化时序、写时序和读时序,具体工作方法见图3.5,3.6,3.7所示。
(1)初始化时序
图3.5初始化时序
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。
主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。
接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us[12]。
(2)写时序
图3.6写时序
写时序包括写0时序和写1时序。
所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。
写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。
写0时序,主机输出低电平,延时60us,然后释放总线,延时2us[8]。
(3)读时序
图3.7读时序
总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。
所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。
每个读时序都由主机发起,至少拉低总线1us。
主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。
主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us[4]。
2ROM操作命令
当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如表3.1.3:
ROM操作命令。
三DS18B20的测温原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。
主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
DS18B20的测温原理如图3.9所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3.5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
见图3.8所示:
图3.8DS18B20测温流程
图3.9测温原理内部装置
3.3.4TLC549特性
一.A/D转换器的特点
TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片.可与通用微处理器控制器通过I/OCLOCKCSDATAOUT三条口线进行串行接口.具有4MHZ片内系统时钟和软.硬件控制电路.转换时间最长45500次/S,TLC549允许的最高转换速率为.40000次/S.TLC549为40000次/S.总失调误差最大为?
+-0.5LSB.典型功耗值为6MW采用差分参考电压高阻输入.抗干扰.可按比例量程校准转换范围。
为了把湿度检测电路测出的模拟信号转换成数字量送CPU处理,本系设计选用了A/D转换器TLC549,它片型小.采样速度快.功耗低.价格便宜.控制简单。
二.TLC549转换器件简介
TLC549的内部框图和引脚名称如图3.10所示:
图3.10TLC549转换器的内部逻辑框图
TLC549均有片内系统时钟.该时钟与I/OCLOCK是独立工作的.无须特殊的速度或相位匹配"其工作时序如图3.11所示,当CS为高时.数据输出.(DATAOUT).端处于高阻状态.此时I/OCLOCK不起作用"这种CS控制作用允许在同时使用多片TLC549时.共用以减少多路.片A/D并用时的I/O控制端口.一组通常的控制时序为:
(1).将CS置低"内部电路在测得£³下降沿后.再等待两个内部时钟上升沿和一个下降沿后.然后确认这一变化.最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端上.
(2)前四个I/OCLOCK周期的下降沿依次移出第2.3.4和第5个位(DD6.D5D4.D3)片上采样保持电路在第4个I/OCLOCK下降沿开始采样模拟输入.
(3)接下来的3个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位
图3.11工作时序图
(4)最后.片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位"保持功能将持续4个内部时钟周期,.然后开始进行32个内部时钟周期的A/D转换"第8个I/OCLOCK后CS必须为高.或I/OCLOCK保持低电平.这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成"如果CS为低时I/OCLOCK上出现一个有效干扰脉冲.则微处理器/控制器将与器件的I/O时序失去同步.若CS为高时出现一次有效低电平.则将使引脚重新初始化.从而脱离原转换过程。
在36个内部系统时钟周期结束之前.实施步骤
(1)~~(4),可重新启动一次新的A/D转换.与此同时.正在进行的转换终止.此时的输出是前一次的结果而不是正在进行的转换结果。
若要在特定的时刻采样模拟信号应使第8个I/OCLOCK时钟的下降沿与该时刻对应.因为芯片虽在第4个I/OCLOCK时钟下降沿开始采样.却在第8个I/OCLOCK的下降沿开始保存。
3.5显示电路的设计
LED数码显示管有两种,一种是共阳极数码管,其内部是由八个阳极相连接的发光二极管组成;另一种是共阴极数码管,其内部是由四个阳极相连接的发光二极管组成。
二者原理不同但功能相同。
其外形和内部结构如下图3.13所示:
图3.13LED的管脚和电路原理
共阳极LED数码显示管是将二极管的阳极连接在一起,形成共阳极LED数码显示块的公共端,该公共端接+5v,在共阳极LED数码显示块中如某个发光二极管的阴极为低电平时,该发光二极管被点亮;而共阴极LED数码显示块的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端),因此称为共阴极LED数码显示器,8个数码管的另一端通常称为段选端,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮。
用单片机驱动LED数码管分为静态显示和动态显示。
静态显示就是显示驱动电路具有锁存功能,单片机将所要显示的数据送出后就不再控制LED,直到下次显示时再传送一次新的显示数据。
静态显示的数据稳定,占用的CPU时间少。
静态显示中,每一个显示器都要占用单独的具有锁存功能的I/O接口,该接口用于笔划段字型代码。
这样单片机只要把显示的字形代码发送到接口电路,该字段就可以显示发送的字形。
要显示新的数据时,单片机再发送新的数据。
另一种方法是动态扫描显示。
由于单片机本生具有较强的逻辑控制能力,所以采用动态扫描软件译码并不复杂。
而且软件译码其译码逻辑可随意编程设定,不受硬件译码逻辑限制。
采用动态扫描软件译码地方式能大大简化硬件电路结构,降低系统成本。
它用分时地方法轮流控制各个显示器地COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的余辉效应,给人的印象就是一组稳定的显示数据。
静态显示数据稳定,占用很少的CPU时间,但