电子体温计设计说明.docx

上传人:b****8 文档编号:28642947 上传时间:2023-07-19 格式:DOCX 页数:29 大小:342.98KB
下载 相关 举报
电子体温计设计说明.docx_第1页
第1页 / 共29页
电子体温计设计说明.docx_第2页
第2页 / 共29页
电子体温计设计说明.docx_第3页
第3页 / 共29页
电子体温计设计说明.docx_第4页
第4页 / 共29页
电子体温计设计说明.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

电子体温计设计说明.docx

《电子体温计设计说明.docx》由会员分享,可在线阅读,更多相关《电子体温计设计说明.docx(29页珍藏版)》请在冰豆网上搜索。

电子体温计设计说明.docx

电子体温计设计说明

任务分配

总体方案设计:

XXXXXXXXXXXXXXXXXX

软件系统设计:

XXXXXX

硬件系统设计:

XXXXXX

绘图:

XXX

软件编程:

XXXXXXXXXXXX

整体效果图:

 

千万不要删除行尾的分节符,此行不会被打印。

在目录上点右键“更新域”,然后“更新整个目录”。

打印前,不要忘记把上面“Abstract”这一行后加一空行

第1章绪论

1.1设计背景

由于水银体温计精度很高、使用方便、并且易于携带,因而很多人喜欢采用水银体温计。

再加上体温计测温方法及其结构都已完全成熟,并没太多的改进余地,人们对水银体温计的研究热情逐渐渐低,到现在水银体温计几乎已经没有什么发展的余地。

再加上由于测量体温用水银体温计很不方便,如果打破摔坏体温计,水银的污染也很严重等,为了准确测量人体的局部温度,促使人们不得不开发了多种多样的测温方式和测温器件设备。

现在其它不同种类的电子仪器测量体温也日益普及,已有许多医院采用了电子体温计来测量体温。

这一事实至少说明了,电子测温仪器的性能与水银温度计的性能已经很接近了。

因此,鉴于传统的水银体温计多种因素,诸如汞的污染及其携带不方便易破碎,尤其是测量时间过长等缺点,本课题为解决此问题设计出一种数字式电子体温计。

它在稳定性及响应时间上比传统的水银体温计有着显著的优势,精度要求也能和传统的水银体温计相媲美。

单片机智能化仪表在测量仪表的方面,有着很大的发展趋势。

它给日常生活带来多方面的进步,其中数字温度计就是一个典型的例子,家庭、医院等随处可见,为了能更加满足人们的需要,数字体温计正在不断的进行更新换代。

现在所使用的温度计还有很多是水银、酒精或煤油。

温度计的分辨力都是为1~0.1℃。

这些普通水银温度计的刻度间隔通常都很密集,读数比较困难,分辨的不准确,而且他们有着比较大的热容量,需要很长时间达到热平衡,因此温度数值很难读准,使用非常不方便。

本设计所介绍的电子体温计,主要用于家庭等普通环境。

与传统的水银温度计相比,电子体温计易于读数,广泛的测温范围,测温精度比较高等优点,其输出温度采用数字显示。

现在温度计发展非常迅速,从最原始的玻璃管温度计发展到了现在的热电偶温度计、热电阻温度计、集成的半导体数字温度计等。

在电子式温度计中,最重要组成部分就是传感器。

温度计的测量范围、精度、控制范围和用途取决于传感器的精度、灵敏度等等。

现在的温度传感器被广泛的应用,目前已经研制出各种各样的新型温度传感器,从而现在温度监控系统的功能日趋强大。

1.2系统总体方案设计概述

该系统用于体温检测,能准确快速地测量人体体温,并且需要实时的显示当前的温度。

与传统的水银玻璃体温计相比,电子体温计具有方便的读数,高精度的测量,测量时间比较短,能记忆并有与其它体温计不同的蜂鸣提示的优点。

第2章方案设计

2.1性能要求

测温范围32°C~43°C,误差在±0.2°C以内,当温度超过37.5°C时,可以报警,采用LED数码管直读显示。

并且能够实时的宽范围的温度检测,能清楚的显示与读出数据。

2.2设计思路

本研究旨在设计一个电子体温计,主要控制器采用单片机STC89C52,传感器采用美国DALLAS半导体公司生产的DS18B20智能型传感器。

该传感器检查的温度是32°C~43°C之间,检查的分辨率为±0.2°C。

