基于温度传感器的单片机温控电路设计 毕业论文 定稿.docx
《基于温度传感器的单片机温控电路设计 毕业论文 定稿.docx》由会员分享,可在线阅读,更多相关《基于温度传感器的单片机温控电路设计 毕业论文 定稿.docx(39页珍藏版)》请在冰豆网上搜索。
基于温度传感器的单片机温控电路设计毕业论文定稿
本科生毕业论文(设计)
题目:
基于温度传感器的单片机温控电路设计
系部电子信息工程学院
学科门类工学
专业电子信息工程
学号1008211048
姓名徐晓龙
指导教师万丽娟
2012年5月18日
基于温度传感器的单片机温控电路设计
摘要
随着微处理器和大规模集成电路的发展,及其在测试控制技术方面的广泛应用,仪器设备的智能化已成为自动化技术发展方向,数据采集与温度检测的自动化将取代传统的方法。
本设计采用STC89C52型号的单片机,数字温度传感器采用美国DALASS公司的1–Wire器件DS18B20,即单总线器件DS18B20,与单片机组成一个测温系统,当系统上电时,温度传感器就会读出当前环境的温度,并在LED数码显示管上显示出当前的温度,该测温系统的测温范围为-40℃~110℃,按此要求设计硬件和软件以实现这一功能。
关键词:
单片机温度传感器DS18B20测量电子线路温度
ABSTRACT
Alongwiththemicroprocessorandlargescaleintegratedcircuit,andinthetestcontroltechnologyiswidelyused,andtheintelligentinstrumentandequipmenthasbecomeautomationtechnologydevelopmentdirection,dataacquisitionandtemperatureautomatictestingwouldreplacethetraditionalmethod.
ThisdesignusestheSTC89C52typeofsinglechipmicrocomputer,digitaltemperaturesensorusingtheAmericanDALASScompany1-WiredeviceDS18B20,namelysinglebusdeviceDS18B20,andconsistsofasinglechipmicrocomputertemperaturemeasurementsystem,whenthesystemispoweredon,temperaturesensorswillreadthecurrentenvironmenttemperature,andindisplaytubeLEDdigitalshowedonthecurrenttemperature,thetemperaturemeasurementsystemofmeasuringtemperaturerangefor40℃~110℃-accordingtothisdesignrequirementforhardwareandsoftwaretoachievethisfunction.
Keywords:
singlechipmicrocomputertemperaturesensorDS18B20measurementcircuittemperature
一绪论
1.1课题研究背景及意义
目前温度控制系统在很多场合都得到广泛的应用,因此在国内外发展非常迅速,并在智能化、环境自适应、参数自动调整等方面取得显著成果。
当前在工业上温度控制系统一般采用智能调节,国产调节器温度控制效果不是很理想,分辨率和精度都不高,但性价比高。
国外调节器虽然价格较贵,但是分辨率和精度较高。
在各行业中广泛应用的温度控制器及仪器仪表,都是由美国、德国等国家生产出来的,性能优异。
它们主要具有如下的特点:
一是在复杂的温度控制系统中能够适应于大惯性、大滞后的控制;二是在受控系统数学模型难以建立的情况下,得到控制;三是在受控系统中,能够被控制过程很复杂且参数时变的温度控制系统控制;五是温度控制系统普遍具有参数自检功能,借助计算机技术,能控制对象和参数,并且具有特性进行自动调整的功能等特点[1]。
温度测控包括两个方面:
温度测量和温度控制。
近年来,在理论上温度的测量技术发展比较完善,但目前仍然有许多问题需要去解决,比如在实际测控中,如何能实时地对温度进行快速采样,同时确保采集来的数据进行正确的传输,并能精确控制所测的温度场。
在温度的测量技术中,有一种简单、可靠、低廉、测量精度较高的测量方法叫做接触式测温,它在早期就发展起来,一般能将环境的真实温度测量出来。
但是难以对运动的物体和热容量小的物体进行精确测量,主要是因为检测元件热惯性的影响,响应的时间长。
在腐蚀性介质中,超高温度环境下也不适用。
另外还有一种能够对运动的物体和热容量小的物体进行测量的方法叫非接触式测温,它通过温度场辐射出来的能量,进行测量。
响应速度快,对测量的温度场不产生破坏。
但是也存在一些缺点,仪表所显示的值一般只能代表物体表面的温度,测温仪器结构复杂,价格昂贵等[2]。
因此,在温度测控中,要根据所需对象选择恰到好处的测控方法。
传感器技术是现代信息技术的三大基础,属于现代信息技术前沿的尖端技术,温度传感器使用的数量高居各类传感器之首,被应用于各种领域中,如工业生产、高科技研究和日常生活等。
温度传感器技术的应用与研究,其发展历程大致经过了以下三个阶段:
(1)常见的分布式温度传感器;
(2)模拟集成温度传感器;(3)智能温度传感器。
从20世纪末以来,国际上推出的智能温度传感器精度高、分辨力高,采用的都是9~12位A/D转换器,分辨力一般可高达0.5~0.0625℃[3]。
目前新型的温度传感器正由模拟式走向数字式、分立式走向高集成、智能化、网络化。
当前被广泛应用的DS18B20型智能温度传感器由美国DALLAS半导体公司研制,它能输出12位二进制数据,分辨力高,达到0.0625℃,测量温度的精度已经达到±0.2℃。
1.2国内外研究现状
在上个世纪70年代,国外的一些国家已经开始对温度测控技术进行研究了。
最早采用的是模拟式组合仪表,将现场采集到的信息进行显示、加工和控制。
直到80年代末才出现分立式控制系统。
目前温度测控技术在一些发达国家发展非常迅猛,由半自动化向着完全自动化、无人化的方向发展。
在上个世纪80年代,我国才开始对温度测控技术进行研究,起步晚。
跟那些发达国家相比较,技术上还有着很大差距。
我国的科技人员吸收发达国家的温度测控技术,仅限于控制温度的单项环境因子,对一些复杂的环境因子控制,还难以实现。
多参数综合控制系统目前还不成熟,单参数单回路的系统只能使用单片机来控制。
在实际生产中配套能力差,产业化程度不高,对环境水平控制的严重滞后等问题仍然在困扰着我们,温度测控现状要想达到工厂化的水平,还任重道远。
1.3研究内容
本文设计是以单片机为核心,实现温度实时测控和显示。
确定电路中的一些主要参数,了解温度控制电路的结构,工作原理,对该控制电路性能进行测试。
主要内容:
(1)硬件部分设计
以STC89C52单片机作为处理器来处理数据,DS18B20温度传感器进行温度采集,八段数码管作为显示模块,利用键盘完成对温度测控。
(2)软件部分设计
软件部分的设计采用模块化思想,主要有五个大的模块:
主控制程序,温度显示子程序,读温度子程序,温度转换子程序,计算温度子程序。
二系统硬件设计
2.1总体设计方案
2.1.1设计思路
(1)本设计是用来测控温度的,可以利用热敏电阻的感温效应,将被测温度变化的模拟信号,电压或电流的采集过来,首先进行放大和滤波后,再通过A/D转换,将得到的数字量送往单片机中去处理,用数码管将被测得的温度值显示出来。
但是这种电路的设计需要用到放大滤波电路,A/D转换电路,感温电路等一系列模拟电路,设计起来较麻烦。
(2)本设计采用单片机做处理器,可以考虑使用温度传感器,采用由达拉斯公司研制的DS18B20型温度传感器,此传感器可以将被测的温度直接读取出来,并进行转换,这样就很容易满足设计要求。
从上面的两种方案,可以很容易看出来,虽然方案
(2)软件部分设计复杂点,但是电路比较简单且精度高,故采用方案
(2)。
图2-1总体方框图
2.1.2设计方框图
据设计的需求,分析单片机的工作原理,可以大体得出来温度控制电路设计的总体方框图如图2-1所示,主处理器采用STC89C52单片机,温度采集部分采用DS18B20型温度传感器,用4位LED显示数码管作为显示部分,用来将温度显示出来。
系统硬件电路部分由四大模块组成:
温度采集模块、温度显示模块、设置模块和单片机最小系统模块。
2.2单片机介绍
单片机是计算机制造技术发展的产物,其应用于很多场合,发展迅猛。
1971年Intel公司研制出来4004的4位微处理器不久,在1974年12月Fairchild(仙童)公司立即研制出了8位的单片机,即F8,单片机的门户就这样被打开了。
直到上世纪70年代末,单片机应用技术才被引入中国,开始被我国的科学研究人员探索,到80年代,单片机终于广泛应用于各种行业。
在1978年Zilog公司推出了Z8单片机,不久我国工业界的主流就是这种单片机。
直到90年代初,我国在某些领域使用的单片机开始向Intel生产的MCS-51系列单片机靠拢,如工业领域。
在短短至今二十几年的时间里,单片机经过了4位机、8位机、16位机、32位机几个大的发展阶段,虽然没有像微处理器那样不断突破,但是目前8位机仍然是工业控制领域的主流机型。
近几年单片机的内部结构变的是愈加完美了,在原有的集成结构上不断创新,越来越多的外围电路和外设接口被集成于单片机内部结构中。
硬件电路的设计变得更加简单了,微控制器(MicroController)体系结构的设计已逐渐被建立起来,其发展过程大致分为下面的几个阶段:
第一阶段:
单片机的探索阶段
第二阶段:
单片机的完善阶段
第三阶段:
单片机的高性能阶段
第四阶段:
单片机的全面发展阶段
单片机就是将微处理器、存储器和各种输入输出接口,放在一块芯片上集成得来。
自问世以来,广泛应用于自动检测与控制、智能仪表、机电一体化、工业控制等各个方面。
单片机本身就是一种计算机系统,如果在外围加上一些接口电路,就可以构成某些特定的应用系统。
单片机的几种主要应用系统分为:
(1)最小系统,外围电路只配有晶振,复位电路,电源,只能运用于简单的一些控制。
(2)最小功耗系统,在系统正常运行的情况下,使得系统消耗的功耗达到最小。
(3)典型应用系统,为了使各种系统能够正常运行,所设计的必要硬件结构系统[4][5]。
以单片机为核心处理器件构成的应用系统有着许多优点:
(1)功能齐全,可靠性好,抗干扰的能力较强。
(2)使用起来简单方便,可以被普及使用。
(3)发展迅猛,有着广阔的前景。
(4)比较容易就能嵌入到各种应用系统中。
2.2.1STC单片机结构介绍
STC89C52单片机是一种8位微控制器,特点是低功耗、有高性能CMOS,同时内置8K字节可编程Flash存储器。
芯片内拥有十分灵巧的8位微处理器和在系统可编程Flash,使得STC89C52单片机提供为许多较灵活、十分有效的解决方案,主要在工农业控制系统中。
STC89C52的标准功能如下:
8k字节Flash,256字节RAM,32位I/O接口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量的中断结构,全双工串行口。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种工作软件,用来选择节电模式。
当工作在空闲模式下,微处理器就会停止工作,允许随机存储器、定时器/计数器、串口、中断继续工作。
在掉电的时候,随机存储器中的内容会被保存起来,振荡器被冻结,单片机停止一切内外部工作,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
1.引脚结构,见图2-2。
图2-2单片机引脚结构
2.内部结构,见图2-3。
图2-3内部结构
2.2.2STC单片机引脚介绍
RST:
复位输入,在高电平状态时有效。
当单片机有脉冲信号时,在这个引脚加上持续时间超过2个机器周期的高电平状态时,就可以完成复位操作。
一般在正常运行状态时,此引脚应该是低电平状态。
PSEN:
片外程序存储器的读选通信号。
当单片机在读片外程序存储器时,这个引脚的读片外部程序存储器选通信号应该是负跳沿脉冲。
此引脚接外部程序存储的OE端时,访问外部RAM,PSEN信号是处在无效状态。
EA/VPP:
为访问外部程序存储器允许控制端。
当EA的引脚接入低电平时,对程序存储器的操作,只能是读取外部程序存储器中的数据,所寻地址的范围是为0000H到FFFFH。
如果需要执行内部程序指令,EA应该接入高电平。
P0口:
8位,漏极开路的双向I/O口。
当89C52扩展外部存储器及I/O接口芯片时,P0口作为地址总线及数据总线的分时复用端口。
P0口也可以作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。
当P0口用来做普通的I/O接口输入时,应该先向该端口的输出锁存器写1。
P0口可以用来驱动8个LS型的TTL负载。
P1口:
8位,准双向的输入输出接口,它的内部中有上拉电阻。
P1口是专门为用户使用的准双向I/O口,当用来做普通的I/O口输入时,应该首先向端口的输出锁存器写入1。
P1口可以用来驱动4个LS型的TTL负载。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表2-1所示。
当单片机进行Flash固化编程时,P1口同时接收低8位地址。
P2口:
8位,准双向的输入输出接口,它的内部中有上拉电阻。
当89C52扩展外部存储器及I/O接口时,P2口可输出高8位地址。
P2口也可作为普通的I/O口使用,当用来做普通的I/O口输入时,应该首先向端口的输出锁存器写入1。
P2口也可以用来驱动4个LS型的TTL负载。
表2-1P1口功能
引脚号
第二功能
说明
P1.0
T2
定时器/计速器T2的外部计数输入,时钟输出
P1.1
T2EX
定时器/计速器T2的捕捉/重载触发信号和方向控制
P1.5
MOSI
在系统编程用
P1.6
MISO
在系统编程用
P1.7
SCK
在系统编程用
P3口:
8位,准双向的输入输出接口,它的内部中也有上拉电阻。
P3口可以用来做为常用的I/O口,当作为通用的I/O口输入时,应该首先向端口的输出锁存器写入1。
P3口也可以用来驱动4个LS型的TTL负载。
P3口还能向用户提供一些第二功能。
P3口也可以用来作为STC89C52的一些特殊功能的接口,如下表2-2所示。
当单片机进行Flash固化编程时,P3口同时也接收一些外部控制信号[4]。
表2-2P3口功能
引脚号
第二功能
说明
P3.0
RXD
串行数据输入口
P3.1
TXD
串行数据输出口
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
定时器0外部计数输入
P3.5
T1
定时器1外部计数输入
P3.6
WR
外部数据存储器写选通输出
P3.7
RD
外部数据存储器读选通输出
ALE/PROG:
在芯片访问外部存储器时,有时候需要对地址或者数据进行所存操作,该引脚的功能正是与锁存相对应,在软件编程方面也可以利用该功能进行便捷的操作。
当单片机进行Flash固化编程时,此引脚对于输入编程脉冲有作用。
时钟引脚
XTAL1:
反向振荡放大器的输入。
XTAL2:
来自反向振荡器的输出。
如图2-4所示,STC89C52单片机有一个反相放大器,用来构成内部振荡器,一般会选石英晶体振荡器作为外接振荡源。
此电路在加电过后会在XTAL2引脚上产生一个正弦波时钟信号,其振荡频率主要由外接的石英晶振的频率决定。
电路中的两个电容C1、C2的作用有两个:
一是用来帮助振荡器起振,二是用来微调晶体振荡器的频率。
电容C1、C2的典型值为30pF。
图2-4自激振荡器原理图
定时器0和定时器1
在STC89C52单片机中,定时器0和定时器1的定时方式与89C51一样。
定时器2:
是一个自动恢复初始值的18位定时/计数器,既能做定时器,又可以做计数器。
定时器2有2个8位寄存器:
TH2和TL2。
TL2为常数缓冲器,当TL2计数发生溢出时,在溢出标志位TF2置“1”的同时,自动将TH2的初始值送到TL2中,使得TL2得以从初始值处重新计数。
中断
STC89C52有5个中断源:
两个外部中断(INT0和INT1),两个定时中断和一个串行口中断。
如果外部中断请求0时,请求信号由引脚INT0输入,IE0为它的中断请求标志位。
如果外部中断请求1,请求信号引脚由INT1输入,IE1为它的中断请求标志位。
定时器∕计数器T0计数溢出中断请求,中断请求标志位为TF0。
定时器∕计数器T1计数溢出中断请求,中断请求标志位为TF1。
串行口中断请求是用来发送中断或接受中断,标志位为TI或RI。
上述的中断请求标志位分别由特殊功能寄存器TCON和SCON相应的位锁存,如下表2-3为中断允许控制寄存器功能[5]。
VCC:
接+5V电源。
GND:
接地。
表2-3中断允许控制寄存器
符号
位地址
功能
EA
IE.7
中断总允许控制位。
EA=0,中断总禁止:
EA=1,各中断有各自的控制位设定
-
IE.6
预留
ET2
IE.5
定时器2中断允许控制位
ES
IE.4
串行口中断允许控制位
ET1
IE.3
定时器1中断允许控制位
EX1
IE.2
外部中断1允许控制位
ET0
IE.1
定时器0中断允许控制位
EX0
IE.0
外部中断0允许控制位
2.3DS18B20数字温度传感器介绍
2.3.1功能介绍
DS18B20这款型号的温度传感器是由DALLAS半导体公司研制出来的,它是一种在旧的结构基础上改进而来的智能温度传感器,传统的温度传感器是由热敏电阻作为主要元件的器件,改进后的传感器能够直接读出被测物体的温度,并且在实际的的操作中可通过软件编程来实现其他相对复杂的功能。
DS18B20提供9位温度读数,用来显示器件的温度数值[6]。
特性:
●与单片机相互通讯时只要一根接口线就行了,实现双工通讯功能
●用来测量温度的范围是-55℃~+125℃,分辨率为0.5℃
●几个DS18B20可以挂在一条的总线上,但是数量不能超过8个
●工作电源3~5V/DC
●在测量温度时,不要任何多余的元件,直接测出温度
●可以一次读出9位温度数字值
●把温度转化成为数字量,只需要1秒左右的时间
●用户可以自己设置温度上下限的告警值
2.3.2内部存储器介绍
图2-5的方框图表示DS18B20的内部结构:
1)64位激光laseredROM;2)温度灵敏元件;3)非易失性温度告警触发器TH和TL。
图2-5DS18B20内部结构
如果一根总线上有多个DS18B20器件,那么可以只选出一个DS18B20指定,还可以给连接在总线上的处理器指出存在多少个器件及其类型。
在接单个总线的时候,ROM操作在未开始之前,还不可以使用器件内部的操作系统,处理器首先必须提供五种ROM操作命令之一:
1)ReadROM(读ROM),2)MatchROM(符合ROM),3)SearchROM(搜索ROM),4)SkipROM(跳过ROM),或5)AlarmSearch(告警搜索)。
上述的命令都是对每一个温度传感器器件进行操作,操作的部分是64位激光ROM部分。
DS18B20中的温度传感部分是用来测量被测物体的温度,下面用一个测得的12位温度值转化为例:
用2个字节16位有符号的二进制补码形式来提供数值,以0.0625℃/LSB的形式表达出来,S是用来表示符号位,如下表2-4。
表2-4DS18B2012位温度数据
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LSByte
23
22
21
20
2-1
2-2
2-3
2-4
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
MSByte
S
S
S
S
S
26
25
24
表2-4是将12位温度值经过转换后得到的数据,是12位,将转换后得到的数据存储在DS18B20的两个数据存储器中。
字节的前面5位是符号位,用来判断测到的温度的正负。
如果测到被测物体的温度值大于0,那么高字节前面的5位都是0,只要将测来的数值用来与0.0625相乘,就能得到实际的温度;如果测到被测物体的温度值小于0,那么高字节前面的5位都是1,将测到的数值来取反加1,再与0.0625相乘,就可以能够得到实际的温度。
如下表2-5为DS18B20的温度/数据转换关系。
表2-5DS18B20的温度/数据关系
TEMPERATURE
DIGITALOUTPUT
(BINARY)
DIGITALOUTPUT
(HEX)
+125℃
0000011111010000
07D0h
+85℃
0000010101010000
0550h
+25.0625℃
0000000110010001
0191h
+10.125℃
0000000010100010
00A2h
+0.5℃
0000000000001000
0008h
+0℃
0000000000000000
0000h
-0.5℃
1111111111111000
FFF8h
-10.125℃
1111111101011110
FF5Eh
-25.0625℃
1111111001101111
FE6Fh
-55℃
1111110010010000
FC90h
温度传感部分采集转化后得来的数据,一般是放到DS18B20的暂存存储器中。
DS18B20的暂存存储器有8个字节,字节的区域是连续的。
前面两个字节是用来保存测来的温度信息,第一个字节放入的是DS18B20测来的温度值的低八位内容,第二个字节放入的是DS18B20测得的温度值的高八位部分。
第三个和第四个字节是设置温度告警的上限与下限的易失性保存,第五个字节是结构寄存器的易失性保存,当这三个字节在上电复位状态时,字节中的内容都会被刷新。
第六、七、八个字节用于内部温度数值的计算,第九字节是用来检查冗余字节,如下表2-6为暂存寄存器的分布。
表2-6DS18B20暂存寄存器分布
寄存器内容
字节地址
温度最低数字位
温度最低数字位
高温限值
低温限值
保留
保留
计数剩余值
每度计数值
CRC校验
0
1
2
3
4
5
6
7
8
ROM操作命令
如果处理器检测到总线挂有温度传感器,便发出传感器ROM中的的五种操作命令之一,所有的操作命令都是一个字节。
ReadROM(读ROM)[33h]
此命令是允许连接总线上的处理器读取DS18B20的8位产品系列编号,唯一的48位产品序列号以及8位的冗余校验码。
MatchROM(符合ROM)[55h]
在与ROM中的