学士学位论文基于ds18b20的恒温控制器设计文档格式.docx
《学士学位论文基于ds18b20的恒温控制器设计文档格式.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于ds18b20的恒温控制器设计文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。
利用微机对温度进行。
本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,LCD显示屏作为显示输出,三个按键来实现恒定温度的设置,蜂鸣器实现报警作用,实现了对温度的实时测量与恒定控制的作用。
1硬件电路的设计
1.1总体设计
1.1.1系统实现的功能
设计基于AT89C52单片机的厨房控制系统,用于控制温度,实现的功能如下:
温度实现在0-99度连续可调,温度误差小于等于±
1℃,通过按键设置需要到达的温度值,LCD显示屏上面显示预定的温度以及当前测试到的温度和当时准确的时间。
当温度超过预设温度时,报警器开始报警,并伴随的LED灯的闪亮。
1.1.2系统实现方案的选择
选择合适的温度传感器芯片。
显然,本文中的核心器件是单片机和温度传感器,单片机采用常用的AT89C52单片机即可,而温度传感器的选择则需慎重,若采用热敏电阻,可满足40~90℃的测量范围,但热敏电阻精度、重复性、可靠性都比较差,其测量温度范围相对较小,稳定性较差,不能满足本系统温度控制的范围要求,所以我决定采用数字温度传感器DS18B20,DS18B20提供九位温度读数,测量范围-55℃~125℃,采用独特1-WIRE总线协议,只需一根口线即实现与MCU的双向通讯,具有连接简单,高精度,高可靠性等特点。
并且,DS18B20支持一主多从,若想实现多点测温,可方便扩展。
1.1.3系统整体结构的布局
以AT89C52为核心,输入电路由温度采集电路及按键电路构成,输出电路是由控制电路,显示电路以及声光报警电路构成,结构图如下图1-1所示
图1-1系统结构布局图
1.2单片机
所谓单片机(m1crocontroller)是指在一个集成芯片中,集成微处理器(CPU)、存储器、基本的I/O接口以及定时/计数、通信部件,即在一个芯片上实现一台微型计算机的基本功能。
1970年微型计算机研制成功之后,随着就出现了单片机(即单片微型计算机)。
美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,特别是1976年MCS-48单片机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二、三年要更新一代、集成度增加一倍、功能翻一番。
其发展速度之快、应用范围之广,已达到了惊人的地步,它已渗透到生产和生活的各个领域。
尽管目前单片机的品种很多,但其中最具典型性的当数Intel公司的MCS-51系列单片机。
MCS-51是在MCS-48的基础上于80年代初发展起来的,虽然它仍然是8位的单片机,但其功能有很大的增强。
由于PHILIPS、ATMEL、WELBORD、LG等近百家IC制造商都主产51系列兼容产品,具有品种全、兼容性强、软硬件资料丰富等特点。
因此,MCS-51应用非常广泛,成为继MCS-48之后最重要的单片机品种。
直到现在MCS-51仍不失为单片机中的主流机型。
国内尤以Intel的MCS-51系列单片机应用最广。
由于8位单片机的高性能价格比,估计近十年内,8位单片机仍将是单片机中的主流机型。
单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统集成于同一硅片的器件。
单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。
1.2.1单片机的应用范围
(1)在智能仪器表上的应用:
单片机具有功耗低,控制能力强,扩展灵活,使用方便等优点,广泛应用于仪器表中,结合不同的传感器,可实现诸多功能的实现。
(2)在工业控制中的应用:
用单片机可以构成形式多样的控制系统,数据采集系统等等。
(3)在家用电器中的应用:
在这个领域中最大的特点就是量大面广并且价格廉价,如电饭锅,电子游戏机等等。
(4)在计算机网络和通信领域中的应用:
如我们日常用的手机,电话机,自动通信呼叫系统等等,都是通过单片机智能控制的。
(5)在医用设备领域的应用:
例如医用的呼吸机,各种分析仪,监护仪等等里面都是含有单片机,通过单片机实现控制。
(6)在各种大型电器中模块化应用:
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用。
(7)在汽车设备领域中的应用:
单片机在汽车领域中应用的非常广泛,如汽车的发动机控制器,GPS导航系统等等。
1.2.2单片机的分类
(1)通用型/专用型这是按单片机适用范围来区分的。
例如,80C51是通用型单片机,它不是为某种专用途设计的;
专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
(2)总线型/非总线型这是按单片机是否提供并行总线来区分的。
总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
(3)控制型/家电型这是按照单片机大致应用的领域进行区分的。
一般而言,工控型寻址范围大,运算能力强;
用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。
显然,上述分类并不是惟一的和严格的。
例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
1.2.3单片机的端口介绍
(1)单片机的P0口
单片机中的P0口既可以作为通用的I/O口进行数据的输入和输出,也可以作为单片机系统的地址/数据线使用,并且P0口得电路中有一个多路转换电路MUX。
在控制信号的作用下,多路接电路可以分别接通锁存器输出或地址/数据线。
我出于对此的考虑,所以在P0口在做输入输出接口时,加上了拉电阻,其阻止我查资料,可以选择4.7千欧到10千欧。
又因为P0口能驱动8个LSTTL负载及P0每位口灌入的最大电流是10mA,8位总共不能超过26mA。
所以在本次设计中,我将P0与8个10K的电阻丝相连,防止突然大电流将单片机与LCD显示屏的被烧坏。
如下图1-2所示:
图1-2单片机P0口接口电路
(2)单片机的P2口
P2口电路中比P1口多了一个多路转换开关MUX,这正好与P0口一样。
P2口可以作为通用I/O口使用,在本次设计中,我将P2.0,P2.1与报警电路中的LED灯相连接,控制LED灯的亮灭,当输入低电平时,LED灯亮,反之LED灯灭。
将P2.4,P2.5,P2.6口分别控制显示屏的寄存器,读写信号线和使能端,接口电路如图1-3所示:
图1-3单片机P2口的接口电路
1.3DS18B20
DS18B20是美国DALLAS公司生产的单线数字温度传感器芯片,具有结构简单体积小,功耗小,抗干扰能力强,使用简单等优点。
数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
1.3.1DS18B20的应用范围
(1)其适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。
(2)轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
(3)汽车空调、冰箱、冷柜、以及中低温干燥箱等。
(4)供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。
1.3.2DS18B20的内部结构
DS18B20主要有内部寄生电源,64位激光ROM和单线接口,高速RAM,温度上下限存储器,CRC循环冗余效验码发生器,温度传感器以及配置存储器等几部分组成。
DS18B20片内有一个64位激光ROM,存储CRC效验码,48位标识码(序列号)和型号代码,DS18B20的型号代码为28H。
结构如图1-4所示:
图1-4DS18B20内部结构
1.3.3DS18B20温度测量电路
下图画出一了DS18B20与微处理器的典型连接。
图1-5(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图1-5(b)中DS18B20采用外接电源方式,其VDD端用+3V-+5.5V电源供电。
图1-5DS18B20独立供电与寄生供电方式
准确度测量温度对生产过程至关重要,许多场合要求被测温度准确度高于0.5℃或更高,用传统的冷端补偿方法显然不能满足要求。
采用集成数字温度传器DS18B20不仅可以降低系统成本,减小设备体积,同时具有广泛的通用性。
工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度探测和空间受限的场合特别有用,原理是当1-Wier总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。
但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到EZPROM时),同时芯片的性能有所降低。
因此,在条件允许的场合,尽量采用外供电方式。
在本温度测量系中,采用独立电源供电方式。
在我这次的设计中,用单片机的P1口来控制温度传感器,P1.3连接DS18B20DQ端,并通过上拉电阻接电源,设计仿真图1-6如下:
图1-6DS18B20与单片机的接口图
1.3.4DS18B20的工作原理
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同。
我的程序中在对编写DS18B20温度读取函数中分了如下三个参考步骤为:
(1)转换,其中转换又分为三个步骤:
1.复位;
2写入跳过ROM的字节命令;
3写入开始转换的功能命令;
4延迟大约750~900毫秒。
(2)读暂存数据,其中暂存数据分为六个步骤:
1复位;
4读入第0个字节LSByte,转换结果的低八位;
5读入第1个字节MSByte,转换结果的高八位;
6复位,表示读取暂存结果。
(3)出数据的十进制,其中分为4个步骤:
1整合LSByte和MSByte的数据;
2判断是否为正负数;
3求得十进制值。
正数乘以0.0625,一位小数点乘以0.625,二位小数乘以6.25;
4十进制的“个位”求出。
(程序在后面给付出)
1.4DS1302
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×
8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
1.4.1DS1320的功能及结构
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>
2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向)。
1.4.2DS1302实时显示时间的软硬件
DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。
图1-7示出DS1302与89C2051的连接图,分别于89C52的P3^4,P3^5,P3^6相连接。
图1-7DS1320与89C52的连接图
1.5LM016L显示屏
LM016L液晶模块采用HD44780控制器。
HD44780具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能。
LM016L与单片机MCU(MicrocontrollerUnit)通讯可采用8位或者4位并行传输两种方式。
HD44780控制器由两个8位寄存器、指令寄存器(IR)和数据寄存器(DR)、忙标志(BF)、显示数据RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)、地址计数器(AC)。
IR用于寄存指令码,只能写入不能读出;
DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据。
BF为1时,液晶模块处于内部处理模式,不响应外部操作指令和接受数据。
DDRAM用来存储显示的字符,能存储80个字符码。
CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种,8位字符编码和字符的对应关系,可以查看参考文献[3]中的表4。
CGRAM是为用户编写特殊字符留用的,它的容量仅64字节。
可以自定义8个5*7点阵字符或者4个5*10点阵字符。
AC可以存储DDRAM和CGRAM。
1.5.1LM016L结构和功能
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:
表一LM016L引脚介绍
引脚
符号
功能说明
1
VSS
一般接地
2
VDD
接电源(+5V)
3
V0
液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)
4
RS
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
5
R/W
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作
6
E
E(或EN)端为使能(enable)端,下降沿使能。
7
DB0
底4位三态、双向数据总线0位(最低位)
8
DB1
底4位三态、双向数据总线1位
9
DB2
底4位三态、双向数据总线2位
10
DB3
底4位三态、双向数据总线3位
11
DB4
底4位三态、双向数据总线4位
12
DB5
底4位三态、双向数据总线5位
13
DB6
底4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busyflang)
15
BLA
背光电源正极
16
BLK
背光电源负极
1.5.2LCD在仿真中的连接
在本次设计中,我是通过单片机的P0口来连接LCD显示屏的双向数据总线,P2.4,P2.5,P2.6分别于显示屏的寄存器,数据总线以及使能端相连接。
VEE通过一滑动变阻器接地。
如图1-8所示:
图1-8LCD与单片机的连接
2软件电路设计
2.1系统主程序的设计
在软件设计时,必须先弄清恒温控制系统的操作过程和工作过程。
首先设定温度,显示器显示温度。
温度检测系统不断检测并显示系统中的实时温度,当达到设定值后,报警器鸣叫,LED灯闪烁。
使温度保持在设定范围之内。
若要改变设定的温度,可以直接通过安检来设置
根据以上对操作和工作过程的分析,程序应分为两个阶段:
一是通过按键设定、显示器显示设定温度;
二是检测并显示系统的实时温度,并根据检测的结果控制室内温度。
因此,程序可以分为以下几个功能模块:
温度设定和启动;
显示;
温度检测;
温度控制以及报警。
主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括按键程序,中断程序,以及各个控制端口的初始化工作。
流程图如2-1所示。
系统在初始化完成后就进入温度测量程序,将实时的测量的温度和日期通过显示电路在LCD上显示。
程序中以中断的方式来重新设定温度的上下限。
根据硬件设计完成对温度控制。
按下按键设定温度的加减。
主程序流程图2-1所示:
图2-1主程序的流程图
2.2系统子程序的设计
2.2.1LCD显示程序
本设计中,采用的LCD显示屏动态显示,LCD将显示的时间以及设置的温度和当前测量的温度,将其与单片机的P1端口连接。
部分流程图如图2-2所示:
图2-2LCD显示的子程序流程图
2.2.2DS18B20的子程序
单片机控制DS18B20的温度转换必须按照DS18B20的命令流程。
首先执行初始化时序,然后单片机发出跳过ROM命令(代码为CCH),单片机再发出启动转换命令(代码为44H),启动DS18B20完成温度转换。
接着再执行初始化时序,然后单片机发出匹配ROM命令(代码为55H)并向数据线上发出64位序列号,再发出读9个字节命令(代码为BEH),就可以读出智能温度传感器DS18B20对应序列号完成温度转换之后的相应正确温度。
基于DS18B20的温度采集与处理流程图如图2-3所示。
图2-3DS18B20程序流程图
2.2.3DS18B20初始化模块
DS18B20的初始化时序时主机总线t0时刻发送一复位脉,冲(最短为480us的低电平信号)接着在t1时刻释放总线并进入接收状态DSl8B20在检测到总线的上升沿之后等待15-60us接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240us)如图中虚线所示初始化时序图如图2-4所示:
图2-4DS18B20初始化时序图
初始化模块的程序为:
voidInit_DS18B20(void)
{
unsignedcharx=0;
DQ=1;
//DQ复位
delay(8);
//稍做延时
DQ=0;
//单片机将DQ拉低
delay(80);
//精确延时大于480us
//拉高总线
delay(14);
x=DQ;
//稍做延时后如果x=0则初始化成功x=1则初始化失败
delay(20);
}
2.2.4控制器对18B20操