当温度出现不同寻常的时候,不在设置范围内时,可以报警,且是通过蜂鸣器。

研究工作总体包括以下多个方面:

了解电子体温计的工作原理,典型结构,发展历史及国内外的研究和发展的现状;研究电子体温计的两个最主要的核心模块:

DS18B20传感器控制和STC89C52单片机主控制器。

第3章电子体温计的控制电路的设计(硬件系统的设计)

3.1总体设计思想

图3-1系统框图

3.2传感器电路

美国DALLAS半导体公司设计生产一种DS18B20温度传感器,并且DS18B20是一种智能化的温度传感器。

新出来的,比较流行的温度传感器,是与平常传统的热敏电阻等测量温度的元件相比较,它提供9位(二进制)温度读数,并且可以指示器件的温度,而且能够直接读出被测的温度数值,因此选用此传感器。

DS18B20的性能和特点如以下几点,都是很好的优点:

其一是多个DS18B20可以并联在唯一一个单独的三线上,并且能够实现多点组网功能;其二是独特单独的单线接口仅仅需要一个端口引脚就可以进行通信;其三是用户可以自己定义的非易失性温度报警的设置;不需要外部的外围器件;其余的是可以通过数据线供电,电压范围为是在3.0~5.5V;当待机的时候,功耗为零;温度以9~12位的数字两读出;负电压特性,当电源极性接反的时候,温度计不会因发热而烧毁,只是不能正常工作。

报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。

DS18B20的主要特性:

(1)适应更加宽广的电压范围,电压范围:

3.0~5.5V,并且采用数据线供电,与此同时也可以采用寄生电源方式;

(2)DS18B20还具有的很多强大的功能,其中一项就是支持多点的组网功能,在唯一单独的三线上,就可以让多个DS18B20功能并联,实现组网多点测量体温;

(3)具有很独特的单线接口方式,需要一条口线即可让DS18B20在与微处理器连接,并且能够实现微处理器与DS18B20的双向通讯;

(4)不需要用其他的任何外围的元器件DS18B20就可以使用,一只三极管的集成电路包含了全部传感元件及转换电路;

(5)温范围-55℃~+125℃,在-10~+85℃的时侯精度是±0.5℃左右;

(6)有9~12位的分辨率是可以用来编写程序的,对应的可分辨温度依次分别为0.0625℃、0.125℃、0.25℃和0.5℃,测量温度可实现精度高;

(7)温度转换为数字,且条件是在9位分辨率时,最多花费93.75ms,而在12位分辨率时,把温度值转换为数字,速度更快,最多在750ms内;

(8)测量结果可以输出直接明确的数字的温度信号,通过串行,CPU接受"一线总线",同时可以传送CRC校验码,拥有极强的抗干扰纠错能力;

(9)负压特性:

当接反电源极性的时候,芯片不会发热,因而更加不会被烧毁,但之后不能正常工作。

 

图3-2DS18B20电路图3-3DS18B20封装管脚图

3.3单片机电路

STC89C52是一种CMOS8位微小型控制器,其性能高、功耗低,并且具有可编程Flash存储器,数据容量是8K。

在单芯片上,STC89C52为众多嵌入式控制系统应用提供有效、灵活的解决方案主要其原因就是拥有可编程Flash和灵活的8位CPU。

具有以下标准功能:

512bitRAM,8kbitFlash,32位I/O口线,看门狗的定时器,内置4KBEEPROM,MAX810复位电路,单个6向量2级中断结构,三个16位计数器/定时器,全双工串口。

另外静态逻辑操作是STC89X52降至0Hz,并且支持2种软件,与此同时,还可选择节电模式。

当CPU停止工作,就是属于空闲模式。

此时允许RAM、串口、计数器/定时器、中断时候继续工作。

保存RAM内容,可以在掉电保护方式下,并且可以把振荡器冻结了,单片机停止一切工作,直到下一个硬件复位或中断为止。

最高运作频率35Mhz,6T/12T可选。

STC单片机引脚说明:

(1)GND:

接地

(2)VCC:

电源电压

(3)RST:

重新设置。

当振荡器复位器件时,要保证持续RST脚两个机器周期的高电平时间。

(4)/EA/VPP:

在此时间段外部程序的存储器(0000H-FFFFH),就必须是在/EA保持持续电平低时,不管是否有内部的程序存储器。

