基于AT89C51的数字体温计设计.docx
- 文档编号:6454271
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:28
- 大小:208.54KB
基于AT89C51的数字体温计设计.docx
《基于AT89C51的数字体温计设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51的数字体温计设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于AT89C51的数字体温计设计
基于STC89C52最小系统的数字体温计设计
摘要
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研等各个领域,已经成为一种比较成熟的技术,采用单片机控制已经成为了一种潮流。
现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。
传感器属于信息技术的前沿尖端产品,尤其是温度传感器种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子体温计、测温仪器等各种温度控制系统中。
本文将介绍一种基于STC89C52单片机控制的数字体温计,配合采用DS18B20为温度采集模块,HS1602液晶显示模块显示结果,另外用MAX232模块进行电压转换,实现对体温的采集与再现。
关键词:
52单片机,DSI8B20,HS1602,体温计
THEDIGITALTHERMOMETERSDESIGNBASEDONSTC89C52’SMINUIMUMSYSTEM
ABSTRACT
Withtheprogressanddevelopment,microcontrollertechnologyhasspreadtoourlives,work,researchandotherfields,hasbecomearelativelymaturetechnology,usingSCMhasbecomeatrend.Moderninformationtechnologyisbasedonthethreeinformationcollection(ie,sensortechnology),informationtransfer(ICT)andinformationprocessing(computertechnology).Sensorbelongstotheforefrontofcutting-edgeinformationtechnologyproducts,especiallytheincreasinglydiversetypesoftemperaturesensors,digitaltemperaturesensorismoresuitableforavarietyofmicroprocessorinterfaceforthecompositionoftheautomatictemperaturecontrolsystemcanovercometheanalogsensorsandsignalconditioningrequiredformicroprocessorinterfacingcircuitandA/Dconverterdefects,etc.,arewidelyusedinindustrialcontrol,electronicthermometer,thermometer,etc.ofvarioustemperaturecontrolsystems.ThisarticledescribesamicrocontrollerbasedcontrolofdigitalthermometersSTC89C52,withtheuseofDS18B20thetemperatureacquisitionmodule,HS1602liquidcrystaldisplaymoduledisplaystheresults,anothermodulewithaMAX232voltageconversion,acquisitionandrepresentationofbodytemperature.
KEYWORDS:
52microcontroller,DSI8B20,HS1602,thermometer
1引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温体温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。
体温计是在温度计的基础上研制成功的。
1714年,德国物理学家华伦海特,初期研制的体温表是把盛着酒精的玻璃管放在冰雪和盐的混合物里,看玻璃管内酒精降到哪里,刻上一条线,然后把体温表含入口中,看酒精升到哪里,又刻上一条线。
把这两条线作为固定点,再把两条线之间分成0~96°。
这就是初期的体温计。
后来,华海伦特把冰点定为32°,沸点为212°,发明了华氏温标。
1742年又发明了0~100°的摄氏温标,从此实现了体温计的刻度标准化。
1865年,英国的阿尔伯特发明了一种很有特色的体温计,特点是储存水银的细管里有一狭道,当体温计接触人体后,水银很快升到人体实际体温处,取出后水银柱不下降,而是在狭道处断开,使狭道以上部分始终保持体温度数。
这种温度计受到了临床的欢迎和普及应用。
但是随着科技的进步,如今,数字体温计作为一种读数方便,测温范围广,测温准确,输出温度采用数字显示的测温仪器,已广泛应用于现代测温应用中。
本设计所介绍的数字体温计,具有实用性强、可靠性高,测量精度准确、测量速度快,读数方便等优点,输出温度采用数字显示,在设计中控制器使用STC89C52单片机,温度传感器使用DS18B20,用HS1602实现温度显示,用MAX232及串口实现数据传送,用USB口实现供电。
2总体设计
2.1方案论证
2.1.1单片机系统
目前比较流行51系列单片机和凌阳单片机。
AT89C51单片机需要用仿真器来实现软硬件的调试,较为繁琐;STC89C52八位单片机除具有AT89C51单片机所有的优点外,具有更大的程序存储空间,可在线仿真的功能,方便调试。
因此,选用STC89C52八位单片机作为温度采集的控部分。
2.1.2电源模块
采用普通的直流电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要求,但是普通直流电源体积比较大,变压器的散热对测温精度也有影响,所以采用USB直接由电脑供电,完全满足STC89C52和DS18B20等各模块的工作电压范围。
2.1.3温度传感器
采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器(DS18B20、DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。
DS18B20是DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等,DS18B20支持3~5.5V的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。
DS18B20可以程序设定9~12位的分辨率,精度为±0.5℃,分辨率设定及用户设定的报警温度存储在E
PROM中,掉电后依然保存。
因此,本方案选用DS18B20作为温度测量传感器。
2.1.4显示模块
由于系统要求实现测量体温,要显示的信息不仅可以是温度值,还可以是简单的图形。
所以采用HS1602液晶显示模块显示测温结果。
2.1.5确定方案
为了不失通用性和智能性,本方案采用STC89C52单片机作为控制器,单总线温度传感器DS18B20进行温度采集。
电源部分没有采用普通的直流电源而利用USB口通过电脑供电,完全满足STC89C52和DS18B20等各模块的工作电压范围。
并且显示模块使用HS1602液晶显示器。
2.2总体设计
本方案设计的系统由单片机系统、温度传感器模块、液晶显示模块、单片机复位电路、串口通信模块和电源模块组成,其总体架构如图2.1。
图2.1总体设计方框图
Fig.2.1Blockdiagramoftheoveralldesign
3硬件设计
3.1单片机系统
方案采用STC89C52单片机作为控制器,完成所有的控制功能,包括:
•温度传感器DS18B20的初始化和读取温度值
•HS1602液晶模块驱动
•温度存储及读取
•和PC机的串口通信
STC89C52是一个低功耗,高性能CMOS8位单片机,具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
1.主要特性:
•8031CPU与MCS-51兼容
•4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
•全静态工作:
0Hz-24KHz
•三级程序存储器保密锁定
•128*8位内部RAM
•32条可编程I/O线
•两个16位定时器/计数器
•6个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
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.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。
因此它可用作对外部输出的脉冲或用于定时目的。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出
3.2电源模块
本方案采用USB口通过电脑直接供电,电路连接简单易实现,如图3.1。
图3.1电源模块
Fig.3.1PowerModules
3.3复位电路
在单片机系统中,一般需要一个硬件复位电路,用于用户的手动复位。
常用的复位电路由一个电阻、一个电容和一个按钮组成,其原理图如图所示。
在接通电源后,自动实现自动复位操作。
在接通电源条件下,通过按钮操作是单片机实现复位。
上电自动复位时通过外部复位电容来实现的,手动复位的通过单片机复位引脚经电阻和电源接通而实现的,如图3.2.
图3.2复位电路
Fig.3.2ResetCircuit
3.4时钟振荡电路
在单片机系统中,一般在单片机引脚XTAL1和XTAL2之间接一个经侦和两个电容,这样就构成了内部振荡方式,由于在单片机内部有一个高增益反相放大器,外接一个晶振后,构成了自激振荡器并产生振荡时钟脉冲。
其电路图如图3.3所示。
图3.3振荡电路
Fig.3.3Oscillationcircuit
3.5单片机最小系统
单片机最小系统应用是指仅使用单片机内部资源辅以必须的外围电路所构建的简单的应用系统。
它包括两方面的内容:
单片机的选择和单片机最小系统的设计。
通过单片机的选择,最大限度满足应用系统对硬件资源的要求。
最小应用系统设计则是指单片机最基本的、最通常的外围电路设计。
任何一个复杂的应用系统都是以最小应用系统为基础,通过搭接外部功能模块的方法实现的。
单片机最小系统的功能主要如下:
·单片机能够运行用户程序
·用户可以复位单片机
·具有相对强大的外部扩展功能
图3.4单片机最小系统原理框图
Fig.3.4SmallestMicrocontrollersystemblockdiagram
3.6温度传感器模块
3.6.1DS18B20原理
DS18B20采用3脚PR-35封装或8脚SOIC封装,管脚排列如图3.5所示。
图中GND为地,DQ为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平,Vcc是外部+5V电源端,不用时应接地,NC为空脚。
图3.5DS18B20的外部结构
Fig.3.5DS18B20externalstructure
DS18B20内部主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
寄生电源由二极管VD1、VD2和寄生电容C组成,电源检测电路用于判定供电方式,寄生电源供电时,VDD端接地,器件从单线总线上获取电源,在DQ线呈低电平时,改由C上的电压Vc继续向器件供电。
该寄生电源有两个优点:
第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读ROM。
若采用外部电源VDD,则通过VD2向器件供电。
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,如图5所示。
开始8位(28H)是产品类型标号,接着的48位是DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
主机操作ROM的命令有五种,如表3.1所示。
表3.1DS18B20的ROM命令
Table3.1DS18B20ROMcommand
指令
说明
读ROM(33H)
读DS1820的序列号
匹配ROM(55H)
继读完64位序列号的一个命令,用于多个DS1820时定位
跳过ROM(CCH)
此命令执行后的存储器操作将针对在线的所有DS1820
搜ROM(F0H)
识别总线上各器件的编码,为操作各器件作好准备
报警搜索(ECH)
仅温度越限的器件对此命令作出响应
表3.2DS1820温度数字对应关系表
Table3.2DS1820digitaltemperaturemappingtable
DS18B20测量温度时使用特有的温度测量技术。
其内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。
当计数门打开时,DS18B20对f0计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性予以被偿。
测量结果存入温度寄存器中。
一般情况下的温度值应为9位(符号点1位),但因符号位扩展成高8位,故以16位被码形式读出,表3.2给出了温度和数字量的关系。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低8位,第二个字节是温度的高8位,第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新,第六、七、八个字节用于内部计算,第九个字节是冗余检验字节。
该字节各位的意义为TMR1R011111,低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不用改动,R1和R0用来设置分辨率,DS18B20出厂时被设置为12位,分辨率设置如表3.3所示。
表3.3分辨率设置表
Table3.3resolutionsettingstable
R1
R0
分辨率
温度最大转换时间
0
0
9位
93.75ms
0
1
10位
187.5ms
1
0
11位
375ms
1
1
12位
750ms
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
3.6.2DS18B20电路连接
由于DS18B20工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条I/O线与DS18B20的数据总线相连即可,如图3.3所示。
图3.3DS18B20电路
Fig.3.6DS18B20circuit
3.7液晶显示模块
HS1602采用标准的16脚接口,其引脚如表6所示,其中VSS为地电源,VDD接5V正电源,V0为液晶显示模块对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作,当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
LEDA和LEDK为背光电源,LEDA接5V正电源,LEDK接GND。
D0~D7为8位双向数据线。
表3.4接口信号说明
Table3.4InterfaceSignals
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令选择端(H/L)
12
D5
DataI/O
5
R/W
读/写选择端(H/L)
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
用HS1602液晶显示模块显示字符或字符串之前必须对其进行初始化,HS1602液晶显示模块的初始化流程如下:
•初始化过程(复位过程)
•延时15ms
•写指令38H(不检测忙信号)
•延时5ms
•写指令38H(不检测忙信号)
•延时5ms
•写指令38H(不检测忙信号)
•(以后每次写指令、读/写数据之前均需检测忙信号)
•写指令38H:
显示模式设置
•写指令38H:
显示关闭
•写指令01H:
显示清屏
•写指令06H:
显示光标移动设置
•写指令0CH:
显示开关及光标位置
HS1602液晶模块内部的字符发生存储器(CGROM)已经存储了128个不同的点阵字符图形,如表3.5所示。
表3.5CGROM中的字符代码与图形对应关系
Table3.5CGROMthecorrespondencebetweencharactercodesandgraphics
高低
0000
0010
0011
0100
0101
0110
0111
0000
CGRAM
0
@
P
\
p
0001
!
1
A
Q
a
q
0010
”
2
B
R
b
r
0011
#
3
C
S
c
s
0100
$
4
D
T
d
t
0101
%
5
E
U
e
u
0110
&
6
F
V
f
v
0111
’
7
G
W
g
w
1000
(
8
H
X
h
x
1001
)
9
I
Y
i
y
1010
*
:
J
Z
j
z
1011
+
;
K
[
k
{
1100
<
L
¥
l
|
1101
-
=
M
]
m
}
1110
.
>
N
^
n
→
1111
/
?
O
_
o
←
HS1602液晶模块内部的控制器共有11条控制指令,如表3.6所示。
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
表3.6HS1602液晶模块内部的控制器控制指令
Table3.6thecontrollercommandwithinHS1602LCDmodu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 数字 体温计 设计