便携式体温计的设计制作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(二) 温度阈值输入 程序输入:数码管由单片机控制实时显示当前温度,温度阈值默认为 37.5 摄氏度。 手动输入:在按下阈值输入按键时,可通过手动按动温度阈值按键,分别改变温度阈值的十位、个 位、十分位、百分位,设置结束后,再次按下阈值输入按键,数码管实时显示当前温度,且在温度值超 过阈值时报警。
(三) 数码管温度显示 系统采用四位七段共阴数码管显示温度的十位、个位、十分位、百分位,显示范围-55.0℃~125.0℃, 对采集到的电路进行同时显示,采用动态循环扫描方式。
(六) 液晶显示屏温度显示 显示元件采用 LCD1602 液晶显示屏,液晶显示器(lcd)是现在非常普遍的显示器,可在单片机控制下 实时显示温度值和提示语言。它具有体积小、重量轻、省电、辐射低、易于携带等优点。。液晶显示器的 工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;不通电时, 排列则变得混乱,阻止光线通过。系统中的液晶显示屏为双行显示,第一行显示提示语言:The temperature is:,第二行显示精确到小数点后两位的温度值。
(三)无线传输程序 采集温度信息发送的基本软件实现方法是:在待机状态下,通过 SPI 端口完成对配置寄存器进行工作频 率、输出功率、收发数据地址信息、CRC 校验等工作状态的设置后,待机状态下输入对方地址和待发送数据 (待 发送数据可以参考按键信息采集的软件实现方法获得,发送的数据为无符号字符型变量 num),将 TRX-CE 置 1,启动发送模式,这一过程至少应保持 10us 以上。发送的数据报头和 CRC 处理等过程都是由 nRF905 片内自 动完成的,保证了无线通信的有效性和准确性。数据发送完成后(DR=1),进入待机状态准备下一次的数据发 送。设计增加了对 num 信息的判断,当 num 数值改变时才进入信息发送状态,num 数值不改变始终处于待机状 态,这样便于系统减少耗能。 温度信息接收部分的基本软件实现编程方法是:在待机状态下,通过 SPI 端口完成对配置寄存器进行工 作频率、输出功率、收发数据地址信息、CRC 校验等工作状态的设置后,由待机状态进入接收态,nRF905 可以
图 3 DS18B20 测温流程图
(二)显示程序 本系统中,包括四位七段数码管显示和液晶显示屏显示。一般情况下,四位数码管显示当前一路温 度,在手动设定温度阈值时,显示阈值。液晶显示屏显示英文提示语言和温度数值。系统将 DS18B20 采 集温度值、温度转换、无线传输和串口通信采用动态循环扫描的显示方式,达到同步显示的效果。
{
uchar i;
//Config905();
CSN=0;
SpiWrite(WTP);
// Write payload command
for (i=0;i<4;i++)
{
SpiWrite(TxRxBuf[i]);
// Write 32 bytes Tx data
}// Spi enable for write a spi command
(七) 串口电路 电路与单片机连接使用,使用 MAX232 实现接口电平转换,使用 RS232 实现串口通信。将单片机处理 的温度数值,通过 MAX232 和 RS232 与电脑连接,使用曲线显示软件在电脑上实时显示温度曲线。
四.系统软件设计
系统软件采用 C 语言编写,对指令的运行时间进行了精确计算和设计,保证软件的可靠性和稳定 性。系统主程序框图如图 2 所示,本文主要讨论温度显示与无线传输两个模块。
实现对空中无线信号的载波、地址、CRC 校验等信息的检测,判断接收到本站信号(DR=1)时通知单片机读取接 收的正确信息。此时,主机令 TRX_CE=0 进入待机状态便于读去采集到的信号,由 nRF905 片内自动去除报头和 CRC 处理等附加传送信息,得到 num 数值用于 LCD 显示的信号。而后,单片机再次驱动 nRF905 工作在接收状 态,循环反复,不断收集有用信号。
关键词: AT89C51 单片机、无线传输技术、体温计 一.引言
目前,体温计主要有水银体温计、电子体温计等。水银体温计利用液体热胀冷缩的特性制成,灵敏度、 精确度偏低,易破碎,不易读数,测量时间较长,并且在测量体温时,使用者的行动受限。现有的电子体 温计价格昂贵、寿命较短、精度准确度受电子元件及电池供电状况等因素影响。最重要的是,尚未有可以 无线传输的系统体温计,以适用于医院等对病人体温的连续观测。我们针对现有体温计携带不方便,精度 不高,不能无线传输的不足,利用单片机与无线传输技术制作了便携式体温计。其主要功能有:
三.硬件介绍
根据该课题的功能要求,采用 AT89C51 单片机为核心。便携式体温计的总体布局如图 1。 (一) 温度测量电路
测温元件采用 DS18B20(DALLAS 的单线数字温度传感器)。DS18B20 提供九位温度读数,测量范围-55℃ ~125℃,采用独特 1-WIRE 总线协议,只需一根口线即实现与 MCU 的双向通讯,具有连接简单,高精度, 高可靠性等特点。在工作时,通过总线向其提供电源,单片机发出指令码读取温度值。
一.实验成果效果图
附录:
二.硬件实现
三.程序摘要
(一)发送部分的程序摘要
ReadTemperature (void)//DS18B20 温度读出
{பைடு நூலகம்
Init_DS18B20(); //初始化
WriteOneChar(0xcc); //跳过读序列号的操作
WriteOneChar(0x44); //启动温度转换
指导老师:张鹏彦
摘 要:本系统以 AT89C51 单片机为核心,构成无线传输装置的两端:测温端与显示端。整个系统
主要由单片机最小系统、测温电路、数码管显示电路、报警电路、温度阈值手动输入电路、无线发送电 路、无线接收电路、液晶显示电路、串口通信电路等模块组成。测温端使用 DS18B20 温度传感器测量当 前温度,通过单片机处理在数码管上实时显示精确到小数点后两位的温度值。温度阈值默认为 37.5 摄氏 度,在按下阈值输入按键时,可通过手动输入温度阈值,再次按下阈值输入按键,温度实时显示,且在 温度值超过阈值时报警。同时,测温端将温度信号通过无线发送电路发送出去,显示端接收到温度信号 后,经单片机处理,在液晶显示屏上实时显示出当前温度,并通过串口将温度值传到电脑上,在电脑上 上显示温度曲线。此设计实现了温度的实时测量,温度阈值的手动、程序双输入,温度超阈值报警,温 度的远程监控,电脑上温度曲线的实时显示等功能。
4 结束语
本项目提出了一种基于射频芯片 nRF905 的无线数据采集系统的设计方案,并从硬件和软件两个方面较详 细地介绍了系统的相关技术要点和设计开发过程,实现了对温度信息进行采集的无线数据采集系统。本文的 创新点在于利用 nRF905 作为无线收发模块,利用 DS18B20 作为温度数据采集,简化了电路设计并给出了通信 协议和温度采集的软件设计过程。
项目类别 A
立项编号 09160
大学生科研作品立项项目成果
项目名称:
便携式体温计的设计制作
项目负责人:
徐伟伟
项目合作者: 刘金锁 杨孟 苗金水 汤家佳 何双
所在院系:
空间科学与应用物理学院
专业年级:
2007 级应用物理专业
山东大学威海分校 大学生科技创新中心
便携式体温计的设计制作
徐伟伟 刘金锁 杨孟 苗金水 汤家佳 何双 (空间科学与应用物理学院 07 级本科生)
使用温度传感器实时测量温度,一方面,数据经单片机处理后在数码管显示器上实时显示出温度值, 精确到小数点后两位,阈值温度默认为 37.5 摄氏度,同时温度阈值可以手动输入,在测量的温度值超过 阈值温度时报警;另一方面,单片机将温度信号通过无线传输芯片,传到另一个位置的无线接收电路中, 无线接收芯片将数据传输给工作的单片机,使温度在液晶显示屏上显示出来。同时,单片机将信号通过 串口与电脑通信,在电脑上实时显示温度曲线,并在温度超过设定的温度值时报警。
此次实验中,我们组的六个人齐心尽力,分工合作,尽最大努力完成项目。每次使用一个新的芯片时, 我们小组成员都会组织芯片资料的查询、阅读,然后是使用方法和编程的设计,最复杂的是调试阶段,硬件 和软件都有可能出现各种问题,导致程序不工作。小组成员每个芯片的使用方法,硬件的电路连接图,软件 的设计,PROTUES 模拟软件的调试等多个方面着手,充分利用图书馆资源和网上资源,与单片机发烧友们一 起讨论,反复、繁琐、无聊的调试后的收获让我们欣喜不已。这次科研立项,给我们带来的不仅是最后的成 果,更重要的是一份老师、组员赋予的责任,一份将项目进行到底的坚持,一份孤注一掷的理念。作为物理 学院的学生,在以后自己做项目的时候,这次经历将是一笔宝贵的财富,指导我们坚持与前进。
(一)测量温度和实时显示温度; (二)温度超阈值报警; (三)温度阈值手动程序双输入; (四)温度无线传输与远程显示; (五)在电脑上实时显示温度曲线。
二.作品介绍
便携式温度计包括测温系统、温度实时显示与报警系统、无线传输系统、单片机与电脑通信的串口 程序及电脑显示温度曲线的显示系统组成,测温系统、温度实时显示系统及无线传输系统均与单片机相 连,温度数据经无线传输,到达远处的无线接收端,无线接收器与另一个单片机相连,此单片机通过串 口与电脑连接。
delay(125); //转换需要一点时间,延时
Init_DS18B20(); //初始化
WriteOneChar(0xcc); //跳过读序列号的操作
WriteOneChar(0xbe); //读温度寄存器(头两个值分别为温度的低位和高位)
tempL=ReadOneChar(); //读出温度的低位 LSB
(四) 报警电路 由连接在单片机的一个引脚的蜂鸣器实现,当温度高于设定温度阈值时,单片机通过控制蜂鸣器的 通断,来达到报警的功能。
(五) 无线发送、接收电路 使用 nRF905 无线传输模块实现无线发送、接收功能,最高工作速率 50kbps,高效 GFSK 调制,抗 干扰能力强,内置硬件 CRC 检错和点对多点通信地址控制,低功耗 1.9 - 3.6V 工作,待机模式下状态 仅为 2.5uA ,收发模式切换时间 < 650us,模块可软件设地址,只有收到本机地址时才会输出数据。将 温度传感器的温度数据取出后,在无线发送模块打包后发出,并编辑无线信号的频率和接收地址;无线 接收模块在收到本机地址时,将数据解包、处理,完成温度的无线传输功能。
(一) 测温程序
温度信息采集的基本软件实现方法是:单片机向 DS18B20 发 出温 度 变 换命 令 ,DS18B20 更新温度采集信息并 存储起来,待主机发出读取温度命令,可分别赋予一无符 号整型温度信息的低位和高位,通过整型合成、进制转换、 四舍五入等计算可获得扩大了百倍的真实的十进制温度 值,分离该值的千位、百位、十位、个位,分别作为四位数 码管显示的段选信号(其中十位作带小数点显示),数码管 采用动态显示的方法,在每位作多次短暂显示。同时判断 温度数值,在大于设定温度阈值的情况下,驱动蜂鸣器工 作,产生报警信号。每隔一段短暂的时间重复一次上述操 作,可以较及时获取不同时刻的温度信息,数码管显示温 度连续变化。温度信息为一无符号整型数据,需要用两字 节来传送,温度信息转换成显示用的数值还需要经过一些 计算转换。
tempH=ReadOneChar(); //读出温度的高位 MSB
temperature=((tempH*256)+tempL)*0.0625*100; //温度转换,把高低位做相应的运算转化为实际温度
delay(200); return(temperature); } void TxPacket(uchar *TxRxBuf) //nRF905 打包程序
CSN=1;
Delay(1);
// Spi disable
CSN=0;
// Spi enable for write a spi command
SpiWrite(WTA);
// Write address command
for (i=0;i<4;i++)
// Write 4 bytes address
相关文档
最新文档