/EA将内部锁定为恢复设置,此时应当注意加密方式1;当/EA端保持电平高的时候,在FLASH可以编写程序的期间。

此间的内部的程序存储器,施加12V编程电源在这个引脚上,也可以用于(VPP)。

(5)XTAL1:

输入内部时钟的工作电路以及输入反向振荡的放大器。

(6)XTAL2:

为反向振荡器的输出。

(7)P0口:

总线复用口是P0口,而且是数据/地址合起来的,也即是一个8位开路漏级双向I/O口。

作为输出口用时,每管脚可吸收8TTL门电流。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

当P0口的管脚第一次写1时,被定义为高阻态输入。

当FIASH进行校验时,P0外部必须被拉高,是由于P0输出原码,在FIASH编程时,P0口作为原码输入口。

(8)P1口:

把1写在P1口管脚之后,高电平就会在内部产生,并且可以用作输入。

4TTL的门电流能够被P1口缓冲器可以能够吸收或输出,主要原因是P1口内部带一个可以提供上拉电阻的8位双向I/O口。

电流在内部被上拉,当下拉为低电平在P1口被外部产生的时候,电流将会被输出。

地址接收是当P1口作为第八位,并且在FLASH编程和校验的时侯。

(9)P2口:

4个TTL的门电流可以在P2口的缓冲器可吸收或输出,P2口内部带一个8位双向I/O口,并且是可以上拉电阻的。

并因当P2口的管脚被外部拉低,这个是作为输入的时侯来的,将输出电流。

这是由于内部上拉的缘故。

P2口在FLASH编程和校验时接收控制信号和高八位地址信号。

P2口当用在16位地址外部数据存储器,并且进行存取或外部程序存储器的时候,P2口输出地址的高八位。

管脚内部有上拉电阻拉高,主要是当P2口被写“1”时,并且把P2口当作为输入。

它优势有利用内部上拉,并且在给出地址“1”的时侯,当进行读写外部八位地址数据存储器的时候,P2口输出其特殊功能寄存器的内容。

(10)P3口:

P3口内部的管脚是8个带上拉电阻的双向I/O口,可吸收或输出4个TTL门电流。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

当P3口写入“1”后,用作输入,与此同时,并且内部电平上拉为高电平。

AT89C51的某些特殊功能口可以采用P3口来实现,如下表所示:

管脚

备选功能

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口同时为闪烁编程和编程校验,且可以接收一部分控制信号。

(11)/PSEN:

外部程序存储器之中有选通信号在。

在由外部程序存储器工作时候,取指期间,两次/PSEN有效,且在每个机器周期中。

但两次有效的/PSEN信号将不出现在访问外部数据存储器时。

(12)ALE//PROG:

通常情况下,ALE端输出正脉冲信号,并且以不变的频率周期,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

当外部存储器准备被访问的时候,锁存地址的地位字节可以让地址锁存允许的输出电平。

此引脚用于输入编程脉冲,主要是用在FLASH编程期间。

此时,ALE只有在执行MOVX,只有在ALE情况下,MOVC指令是才起作用的。

然而要注意的是:

跳过一个ALE脉冲,就会用作外部数据存储器时。

如想禁止ALE的输出可在SFR8EH地址上置0。

另外,该引脚被略微拉高。

如果是无效的置位,很可能主要原因是禁止了微处理器在外部执行状态ALE。

本次设计中使用的引脚为RXD,TXD,P2,P3口。

图3-4STC89S52管脚图

图3-5单片机电路原理图

3.4LCD1602显示屏电路

1602液晶也叫1602字符型液晶,字母、数字、符号等的点阵型液晶模块将可以显示在1602上的,可以显示一个字符,是通过每个点阵字符位来实现的,并且组成部分是若干个5X7或者5X11等点阵字符位。

每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

1602LCD是指显示的内容可以显示每行16个字符液晶模块,并且可以显示两行,1602代表的就是这个意思。

LCD1602液晶显示内容丰富、小巧的体积、功耗低、超薄且轻巧,常用在微型仪表和低功耗应用系统中。

1602的16脚接口是采用标准规范的,其中:

(1)第1脚:

接地电源是VSS;

(2)第2脚:

正电源是VDD接+5V;

(3)第3脚:

