基于单片机的数字温度计设计.docx
- 文档编号:28459463
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:37
- 大小:1.20MB
基于单片机的数字温度计设计.docx
《基于单片机的数字温度计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计设计.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的数字温度计设计
本科生毕业设计
基于单片机的数字温度计设计
院系电气信息工程学院
专业电子信息工程
班级 本科一班
学号0612080403
学生姓名
联系方式
指导教师职称助教(硕士)
2012年5月
独创性说明
本人郑重声明:
所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。
签名:
年 月 日
授权声明
本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:
有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。
本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”):
签名:
年 月 日
指导教师签名:
年 月 日
基于单片机的数字温度计设计
摘 要
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
本设计介绍以AT89C51单片机作为控制器,以数字温度传感器DS18B20作为温度采集器的数字温度计。
文中先对各个模块进行分析和设计,并进行流程图的绘制,根据流程图写出C语言程序,最后在KEIL软件上进行编译、链接,在Proteus软件环境中进行仿真,达到了预期效果,并根据电路原理图制作出实物。
关键词:
温度测量;单片机;DS18B20;数码管
Microcontroller-basedDigitalThermometerDesign
ABSTRACT
With the continuous developmentandapplication of newtechnologies inrecentyears,single-chiphasbeendevelopedanddevelopmentisveryrapid, a new waveoftechnological revolution based onmicrocomputer applications are booming, SCM applicationshavepenetratedinto theelectric power,metallurgy, chemicals,buildingmaterials,machinery,food,oilandotherindustries. ThisdesignisintroducesadigitaltemperaturethermometerwhichusetheAT89C51SCMasthecontrollerandthedigitaltemperaturesensorDS18B20asthetemperaturecollector.Firstly,thispaperanalysesanddesignseachsub-module.ThendesignflowchartandwriteClanguageprogramsaccordingtotheflowchart.Finally,linksandcompilesaremadeinKeil,meanwhile,simulationsaremadeontheProteus.Theexpectedeffectsareachieved,andcircuitdiagramtoproducethekind.
Keywords:
Temperaturemeasurement;AT89C51SCM;DS18B20;Digitaltube
基于单片机的数字温度计设计
1绪论
1.1课题背景及研究意义
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。
数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计[6]。
本设计涉及两个方面的内容:
一是单片机技术,二是数字化温度传感器技术。
本设计选择Dallas半导体公司生产的DS18B20作为传感器进行温度测量,采用单片机对温度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度的提高温度控制的技术指标。
在数字、智能化方面有广泛的用途。
1.2课题设计主要工作
本课题的研究重点是设计一种基于单片机的数字温度计控制系统。
利用数字温度传感器DS18B20,此传感器课读取被测量温度值,进行转换。
主要工作如下:
(1)温度测试基本范围0℃—100℃。
(2)精度误差小于1℃。
(3)LED显示。
本文是基于AT89C51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,可以直接进行温度采集显示。
包括传感器数据采集电路,温度显示电路,单片机主板电路等组成。
1.3温度传感器的发展背景
温度是一种最基本的环境参数,人们的生活与温度息息相关,因此研究温度的测量方法在人们的生活中起着不可缺少的作用。
测量温度的关键是温度传感器,温度传感器的发展历程经历了三个阶段:
(1)传统的分立式温度传感器,
(2)模拟集成温度传感器,(3)智能温度传感器。
国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展[7]。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它的特点是能输出温度数据及相关温度控制量,适配各种微控制器,并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。
本文将介绍智能集成温度传感器DS18B20的结够特征及控制方法,与传统的温度计相比,其具有读数方便、测温范围广、测温准确、输出温度采用数字显示,主要用于对测温要求比较准确的场所或科研实验室使用。
2总体设计方案
2.1设计方案
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度。
并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
本设计利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,仅就电路做出对于温度采集以及数码管显示的实物,从而更直接的验证理论。
2.2设计原理及系统组成
本课题以是AT89C51单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路单片机主板电路等组成。
系统框图主要由主控制器、单片机复位、时钟振荡、LED显示、温度传感器组成。
系统框图如图2-1所示:
图2-1系统框图
●主控制器
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用三节电池供电[4]。
●显示电路
显示电路采用LED显示数码管。
显示电路是使用的串口显示,这种显示最大的优点就是使用端口资源比较少,显示比较清晰。
●温度传感器
温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。
DS18B20输出信号全数字化。
便于单片机处理及控制,在0—100摄氏度时,最大线形偏差小于1摄氏度,采用单总线的数据传输,可直接与计算机连接。
3系统硬件电路的设计
3.1AT89C51单片机介绍
3.1.1AT89C51基本特性
AT89C51是一种低功耗,高性能CMOS8位单片机。
片内带4K字节闪存可编程可擦除只读存储器,其可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和AT89C51引脚相兼容。
由于将多功能8位中央CPU和闪烁存储器组合在单个芯片中,片上Flash允许程序存储器在系统可编程,也适用于常规编程器,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[1]。
AT89C51具有以下特点:
40个引脚,128*8位内部RAM,32个可编程双向输入/输出(I/O)口,5个中断源,2个16位的可编程定时/计数器,三级程序存储器锁定,可编程的串行通道,片内振荡器和时钟电路[3]。
另外AT89C51还具有低功耗闲置和掉电模式,可通过软件设置省电模式,在空闲模式下,CPU暂停工作,而RAM计算器和串行口以及外中断系统可以继续工作掉电模式会冻结振荡器进而保持RAM数据,停止单片机的其它功能直到外中断激活或者硬件复位动作[2]。
单片机的实物图和管脚图如3-1所示。
图3-1AT89C51实物图和管脚图
3.1.2管脚介绍
(1)VCC:
+5V电源。
(2)GND:
接地。
(3)P0口:
P0口是一个8位漏级开路双向I/O口,可以作为低8位地址/数据复用,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
(4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
(5)P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(6)P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示(括号内为第二功能):
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口同时为闪烁编程和编程校验接收一些控制信号。
(7)RST:
复位信号。
当输入的复位信号延续2个周期以上的高电平时有效,用于完成单片机的复位操作。
如图3-2所示。
图3-2复位电路
(8)ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
如果微处理器在外部执行状态ALE禁止,置位无效。
(9)/PSEN:
外部程序存储器的选通信号。
由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(10)/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(11)XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2不接[5]。
如图3-3所示。
图3-3振荡电路
3.1.3AT89C51引脚图说明
图3-4AT89C51的引脚图
3.2显示电路
3.2.1LED显示器的结构与原理
LED数码管显示屏是由发光二极管按一定的结构组合起来的显示器件。
在单片机应用系统中,它有共阴极和共阳极两种[8],如图3-5所示。
图3-5(a)共阳极结构图3-5(b)共阴极结构
图3-5(a)为共阳极结构,8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源。
要是哪根发光二极管亮,则对应的阴极端接地。
图3-5(b)为共阴极结构,8段发光二极管的阴极端连接在一起,使用时公共端接地。
要是哪根发光二极管亮,则对应的阳极端接高电平[11]。
其中7段发光二极管的字形“8”,1根发光二极管构成小数点。
常见的数字和字符的共阴极和共阳极的字段码如下表3-1所示。
表3-1常见的数字和字符的共阴极和共阳极的字段码
显示字符
共阴极字码段
共阳极字码段
显示字符
共阴极字码段
共阳极字码段
0
3FH
C0H
A
77H
88H
1
06H
F9H
B
7CH
83H
2
5BH
A4H
C
39H
C6H
A1H
86H
8EH
3
4
4FH
B0H
D
5EH
66H
99H
E
79H
5
6
6DH
92H
F
71H
7DH
82H
P
73H
8CH
7
8
9
07H
F8H
L
38H
C7H
7FH
80H
“灭”
00H
FFH
6FH
90H
不同数字或字符其字段码不一样,对于同一个数字或字符,共阴极连接和共阳极连接的字码段也不一样,如上表3-1所示。
3.2.2LED数码管器的译码方式
所谓译码方式是指由显示字符转换到字码段的转换,参见上表3-1。
对于LED数码管显示器,通常的译码方式有两种:
硬件译码方式和软件译码方式[9]。
(1)硬件译码方式
硬件译码方式是指利用专门的硬件电路来实现显示字符到字码段的转换。
硬件译码时硬件线路复杂,硬件造价相对较高。
(2)软件译码方式
软件译码方式就是编写译码程序,通过译码程序来得到要显示字符的字码段。
软件译码方式,硬件线路简单,在实际系统中经常使用。
本设计采用软件译码方式。
其中数码管与单片机的接口如图3-6所示。
图3-6单片机与数码管接口
3.3温度传感器的工作原理
3.3.1DS18B20概述
DS18B20功能特点:
(1)独特的单线接口方式,仅需一个端口引脚可实现微处理器与DS18B20的双向通信;
(2)使用范围更宽,电源电压范围为3~5.5V,在寄生电源方式下可由数据线供电;
(3)在使用DS18B20时不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
(4)用户可定义的非易失性温度报警设置;
(5)测温范围为-55~+125℃。
在-10~85℃时温度分辨率为±0.5℃,DS18B20温度传感器可完成对温度的测量,并用16位符号扩展的二进制补码的形式输出温度值。
DS18B20输出的数字量与所测温度的对应关系,如表3-2所列。
表3-2温度/数据关系
温度/℃
数据输出(二进制)
数据输出(十六进制)
+125
0000011111010000
07d0H
+85
0000010101010000
0550H
+10.125
00000000120100010
00a2H
+0.5
0000000000001000
0008H
0
0000000000000000
0000H
-0.5
1111111111111000
fff8H
-10.125
1111111101011110
ff5eH
-55
1111110010010000
fc90H
3.3.2DS18B20内部结构
DS18B20的管脚的排列如图3-7。
图3-7DS18B20引脚图
DS18B20引脚名称及功能如下表3-3所示。
表3-3DS18B20引脚名称以及各引脚功能
序号
名称
引脚功能描述
1
GND
接地端
2
DQ
数字信号输入/输出端
外接供电电源输入端(采用寄生电源接线方式时接地)
3
VDD
DS18B20有4个主要的数字部件:
64位激光ROM、温度传感器和非易失性温度报警触发器TH和TL、配置寄存器。
DS18B20有4个主要的数据部件:
1.光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
2.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
3.DS18B20温度传感器的存储器,DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
如图3-8所示。
图3-8DS18B20内部结构图
3.3.3DS18B20测温原理
DS18B20测温原理:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3-9为DS18B20与单片机的连接电路图。
图3-9DS18B20与单片机连接电路图
DS18B20的测温过程:
用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。
图3-10为利用单片DS18B20温度测量电路方框图。
图3-10温度测量电路方框图
斜坡式累加器用来补偿高温振荡器的非线性,以期在测温时获得比较高的分辨率。
这是通过改变计数器对温度每增加1℃所需计数的值来实现的。
3.3.4高速暂存存储器
高速暂存存储器由9个字节组成,传感器的暂存寄存器分布表如3-4所示。
表3-4DS18B20暂存寄存器分布表
寄存器内容及意义
暂存器地址
LSB
0
MSB
1
TH/用户字节1
2
TL/用户字节2
3
转换位数设定,由b5和b6(0-R1-R0-11111):
R1-R0:
00/9bit01/10bit10/11bit11/12bit
至多转换时间:
93.75ms187.5ms375ms750ms
4
保留
5
6
保留
保留
CRC校验
7
8
3.3.5DS18B20的单总线读/写时序
DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。
前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。
DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 温度计 设计