便携式体温计的设计制作.doc_第1页
便携式体温计的设计制作.doc_第2页
便携式体温计的设计制作.doc_第3页
便携式体温计的设计制作.doc_第4页
便携式体温计的设计制作.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论