基于51单片机的电子体温计设计.docx
《基于51单片机的电子体温计设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子体温计设计.docx(39页珍藏版)》请在冰豆网上搜索。
![基于51单片机的电子体温计设计.docx](https://file1.bdocx.com/fileroot1/2023-5/20/a614d01c-73ae-4d65-bb73-0619613bba94/a614d01c-73ae-4d65-bb73-0619613bba941.gif)
基于51单片机的电子体温计设计
电子体温计设计
摘要本文设计一种基于单片机控制的电子体温计,实现了实时测量显示和语音播报与声音报警的功能。
主要由电源电路模块,A/D转换电路模块,温度控制模块,自动控制模块,温度设制、显示及报警电路模块,串行通信模块和语音播放模块组成。
自动控制模块采用双AT89S52构成主从串行处理结构实现对系统的自动控制。
温度控制模块选用AD590集成温度传感器来采集外界温度,转换为线性电压信号。
线性电压经由OP07构成高精度低温漂的放大电路处理后,由A/D转换电路模块中的ADC0809完成A/D转换,得到8位的数字信号送入自动控制模块的主机中。
主机将采集到温度值在LED数码管上显示出来,并通过串口通信将温度信号传到从机。
此外,主机完成温度预制和报警电路模块功能,从机完成温度值的语音播放功能。
关键词单片机;AD590;ADC0809;ISD2560
1绪论
温度是存在于客观世界的一个基本物理量,它与人类的生活和生存有着密切的联系。
温测量的历史,可以追溯到l6世纪。
当时Saatorio用空气热膨胀的原理,制出了第一支测量口腔温度的体温计。
本世纪初,开始用水银来制作体温计,至今在临床上得到了广泛的应用。
根据1928年Ebstein的报告,当时除测量口腔及腋下的温度外,还可以测量直肠、颈部、大腿根部,外耳及尿温。
这些都是用被测皮肤温度与玻璃球内积存的水银温度相等的原理实现的。
由于水银体温计使用方便、精度高,因而应用很广。
由于用水银体温计进行体温监测很不方便,水银的污染的可能也很严重等,为了正确测量人体局部温度,促使人们开发了各种不同的测温仪器和测温方法。
现在已有许多医院采用了电子体温计,用其它电子仪器测量体温也日益普及。
电子温度测量方式是随着电子技术的兴起而发展的一门学科。
它利用材料随温度变化的参数转换成电信号[1]对温度进行测量。
早期的电子温度测量均采用模拟技术的方法,对传感器的非线性补偿采用分立式电路进行各种方法的补偿,线路复杂、体积庞大、可靠性低,应用受到很大的制约,微电子技术的发展使这一希望逐步变成了现实。
现在数字集成电路技术和相应的数字信号处理理论相对成熟,开发制造成本大幅下降,为新一代电子体温计的开发创造了良好的先决条件,以数字技术为主要技术的新一代电子体温计[2,3]又一次成为关注和研究的对象。
因此,鉴于传统的水银体温计汞的污染及其携带不方便易破碎,尤其是测量时间过长等缺点,本课题设计出一种数字式电子体温计。
2系统方案与论证
2.1方案论证与比较
方案一:
采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。
数据采集部分使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。
系统包括对A/D的数据采集,温度的显示等,这几项功能信号通过输入输出电路由单片机处理。
[4]此外还有复位电路,晶振电路等。
现场输入硬件有手动复位键、A/D转换芯片,处理芯片为51芯片,执行机构有数码管、报警器等。
系统框图如图2-1所示。
图2-1热电偶温差电路测温系统框图
方案二:
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
该系统利用单片机控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可根据需要设定上下限报警温度。
该系统扩展性非常强,在数据处理同时显示时间,利用键盘来进行调时和温度查询,获得的数据可通过MAX232芯片与RS232接口进行串口通信,方便采集和整理时间温度数据。
系统框图如图2-2所示。
图2-2DS18B20温度测温系统框图
方案三:
外部温度信号经过集成温度传感器采集转换成相应的电压信号,经过信号放大后成为模拟输入信号,AD将该模拟信号转换成数字信号,通过并口送入到主机。
主机处理这些信号后通过LED数码管显示出来,同时还处理按键和报警模块的程序。
温度值由主机通过串行通信传送给聪机,从机控制语音芯片报出对应的温度值。
系统框图如图2-3所示。
图2-3系统框图
2.2方案选择
方案一:
热电偶在测温范围内热电性质稳定,比热小,导电率高,但热电偶的体积较大,使用不易,价格高[5,6]。
而电子体温计的温度传感器要求易用,方便携带,体积小,故不用采用。
方案二:
测温装置电路简单、精确度较高、实现方便,但DS18B20一般用于工业测温度,故不采用。
方案三:
采用集成温度传感器。
集成温度传感器一般且有具有线性好、精度高、灵敏度高、体积小、使用方便等优点
如上所述,故选用方案三来进行设计。
3系统硬件电路设计
电子体温计主要由电源电路模块,A/D转换电路模块,温度控制模块,自动控制模块,温度设制、显示及报警电路模块,串行通信模块和语音播放模块组成。
3.1自动控制模块
3.1.1单片机的概述
单片机,又称为微控制器。
是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统[7,8]。
单片机的主要特点:
有优异的性能价格比;集成度高、体积小、可靠性高;控制功能强;低电压、低功耗。
单片机的主要应用领域有:
工业控制、仪器仪表、电信技术、办公自动化和计算机外部设备、汽车和节能、制导和导航等。
[9,10]
3.1.2AT89S52芯片
自动控制模块选用AT89S52,它是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
[11]
(1)标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
(2)在外部结构上,AT89S52单片机和MCS-51系列单片机的结构相同,有三种封装形式,分别是PDIP形式,为40针脚;PLCC形式,为44针脚;TAFP形式,也为44针脚。
其中,常用的为PDIP形式,如图3-1所示。
图3-1AT89S52的引脚图
3.2串行通信模块
串行通信模块的主要功能是主机把温度值数据发送到从机,从机接收数据并控制语音芯片报出当前的温度值。
主机与从机串行通信电路图如图3-2所示。
图3-2主机与从机串行通信电路图
3.3电源电路模块
如图3-3所示,220V交流电经变压器降压、桥式整流、电容滤波后由7905、7805、7812三端集成稳压管分别得到-5V、+5V、+12V电压,整个系统供电。
图3-3电源电路图
3.4温度控制模块
温度控制模块选用AD590,主要功能是负责采集温度,把温度值进过放大后传送给A/D转换电路模块
3.4.1AD590概述
集成温度传感器AD590是美国模拟器件公司生产的集成两端感温电流源。
AD590属于电流型集成温度传感器,电流型集成温度传感器是一个输出电流与温度成比例的电流源,由于电流很容易变换成电压,故使用十分方便。
AD590集成温度传感器的输出电流是整个电路的电源电流,而这个电流与施加在这个电路上的电源电压几乎无关。
[12,13]
AD590主要特性如下:
(1)具有线性输出电流。
(2)宽广的操作温度范围(-55℃~150℃)。
(3)宽广的工作电压范围(+4V~+30V)。
(4)良好的隔离性。
AD590的包装与等效电路如图3-4所示。
图3-4AD590外形及符号
AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。
根据特性分挡,AD590的后缀以I,J,K,L,M表示。
AD590L,AD590M一般用于精密温度测量电路,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用。
它是两端子的半导体温度感测组件,另有一端子是外壳接脚,可接地以减少噪声干扰。
AD590如同一个随温度而改变输出电流的定电流源,输出电流与外壳的开氏(K)温度成正比。
开氏温度与摄氏温度的单位相等,0℃等于273.2K,100℃等于373.2K。
当温度为0℃时,AD590的输出电流是273.2μA。
而温度为100℃时,输出电流是373.2μA。
温度每升高1℃,输出电流增加1μA,及温度系数为1μA/℃。
3.4.2温度检测、放大电路原理
AD590当温度增加1℃时,其输出电流会增加1μA。
即AD590的温度系数为1μA/℃。
所以在T(℃)时的电流I1(T)为
(式3.1)
而温度每变化1℃时,V2的电压变化是为
(式3.2)
表示温度每增加1℃,V2会增加10mV。
在0℃时V2就已经有电压存在,其值为
(式3.3)
则T(℃)时
,
(式3.4)
如图3-3所示,OP3组成差动放大器,电压增益为
(式3.5)
零位调整SVR1则用于抵补0℃的电压值,由差动放大器的公式
(式3.6)
可得知,若调整SVR1使V1的电压为2.732V,则0℃时,差动放大器的输出VO为0V。
也就是说,若温度是在0℃至50℃之间,则差动放大器的输出电压是在0V至5V之间,亦即每0.1V的输出代表温度上升1℃。
与设计要求相符合。
3.4.3温度检测与放大电路
该模块的主要功能是实时检测温度并转换放大,传送给A/D转换电路。
温度检测、放大电路主要器件的作用:
OP1:
设置温度阀值;OP2:
采集AD590转换温度数据;OP3:
完成A/D数模转换所需的模拟信号输入;AD590:
温度传感器;SVR:
零位调整。
如图3-5所示。
图3-5AD590温度检测、放大电路图
3.5A/D转换电路模块
A/D转换电路模块选用ADC0809,其功能是从温度控制模块接受数据后,经过A/D转换,把模拟量转换成数字量传送给主机进行处理。
3.5.1ADC0809概述
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片[14,15]
(1)主要性能特点
①8路8位A/D转换器,即分辨率8位
②具有转换起停控制端
③转换时间为100μs
④单个+5V电源供电
⑤模拟输入电压范围0~+5V,不需零点和满刻度校准
⑥工作温度范围为-40~+85摄氏度
⑦低功耗,约15mW
(2)引脚特性
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A、B、C三条地址线的地址信号进行锁存,经译码后被选中的通.的模拟量进转换器进行转换。
A、B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
数字量输出及控制线:
11条。
ADC通道选择表如表3-1所示。
表3-1ADC0809通择表
C
B
A
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。
3.5.2A/D转换电路图
如图3-6所示,ADC0809把从放大电路传送过来的模拟信号转变成数字信号,并行传送给单片机的P0口,让单片机处理。
图3-6A/D转换电路图
3.6温度设制、显示及报警电路模块
该模块通过按键可事先设置报警温度值,当显示的温度值超过设定的温度值时,单片机会从INT0脚发出一连串脉冲,驱动蜂鸣器发出报警声。
数据用3位LED显示
3.6.1LED显示器简介
在显示系统中,使用的显示器件主要有LED发光二极管,LCD液晶显示器,近年来也有使用简易形式的CRT接口,其中LED显示器最为常见,具有成本低廉、配置灵活、与单片机的接口简单方便、易于编程等特点,在低端领域使用广泛,LCD液晶显示器多用于高端场合。
在本系统设计中,采用LED显示器。
LED显示器是由发光二极管显示字段促成的器件,在单片机应用系统中通常使用的是七段LED,这种显示器分共阴极和共阳极两种。
其结构图如下图3-7所示。
a)共阴极(b)共阳极(c)结构图
图3-73位LED结构图
共阴极LED数码管的发光二极管的阴极接地,当发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED数码管的发光二极管的阳极接+5V电源。
N位的LED显示器有N根位选线和8×N根段选线,位选线控制显示位的亮和暗,段选线控制字符的选择。
LED显示器有两种显示方式——静态显示方式和动态显示方式。
在静态工作方式下,共阴极接地或者共阳极接+5V,,每一位的段选线(a~g,dp)与一个8位的并行I/O口相连。
在动态工作方式中,要将所有位的段选线并接在一个I/O口上,,共阴极或共阳极分别由相应的I/O口线控制。
由于每一位的段选线都接在一个I/O口上,所以每送一个段选码,各位显示器都显示同一个字符,这样的显示器是不能用的,解决方法是利用人的视觉滞留,从段选线I/O口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,未选通位不显示字符(熄灭),这样对各位的显示就是一个循环的过程。
由于人的视觉滞留,这种动态变化是观察不到的,从效果看,各位显示器能连续而稳定的显示不同字符。
在实际使用中,多使用动态显示[16]方式。
3.6.2电路图
如图3-8所示。
图3-8温度设制、显示及报警电路图
3.7语音播放模块
语音播放模块采用采用ISD2560语音录放集成电路,其功能是进行语音提示。
3.7.1ISD2650概述
(1)ISD2560是DIP器件封装,有28脚,如图3-9所示。
图3-9ISD2560管脚图
各引脚功能如下:
脚1~脚7:
A0/M0~A6/M6地址/模式选择;
脚8~脚10:
A7~A9输入地址线;
脚11:
AUXIN辅助输入;
脚12、脚13:
VSSD、VSSA数字地和模拟地;
脚14、脚15:
SP、SP-扬声器输出;
脚16:
VCCA模拟信号电源正极;
脚17、脚18:
MIC、MICREF麦克风输入端和输入参考端;
脚19:
AGC自动增益控制;
脚20、脚21:
ANAIN、ANAOUT模拟信号输入和输出;
脚22:
OUF溢出;
脚23:
CE片选(低电平允许芯片工作);
脚24:
PD芯片低功耗状态控制;
脚25:
EOM录放音结束信号输出;
脚26:
XCLK外部时钟;
脚27:
P/R录/放控制选择;
脚28:
VCCD数字信号电源正极;
(2)工作原理:
ISD2560内部存储单元EEPROM均匀分为600行,有600个地址单元,每个地址单元指向其中一行,每一个地址单元分辨率为100ms。
ISD2560有10个地址输入端A0~A9,录址能力达1024位,地址空间为0~1023。
其分配情况是:
地址0~299作为分段用,地址600~767未使用,地址768~1023为工作模式选择(即A8、A9都为高)。
当最高位地址A8、A9都为高电平时(地址768~1023),地址端A0~A6就作为工作模式选择端M0~M6,对应7种工作模式。
当A8、A9不都为高时(地址0~599),只需在分段录、放音操作前(不少于300ns)给地址A0~A9赋值,操作就从该地址开始。
[17]
ISD2560将EEPROM分为600个信息段,每段800个字节。
作为一个整体单位进行寻址和控制,应给每个信息段分配一个供外部控制的地址。
每个语音段的尾部自动增加一个结束标志EOM,组合放音时,通过检测EOM来控制各语音段的结束和下一段的开始。
每个信息段录放音时间等于总时间除以600。
例如ISD2560总时间为60s,每个信息段的录放音时间为100ms。
故可利用该时间长度作为一个段地址,通过单片机定时器的计时平行地映射信息段的地址,得到每段录音的起始地址。
这样,就需设置一个地址计数器。
一般录音从0地址开始,首先通过CPU将它赋给A0~A9,然后通过单片机控制ISD启动录音,同时启动单片机的定时器开始计时,每到一个信息段的时间,就给地址计数加1。
当单片机停止控制ISD录音时,同时停止定时器计时。
此时地址计数器的值即为该段语音的未地址,加1即为下一段语音首地址,并将它存在EEPROM中,为下一将放音提供地址信息。
通过CPU将该地址赋给A0~A9,即可录制下一段语音。
依次下去,即可在录制完所有语音段的同时得到各段的起始地址。
若不是从0地址开始的语音段,需将初始地址赋给A0~A9,加上地址计数器的值,可得到语音段的末地址。
3.7.2电路原理图
语音播放模块如图3-10所示,主要由单片机AT89S52与语音芯片ISD2560组成。
图3-10录音、放音电路图
4系统软件设计
4.1系统程序流程图
图4-1为主机程序流程图,主要功能是显示温度、按键扫描、BCD码转换、串行发送数据给从机。
定时器定时1ms,每定时100次即1秒钟就启动A/D转换程序、BCD码转换程序,串行发送二进制数给从机。
图4-2为从机程序流程图,负责接收数据并且播报相应的温度值,T0定时器定时,结合延时程序定时1分钟,使每1分钟更新一次语音音素地址,即每1分钟更新一次温度值,并在中断程序处理过程度中播报一次温度。
图4-1主机程序流程图图4-2从机程序流程图
4.2子程序流程图
图4-3从机的T0中断程序流程图
5系统测试
5.1硬件测试
5.1.1单元模块测试
(1)电源测试:
用数字万用表电压档测量各三端稳压管输出的电压值是否正常。
测试相关测试点,三路电压正常。
(2)温度采集模块的测试:
调节温度变化,测试点的电压值是否有相对应的改变。
当温度变化时,测试点的电压与温度之间的线性关系比较好,如表所示。
(3)A/D转换模块的测试:
当输入为0V和5V以及中间若干电压输入时,测试A/D转换是否正常。
测试发现当输入为0V时,ADC0809的输出为00H,为+5V时为0FFH,当输入为2.5V时,输出为0EFH,测试结果表明A/D转换的功能完全实现。
(4)语音播放模快的测试:
通过拨码开关人工给语音芯片选地址,测试不同的地址是否有不同的发音,以检验语音是否正确录入及能否正常播放。
根据设定,将12个语音信号分别放到指定的行地址上,当按相应的行地址拨开关给ISD2560时,能够正常播放设定的12个语音,说明语音芯片的录用存贮工作成功。
接入系统,编程输出相应的行地址,ISD2560能够正常播放各个语音,说明语音播放模快的硬件设计可行。
5.1.2系统整体测试
测试方法——以水温代替人的体温,用一根水银温度计与所制作的体温计探头(捆绑)同时接触被测热水的同一点。
(1)准备一杯0摄氏度的冰水混合物和一杯热水。
从0度开始记录测试点的电压值与温度计对比较。
记完一个数后,往杯中加热水,这样,每测一次,记录一次数据,再加一次热水,这样使水温渐渐升高,一直测到水温为50摄氏度。
(2)检测水温高于50摄氏度时测试点的电压值。
看是否为+5V。
结果显示为+5V,说明保护电路可行。
5.2软件测试
将各功能子程序进行KAILC系统进行软件仿真,全部通过,再进行硬件仿真,也能全部实现所要求实现的功能。
(1)数码管显示的测试:
把放大器的输出连接到ADC0809的输入端,ADC0809与单片机相连接,观察数码管显示的数值是否与测试点所测值成归一化关系。
(2)双机串行通信测试:
主机发送一个8位二进制数,用示波器观察从机是否接收到。
5.3硬件与软件的联机测试
将把程序经编译、下载到相应的AT89S51芯片中,构建电路测试,比较数码管显示的数值与温度计的值和测试点的值。
5.4测试数据和结果分析
5.4.1测试数据
按照前述的测试方法,取得到测试结果如表5-1所示。
表5-1数码显示与测试点电压随温度变化关系
温度值(摄氏度)
数码管显示值
测试点电压值(V)
0
00.0
0.0
10.0
10.0
1.001
19.0
19.0
1.903
38.1
38.1
3.820
47.8
47.8
4.800
60.1
50.0
5.003
5.4.2结果分析
根据上述测试结果,此系统的设计基本取得成功。
智能体温计的测量范围在
在测试温度方面有一定的成效,测试误差较小,通过表5-1的数据比较,显示的误差与实际的温度值误差在
内。
数码管显示的数值是否与测试点所测值成归一化关系。
6结论
本次设计采用AT89S52作为核心器件实现对系统的自动控制,采用双单片机串行处理结构。
AD590集成温度传感器采集外界温度,并将温度变化转换为线性电压信号。
线性电压经由OP07构成高精度低温漂的放大电路处理后,作为ADC0809的模拟输入信号,由ADC0809完成A/D转换,得到8位的数字信号送入主机(AT89S52)。
主机将采集到温度值在LED数码管上显示出来,并通过串口通信将温度信号传到单从机(AT89S52)。
此外,主机完成温度预制和报警电路模块功能,主机完成温度值的语音播放功能。
比起水银体温计,电子体温计利用电子感温,灵敏度高,适合无法长时间安静的儿童,且能在较短的时间内准确测试出体温,温度播报时间可快至1min。
它的测量精度可达±0.1℃,LED直接显示体温数值。
参考文献
[1]无铭.基于89S52单片机的电子体温计[J].电子制作,2008,