温度显示系统STC单片机18B20传感器1602显示.docx
《温度显示系统STC单片机18B20传感器1602显示.docx》由会员分享,可在线阅读,更多相关《温度显示系统STC单片机18B20传感器1602显示.docx(26页珍藏版)》请在冰豆网上搜索。
温度显示系统STC单片机18B20传感器1602显示
单片机实训论文
论文题目:
温度采集显示系统
学院:
年级:
专业:
姓名:
学号:
指导教师:
2014年5月16日
摘要
温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学试验中,有特别重要的意义。
随着人们生活水平的不断提高,,人们对温度计的要求越来越高,传统的温度计功能单一、精度低,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
数字温度计(DigitalThermometer)简称D温度是许多监控系统中的一个重要参数。
TM,它是采用数字化测量技术,把连续的温度值转换成不连续、离散的数字形式并加以显示的仪表。
采用单片机控制的数字温度计,由于精度高、可扩展性强、集成方便、抗干扰能力强,得到了广泛的应用。
本设计以单片机和温度传感器为核心,设计数字温度计。
实现对温度的采集、监视和报警。
在温度采集的实现中,使用了AT89S52单片机和温度传感器DS18B20,通过LCD1602实现温度显示。
温度测量范围-55℃~+125℃,能准确达到设计要求。
关键词
温度测量;单片机;温度传感器
Abstract
Temperaturemeasurementinphysicsexperiments,medicalandhealth,foodproductionandotherfields,especiallyinthethermaltest,haveparticularlyimportantsense.Withthecontinuousimprovementofpeople'slivingstandard,peopleonthethermometer,theincreasinglyhighdemand,thetraditionalthermometerhassinglefunction,lowprecision,forthemodernwork,scientificresearch,life,providebetterandmoreconvenientfacilitiesneedsfromSCMtechnologyproceedwith,alltothedigitalcontrol,intelligentcontroldirection.
Digitalthermometer(DigitalThermometer)Dtemperatureismanymonitoringsystemisanimportantparameter.TM,itistheuseofdigitalmeasuringtechnology,thecontinuoustemperaturevalueisconvertedintoacontinuous,discretedigitalformandtodisplayinstrument.MCUcontrolofthedigitalthermometer,becauseofhighprecision,goodexpansibility,convenientintegration,stronganti-interferenceability,hasbeenwidelyused.
Thedesignofsinglechipcomputerandtemperaturesensorsasthecore,thedesignofdigitalthermometer.Toachievethecollectionoftemperature,monitoringandalarm.Thetemperatureacquisitionimplementation,usingAT89S52MCUandtemperaturesensorDS18B20.ByLCD1602temperaturedisplay.Themeasuringrangeofthetemperatureof-55DEGCto125degreesC.,canaccuratelyachievethedesignrequirement.
Keywords
SCM;singlechipcomputer;temperaturesensor
目录
摘要I
AbstractII
前言1
第一章温度测量的背景及意义1
1.1温度测量的背景1
1.2温度测量的目的及意义2
第二章硬件电路及原理3
2.1系统的结构框图3
2.2单片机简介3
2.3DS18B20简介8
2.4LCD1602液晶显示屏12
第三章软件设计流程15
3.1系统总体框图15
3.2液晶流程图15
3.3温度传感器流程图16
3.4仿真与调试16
结论17
附录一18
附录二19
致谢24
前言
温度是工业控制中主要的被测参数,随着电子技术和微型计算机的快速发展,温度的测量和控制技术在工业发展中起到了举足轻重的作用。
比如消防电气的非破坏性温度检测,电力、电讯设备的过热故障预知检测,空调系统的温度检测,在医院的监护中也用到温度的测量,化工、机械等设备温度过热检测,土壤各个层面上的温度将会影响植物的生长,以及热处理中工件各个部位的温度对工件形成后的性能至关重要等等。
总之,现代电子工业的飞速发展对温度检测的智能化精确度要求越来越高。
单片机具有处理能力强、运行速度快、功耗低等优点。
应用在温度测量方面简单方便,测量范围广精度高,从而提高了生产效率。
本次课程设计用STC89C52单片机做内核,选用18B20温度传感器作为输入原件,将电信号传送到CPU,然后送到LCD液晶显示器显示数值,从而达到测量要求,得到测量结果。
第一章温度测量的背景及意义
1.1温度测量的背景
随着人们生活水平的不断提高数字化无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,一切向着数字化控制,智能化控制方向发展。
数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。
21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。
我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。
温度是工业、农业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。
伴随工业科技、农业科技的发展,温度测量需求越来越多,也越来越重要。
温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。
在工业生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。
随着工业现代化的发展,对温度测量仪表的要求越来越高,而数字温度表具有结构简单,抗干扰能力强,功耗小,可靠性高,速度快等特点,更加适合于工业过程中以及科学试验中对温度进行在线测量的要求。
近年来,数字温度表广泛应用在各个领域,它与模拟式温度表相比较,归纳起来有如下特点。
⑴准确度高,⑵测量范围宽、灵敏度高,⑶测量速度快,⑷使用方便、操作简单,⑸抗干扰能力强,⑹自动化程度高,⑺读数清晰、直观方便。
数字温度计的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表。
数字化是当前计量仪器仪表发展的主要方向之一。
而高准确度数字温度计的出现,又使温度计进入了精密标准测量领域。
与此相适应,测量的可靠性、准确性显得越来越重要。
1.2温度测量的目的及意义
温度是工业生产过程中重要的被控参数之一,在冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理温度等均需要对温度严格控制。
随着现代信息技术的飞速发展和传统工业的逐步实现,由微机构成的温度测控系统已在众多领域被采用。
该课题就是解决对工业现场温度信号的采集控制和传输问题。
伴随着计算机技术和网络技术的发展,工业参数的数字采集促进了现场总线(Fieldbus)技术的发展,目前现场总线已经从当初的4~20mA电流信号加载数字信号,发展成为全数字通讯,解决了现场信号远距离高速传送问题,而且提高了抗干扰性能,增加了系统配置的灵活性,节省了硬件投资,是未来生产自动化和过程控制的发展方向。
较有影响的总线有:
CAN.LONWORKS.PROFIBUS.FF等。
虽然这些总线无主从方式工作,速度较快、网络支持较完善,但系统造价高,应用受到限制。
而RS-485总线主机调度网以其制造容易、造价低、软硬件丰富、配置灵活等特点,得到了广泛的应用。
它不仅具有良好的抗噪声干扰性,较远的传输距离,而且它可以实现多点互联,还可以实现全双工通信,因此对远程温度采集控制系统的研究具有现实的意义和实际的价值。
第二章硬件电路及原理
本章主要介绍本系统的硬件电路的组成、原理以及各个模块的功能。
2.1系统的结构框图
采用数字温度传感器DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线性度较好。
在0~100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大,且由于AT89S52可以带多个DSB1820,因此可以非常容易实现多点测量。
轻松的组建传感器网络。
采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。
部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。
而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。
所以集成芯片的使用将成为电路发展的一种趋势。
本方案应用这一温度芯片,也是顺应这一趋势。
CPU采用STC89C52单片机实现。
单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。
而且体积小,硬件实现简单,安装方便。
另外STC89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
图2-1系统结构图
2.2单片机简介
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
其实物图如下所示:
图2-2STC89C52RC实物图
1.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR区中的8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EA/VPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
其引脚图如下所示:
图2-3STC89C52RC引脚图
4.特性
8K字节程序存储空间;
512字节数据存储空间;
内带2K字节EEPROM存储空间;
可直接使用串口下载;
AT89S52单片机:
8K字节程序存储空间;
256字节数据存储空间;
自带2KB的EEPROM存储空间;
5.参数
1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]
2)工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3)工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4)用户应用程序空间为8K字节
5)片上集成512字节RAM
6)通用I/O口(32个),复位后为:
P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8)具有EEPROM功能
9)共3个16位定时器/计数器。
即定时器T0、T1、T2
10)外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
11)通用异步串行口(UART),还可用定时器软件实现多个UART
12)工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
13)PDIP封装
其最小系统电路如下图所示:
图2-4STC89C52RC的最小系统
6.STC89C52RC单片机的工作模式
掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序
空闲模式:
典型功耗2mA
正常工作模式:
典型功耗4Ma~7mA
掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备
2.3DS18B20简介
正文温度传感器DS18B20是一种新型数字温度传感器,它采用独特的单线接口方式,仅需一个端口引脚来发送或接收信息,在单片机和DS18B20之间仅需一条数据线和一条地线进行接口。
DS18B20采用TO-92封装,引脚排列如图6所示。
各引脚功能如下:
图2-5DS18B20引脚图
GND:
地。
DQ:
单线应用的数据输入/输出引脚。
VDD:
可选的外部供电电源引脚。
DS18B20内部有三个主要数字部件:
64位激光ROM、温度传感器、非易失性温度报警触发器TH和TL。
DS18B20可以采用寄生电源方式工作,从单总线上汲取能量,在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
DS18B20也可用外部3~5.5V电源供电,这两种供电方式的电路如图所示。
图2-6两种供电方式
采用寄生电源方式时,VDD引脚必须接地,另外为了得到足够的工作电流,应给单片机的I/O口线提供一个强上拉,一般可以使用一个场效应管将I/O口线直接拉到电源上。
采用外部供电方式时可以不用强上拉,但外部电源要处于工作状态,GND引脚不得悬空。
温度高于100℃时,不推荐使用寄生电源,应采用外部电源供电。
DS18B20依靠一个单线端口通信,必须先建立ROM操作协议,才能进行存储器和控制操作。
因此,单片机必须先提供下面5个ROM操作命令之一:
⒈读出ROM,代码为33H,用于读出DS18B20的序列号,即64位激光ROM代码。
⒉匹配ROM,代码为55H,用于辨识(或选中)某一特定的DS18B20进行操作。
⒊搜索ROM,代码为F0H,用于确定总线上的节点数以及所有节点的序列号。
⒋跳过ROM,代码为CCH,命令发出后系统将对所有DS18B20进行操作,通常用于启动所有DS18B20转换之前,或系统中只有一个DS18B20时。
⒌报警搜索,代码为ECH,主要用于鉴别和定位系统中超出程序设定的报警温度界限的节点。
这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时指明有多少器件或是什么型号的器件。
DS18B20提供了如下存储器操作命令:
⒈温度转换,代码为44H,用于启动DS18B20进行温度测量,温度转换命令被后DS18B20保持等待状态。
如果主机在这条命令之后跟着发出读时间隙,而DS18B20又忙于进行温度转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。
如果使用寄生电源,主机必须在发出这条命令后立即启动强上拉,并保持750ms,在这段时间内单总线上不允许进行任何其他操作。
⒉读暂存器,代码为BEH,用于读取暂存器中的内容,从字节0开始最多可以读取9个字节,如果不想读完所有字节,主机可以在任何时间发出复位命令来终止读取。
⒊写暂存器,代码为4EH,用于将数据写入到DS18B20暂存器的地址2和地址3(TH和TL字节)。
可以在任何时刻发出复位命令来终止写入。
⒋复制暂存器,代码为48H,用于将暂存器的内容复制到DS18B20的非易失性E²RAM中,即把温度报警触发字节存入非易失性存储器里。
如果主机在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器的内容复制到E²RAM存储器,DS18B20就会输出一个“0”,如果复制结束的话,DS18B20则输出“1”。
如果使用寄生电源,主机必须在这条命令发出后立即启动强上拉并最少保持10ms,在这段时间内单总线上不允许进行任何其他操作。
⒌重读E²RAM,代码为B8H,用于将存储在非易失性E²RAM中的内容重新读入到暂存器(温度触发器)中。
这种复制操作在DS18B20上电时自动执行,这样器件一上电,暂存器里马上就存在有效的数据了。
若在这条命令发出之后发出读时间隙,器件会输出温度转换忙的标志:
“0”代表忙,“1”代表完成。
⒍读电源,代码为B4H,用于将DS18B20的供电方式信号发送到主机。
若在这条命令发出之后发出读时间隙,DS18B20将返回它的供电模式:
“0”代表寄生电源,“1”代表外部电源。
一条温度转换命令启动DS18B20完成一次温度测量,测量结果以二进制补码形式存放在高速暂存器中,占用暂存器的字节1(LSB)和字节2(MSB)。
用一条读暂存器内容的存储器操作命令可以把暂存器中的数据读出。
温度报警触发器TH和TL各由一个E²PROM字节构成,可以用一条写存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。
当符号位S=0时,表示测得的温度值为正,可以直接对测得的二进制数进行计算并转换为十进制数。
当符号位S=1时,表示测得的温度值为负,此时测得的二进制数为补码数,要先变成原码数再进行计算。
表2所示为部分温度值对应的二进制数据。
表2-1温度对应值表:
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25