于基单片机的数字温度计设计大学论文Word格式文档下载.docx
- 文档编号:5776418
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:29
- 大小:324.17KB
于基单片机的数字温度计设计大学论文Word格式文档下载.docx
《于基单片机的数字温度计设计大学论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《于基单片机的数字温度计设计大学论文Word格式文档下载.docx(29页珍藏版)》请在冰点文库上搜索。
单片机;
数字温度传感器
DesignofDigitalThermometerBasedonSCM
Abstract:
Indailylifeandindustrialproductionprocess,oftenusedinthedetectionandcontroloftemperature,temperatureistheproductionprocessandscientificexperimentsingeneralandoneoftheimportantphysicalparameter.Intheproductionprocess,inordertoefficientlycarryouttheproduction,tobeitsmainparameters,suchastemperature,pressure,flowcontrol,etc...Temperaturecontrolintheproductionprocessofalargeproportion.Temperaturemeasurementisthebasisoftemperature-controlled,morematuretechnology.Traditionalthermocoupleandtemperaturecomponentsarethesecondresistor.Thethermocoupleandthermalresistancearegenerallymeasuredvoltage,andthenreplacedbythecorrespondingtemperature,thesemethodsarerelativelycomplex,requiringarelativelylargenumberofexternalhardwaresupport.Weusearelativelysimplewaytomeasure.
ThispaperdescribesaAT89S51microcontroller-basedtemperaturemeasurementandanalarmcircuit,thecircuitasthetemperaturemonitoringdeviceDS18B20,measuringrange0℃-~100℃,usingtheLCDdisplayofthemeasuredtemperaturevalues,upperandlowertemperaturealarmcanbesetandflexiblecontrolthetemperaturechanges.Textgivesthesoftwareandhardwarefocusedonpartsofthesystemcomponents,introducestheprincipleofintegratedtemperaturesensorDS18B20,AT89S51microcontrollerfeaturesandapplicationsoftheprinciplesandLCD1602LCDdisplayprocess.Thecircuitdesignofnovel,powerful,simplestructure.
Keywords:
Temperaturemeasurement;
SCM;
DigitalTemperatureSensor
第1章绪论
1.1课题背景及研究意义
随着新技术的不断开发与应用,近年来单片机发展十分迅速,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业[1]。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
近几年来快速发展了多种先进的温度控制方式,这些控制技术大大的提高了控制精度,不但使控制变得简便,而且使产品的质量更好,降低了产品的成本,提高了生产效率。
由于单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途,所以本设计采用单片机作为核心控制元件。
1.2课题的设计目的
1.巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。
2.培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。
3.通过对课题设计方案的分析、选择、比较,熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
1.3课题的主要工作
本课题的研究重点是设计一种基于单片机的数字温度计控制系统。
利用数字温度传感器DS18B20,此传感器能读取被测量温度值,进行转换。
课题要求如下:
1.温度测量基本范围0℃—100℃。
2.温度测量误差小于1℃。
3.采用LCD液晶显示温度测量值。
4.具有低温和高温报警提示功能。
1.4本文研究内容
数字温度计采用温度传感器,将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等[2],这个电信号可以使用模数转换的电路即A/D转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。
这样就完成了数字温度计的基本测温功能。
本文是基于AT89S51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,能直接进行温度采集显示,报警的数字温度计设计。
包括传感器数据采集电路,温度显示电路,报警提示电路,单片机主板电路等组成。
第2章系统概述
2.1方案选择
该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。
2.1.1方案一
采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成[3]。
通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。
数据采集部分则使用带有A/D通道的单片机,再对测量温度产生的变化电压或电流进行采集,经A/D转换后,就可以用单片机进行数据的处理,利用显示电路,就可以将被测温度显示出来。
热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路,感温电路比较麻烦。
系统主要包括对A/D0809的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理[4]。
此外还有复位电路,晶振电路,启动电路等。
故输入硬件有手动复位键、A/D转换芯片,处理芯片是51芯片,执行机构有4位数码管、报警器等。
系统框图如图2.1所示。
图2.1热电偶温差电路测温系统框图
2.1.2方案二
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性能很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外AT89S51在工业控制上也有着广泛的应用。
该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。
方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。
2.2系统设计原理
利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过发光二极管报警。
同时处理后的数据送到液晶显示屏中显示。
2.3系统组成
本课题以89S51单片机为核心设计的一种数字温度控制系统,系统整体框图主要由主控制器、单片机复位、温度传感器、时钟振荡、液晶显示、报警提示组成。
系统框图如图2.2所示。
图2.2系统基本方框图
1.主控制器
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。
2.显示电路
显示电路采用LCD液晶显示屏,从P2口输出数据。
3.温度传感器
温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。
DS18B20输出信号全数字化。
便于单片机处理及控制,在0—100摄氏度时,最大线形偏差小于1摄氏度,采用单总线的数据传输,可直接与计算机连接。
用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
第3章系统硬件设计
3.189S51单片机
89S51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含6个中断源,2个优先级,2个16位定时/计数器。
89S51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
3.1.189S51单片机管脚图
图3.189S51单片机管脚图
部分引脚说明:
1.时钟电路引脚XTAL1和XTAL2:
XTAL2(18脚):
接外部晶体和微调电容的一端;
在89S51片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。
XTAL1(19脚):
接外部晶体和微调电容的另一端;
在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,该引脚必须接地。
2.控制信号引脚RST,ALE,PSEN和EA:
RST/VPD(9脚):
RST是复位信号输入端,高电平有效。
ALE/PROG(30脚):
地址锁存允许信号端。
PSEN(29脚):
程序存储允许输出信号端。
EA/Vpp(31脚):
外部程序存储器地址允许输入端/固化编程电压输入端。
3.输入/输出端口P0/P1/P2/P3:
3.2温度显示模块设计
液晶显示器(LCD)英文全称为LiquidCrystalDisplay,它一种是采用了液晶控制透光度技术来实现色彩的显示器。
和CRT显示器相比,LCD的优点是很明显的。
由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。
显示接口用来显示系统的状态,命令或采集的电压数据。
本系统显示部分用的是LCD液晶模块,采用一个16×
2的字符型液晶显示模块。
3.2.1液晶模块简介
LM016L(lcd1602)的结构及功能:
LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,LM016L液晶模块的引脚图如图3.2所示。
图3.21601引脚图
LM016L引脚介绍:
Vss(1脚):
一般接地。
Vdd(2脚):
接电源。
Vee(3脚):
液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
RS(4脚):
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
R/W(5脚):
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
E(6脚):
E(或EN)端为使能(enable)端,下降沿使能。
DB0~DB7(7脚~14脚):
传输数据接口(DB0(最低位),DB7(最高位))。
3.2.2液晶显示部分与89S51的接口
如图3.3所示。
用89S51的P2口作为数据线,用P3.2、P3.1、P3.0分别作为LCD的E、R/W、RS。
其中E是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:
显示模块初始化:
首先清屏,再设置接口数据位为8位,显示行数为1行,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。
向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示。
首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。
图3.3液晶与89S51的接口
3.3温度测试模块设计
DS18B20引脚如图3.4所示。
图3.4DS18B20引脚图
DALLAS半导体公司最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。
温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
被测温度用符号扩展的16位数字量方式串行输出;
其工作电源既可以在远端引入,也可以采用寄生电源方式产生;
多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
3.3.1DS18B20温度传感器工作原理
DS18B20测温原理:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
3.3.2DS18B20温度传感器与单片机的接口电路
DS18B20可以采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
如图3.5所示单片机端口接单线总线。
图3.5DS18B20与单片机的接口电路
3.4报警提示模块设计
报警提示部分主要是由两个发光二极管实现,与单片机的连接如图3.6所示。
图3.6报警提示电路
3.5ISP下载模块设计
ISP下载模块是用于从电脑上直接下载程序到单片机AT89S51与给单片机系统提供电源,其引脚图3.7所示。
图3.7ISP下载接口
3.6硬件整体设计
硬件整体设计原理图如图3.8所示。
图3.8数字温度计的整体原理图
第4章系统软件设计
4.1主程序设计
本系统大致流程包括先开始,对89S51和温度传感器DS18B20的初始化,然后判定所测温度是否在设定范围内,若在设定范围内则等灭,显示温度,结束;
否则将所测温度与设定值相比较,大于设定最大值则黄灯亮报警,显示温度,结束,小于设定最小值绿灯亮报警,显示温度,结束。
主程序流程见图4.1。
图4.1系统软件流程图
4.2温度采集模块
4.2.1DS18B20初始化
1.先将数据线置高电平“1”。
2.延时(该时间要求的不是很严格,但是尽可能的短一点)。
3.数据线拉到低电平“0”。
4.延时750微秒(该时间的时间范围可以从480到960微秒)。
5.数据线拉到高电平“1”。
6.延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制
7.若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
8.将数据线再次拉高到高电平“1”后结束。
DS18B20的初始化大致步骤如图4.2所示:
图4.2DS18B20的初始化
部分程序如下:
voidInit_DS18B20()//初始化ds1820
{
unsignedcharx=0;
DQ=1;
//DQ复位
tmpDelay(8);
DQ=0;
tmpDelay(80);
tmpDelay(14);
x=DQ;
tmpDelay(20);
}
4.2.2读取温度
温度的读取主要是先读取两个字节数据,然后进行十进制转换。
部分程序如下:
unsignedintReadtemp()//读取温度
unsignedchara=0;
unsignedcharb=0;
unsignedintt=0;
floattt=0;
Init_DS18B20();
WriteOneChar(0xCC);
//跳过读序号列号的操作
WriteOneChar(0x44);
//启动温度转换
//跳过读序号列号的操作
WriteOneChar(0xBE);
//读取温度寄存器
a=ReadOneChar();
//连续读两个字节数据//读低8位
b=ReadOneChar();
//读高8位
t=b;
t<
<
=8;
t=t|a;
//两字节合成一个整型变量。
tt=t*0.0625;
//得到真实十进制温度值,因为DS18B20可以精确到0.0625度,所以读回数据的最低位代表的是0.0625度
t=tt*10+0.5;
//放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。
return(t);
4.3液晶显示模块
液晶显示部分主要显示“thetemperatureis”和所测温度值。
显示开始先对LCD初始化,把LCD定位到首行首列,然后显示字符“thetemperature”到第一行,此时第一行以写满,LCD跳到第二行,显示字符“is”和所测的温度值。
其大致流程图4.3所示。
图4.3液晶显示流程图
4.4报警提示模块
报警提示是由两个发光二极管实现,温度值大于37度时灯1亮,温度值小于15度时灯2亮,温度值在15到37度之间两个灯都不亮。
unsignedintnum,num1;
num=Readtemp();
num1=num/10;
if(num1>
37)
{d1=0;
d2=1;
delay(500);
if(num1<
15)
{d1=1;
d2=0;
else
4.5程序仿真
4.5.1仿真软件
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件[5]。
它是目前最好的仿真单片机及外围器件的工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台[6]。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用[7]。
应用Keil进行软件仿真开发的主要步骤为:
编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
4.5.2仿真结果
设置温度上限为37度,温度下限为15度。
1.当温度为43度时,超出设定温度上限,仿真结果如图4.4所示。
此时黄灯亮,实现报警。
图4.4仿真1
2.当温度为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数字 温度计 设计 大学 论文