液晶显示器调整对比度的端口是V0,接正电源的时候对比度是最弱的,接地电源的时候对比度是最高的,对比度太高时会出现不一样的“鬼影”,使用时,对比度的调整,可以通过一个10K的电位器来进行;

(4)第4脚:

RS为选择寄存器,指令寄存器用于低电平的时候、数据寄存器用于高电平的时候;

(5)第5脚:

信号线RW是代表读写的,写操作通常都是在低电平的时候进行,读操作通常都是在高电平的时候进行,显示地址或者写入指令就要当RS和RW均是为低电平的时候。

低电平的时候可以写入数据,必须要是当RS是高电平RW时候,高电平的时候可以读忙信号,必须要是当RS是低电平RW时候;

(6)第6脚:

E端是使能端,其作用就是当E端从高电平跳转成为低电平的时候,液晶模块会按照流程执行命令;

(7)第7~14脚:

8位双向数据线是从D0到D7;

(8)第15~16脚:

这些都是空脚;

从以上可以知道,LCD1602有16只管脚,每只都有不同的作用。

设计好电路,再通过软件编程。

当通电时候,就会启动显示屏,显示屏就会工作,就会显示外面所需要的。

图3-6LCD1602电路原理图

3.5电源模块

如图所示,该电路图是电源模块,主要负责整个电路系统的电源供应。

整个电子体温计采用的是稳压5V恒流电源。

由于这个电子体温计的电路系统的外部电源,不一定全都是系统所要求的而5V稳压电源,故需要对输入的电压进行稳压处理才行,通过处理电压,才会产生5V的电压。

并且稳压是时候,所采用的稳压的芯片是最常用的78xx系列的7805稳压芯片。

为了系统运行的稳定性,而且由于稳压芯片有波动的波形。

所以应该要对稳压之前和之后的电压进行滤波处理,处理之后的波形,才会增加电形的平滑,这时候,电子体温计整个电路系统才运行的更加稳定,可靠,不会出问题。

图3-7电源模块电路原理图

 

以下是整个电子体温计的系统电路原理图

 

图3-8电子体温计原理图

 

如图3-8所示,整个电路原理图,分有几个模块,其中主要就是有单片机模块,DS18B20温度传感器模块,显示模块和电源模块。

而其中也有些小模块,如晶振模块,报警器模块等等。

这四个大模块,不同功能,有机的结合起来,成为一个完整的整体。

第4章软件控制程序的设计

4.1DS18b20的读操作

DSl8B20的主要数据元件有:

64位激光LaseredROM,温度灵敏元件和非易失性温度告警触发器TH和TL。

DSl8B20可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。

此外,还可外接5V电源,给DSlD8B20供电。

DSl8B20的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。

DS18B20读写时序如图4-1~4-3:

图4-1DS18B20的复位时序图

图4-2DS18B20的写数据时序图

图4-3DS18B20的读数据时序图

由时序图可知,DS18B20在复位时需要480us的低电平,等待15us后MCU将总线拉高,等待DS18B20的响应信号;DS18B20在写数据时分为写“0”和写“1”操作,写“0”操作时,DS18B20需要至少60us的总线被拉低,然后在60us内将“0”写入DS18B20中,持续时间至少1us,写“1”操作是只需将写入的“0”改为“1”即可;DS18B20读操作也分为读“0”和读“1”操作,读“0”操作时,总线需要15us被拉低,再拉高45us,然后再15us内将数据读走,读“1”操作同读“0”操作。

程序流程图如图4-4:

 

图4-4DS18B20读取温度的流程图

4.2DS18b20的温度数据处理

读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。

所以先将数据提取出来,分为三个部分:

小数部分、整数部分和符号部分。

小数部分进行四舍五入处理:

大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。

当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。

还因为DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表示为负数。

图4-2为温度数据处理程序的流程图。

图4-5温度数据处理流程图

4.31602显示部分

1602的读写时序图如下:

图4-61602液晶的读时序图

 

图4-71602液晶的写时序图

第5章系统调试与测量

5.1系统调试

电子体温计系统的硬件调试一般分下面几个步骤。

第一步:

检查外部的各种元器件,看元器件是否完好无损,并且观察电路板上的电路是否有断点。

是否有漏焊,虚焊等等。

第二步:

用仪器仪表进行检测,这里主要采用万用表进行检测,先用万用表复核目测中有疑问的连接点,拐点等等,再次检测各种地线与电源线之间是否有短路、断路等不良现象。

第三步:

通电检测。

给电路PCB板通上电,检测所有器件的电源是否符合要求的值。

并且检测整个电路的功能是否能够正常运行。

第四部:

在通电工作中,观察电子体温计能否正常的测量体温,并且检查显示屏能否正常显示数据。

5.2测量数据

表5-1

测量人物

普通水银体温计

电子体温计

同学甲

36.4

36.2

同学乙

36.5

36.4

同学丙

36.6

36.6

同学丁

36.8

36.6

图5-1水银温度计

图5-2电子体温计实物图

如图5-1所示,此处采用的是原始的水银温度计来进行体温的测量,所测得的数据是36.3℃,如图5-2所示,采用本次设计的电子体温计测量同一个同学的体温,所得数据是36.8℃。

通过以上水银体温计和电子体温计比较,得出电子体温计基本符合本次设计的要求,但是还是有细小的误差。

以上数据是通过多个同学的测量,水银体温计和电子体温计均测量了几次,再将所测得的数据填入上表中,通过数据分析,电子体温计,基本符合要求,没有出现重大误差。

5.3误差分析

通过用普通水银体温计与电子体温计分别测量人体体温,得出以上几组数据。

但是仍然有细微的误差,通过分析,可以得出以下几点原因。

(1)硬件电路设计的细小误差。

由于是在制作电路板时候的微小误差,与做工精细有关。

(2)软件程序的误差。

在编程时候,一些数据,延时,有些细微的差异。

千万不要删除行尾的分节符,此行不会被打印。

“结论”以前的所有正文内容都要编写在此行之前。

课程设计心得

本次设计电子体温计终于完成了,在本次设计中,我不仅把知识融会贯通,而且丰富了大脑,同时在外观到论文的编写都是先查阅了大量资料过程中也了解了许多课外知识后确定,再经老师指导,开拓了视野。

在这次设计中,我切身感受到了使自己在专业知识方面和动手能力方面有了质的飞跃。

在此次设计过程中,我也曾遇到过困难,如软件不知如何编程、不知从何下手等种种困难。

刚开始面对课题感到迷茫,不知该从何下手,但经过老师的辅导、与自己在图书馆和网上查阅的相关资料,不断学习。

但是再编程调试过程中又遇到问题,总是出现问题,在自己耐心的调试下终于把软件这个问题解决了,最终完成了。

从中我体会到了人是越挫越勇的,只有战胜自己,才会取得成功。

通过本次课程设计,我了解到电子体温计的主要设计思路,巩固了自己所学电子科技方面的大量学科知识,也学会了诸如PROTEL99等软件的使用。

同时,也了解到电子体温计具体步骤措施、主要是对DS18B20的了解更加深入。

与此同时,更加熟悉了单片机的内部结构,对我将来的工作也有很大的作用。

 

附录1

附录2

程序代码:

/*-----------------------------------------------

------------------------------------------------*/

#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include

unsignedcharflag_get=0;

sbitDQ=P3^3;//ds18b20端口

unsignedcharTemperatureFlag=0;

/******************************************************************/

/*函数声明*/

/******************************************************************/

unsignedintReadTemperature(void);

voidInit_DS18B20(void);

unsignedcharReadOneChar(void);

voidWriteOneChar(unsignedchardat);

voiddelay(unsignedinti);

voidReadToData();

voidputchar(unsignedcharbuff);

voidDisplay();

/*------------------------------------------------

延时子程序

------------------------------------------------*/

voiddelay(unsignedintcnt)

{

EA=0;//总中断打开

cnt=cnt*2;

while(--cnt);

EA=1;

}

/******************************************************************/

/*串口初始化函数*/

/******************************************************************/

voidUARTinit(void)

{

SCON=0x50;/*SCON:

模式1,8-bitUART,使能接收*/

TMOD|=0x20;/*TMOD:

timer1,mode2,8-bitreload*/

TH1=0xFD;/*TH1:

reloadvaluefor9600baud@11.0592MHz*/

TR1=1;/*TR1:

timer1run*/

TI=1;

}

/*------------------------------------------------

主函数

------------------------------------------------*/

main()

{

P3=0XFF;

UARTinit();

InitLcd();//初始化LCD

DelayMs(15);//延时保证信号稳定

while

(1)

{

ReadToData();

Display();

}

}

/*********************************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1