基于单片机的心率计设计.docx
《基于单片机的心率计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的心率计设计.docx(41页珍藏版)》请在冰豆网上搜索。
基于单片机的心率计设计
基于单片机的心率计设计(软件部分)
HeartratemeterbasedonMicroprocessordesign(software)
总计毕业设计(论文)43页
表格5个
插图13幅
摘要
测量心率计是用于测量心率值的的医疗设备,它的应用在心血管疾病的研究和诊断方面也发挥出显著的作用,它们所记录的心脏活动时的生物电信号,已成为临床诊断的重要依据。
同时,在临床监护和治疗中,医护人员常常还要关注某些特殊患者的体温随时间变化的情况。
因此,该设计设计了一个基于MCS-51单片机的心率计,采用红外线来进行检测采集人体的脉搏,利用单片机的定时/计数器,实现心率的测量。
用智能温度传感器DS18B20采集温度信号,通过单片机控制进行数字显示和语音播报。
以实现快速准确的心率和体温的。
关键词:
心率计MCS-51单片机体温计数字显示语音播报
Abstract
Heartratemeterisamedicalequipmentthatisusedtomeasurethevalueofheartrate,anditsapplicationsplayanimportantroleonstudyanddiagnosisofcardiovasculardisease,Theorganismssignalthattheyrecorded,hasbecomeasignificantfoundationofclinicaldiagnosis.Meanwhile,healthcareworkersareoftenconcernedaboutthepatient'sbodytemperatureincertainspecialcircumstancesovertimeinclinicalcareandtreatment.Therefore,wedesigneaheartratemeterwhichbasedonMCS-51microcontroller,weuseinfraredraytocapturetheheartratepulse,usingofmicrocontrollertimer/counter,toachievethemeasurementofheartrate.WeusethettemperaturesensorDS18B20tocapturetemperaturesignalandusemicrocontrollertocontraltoachievedigitaldisplayandvoicebroadcast.Inordertoachievefastandaccuratemeasurementofheartrateandbodytemperature.
Keywords:
heartratemeter;MCS-51microcontroller;Thermometer;digitaldisplay;voicebroadcast
第一章引言
1.1选题的依据及课题的意义和目的
心率是指人体心脏每分钟搏动的次数。
它是反映心脏是否正常工作的一个重要参数,同时心率值也是衡量体力劳动强度和脑力劳动强度的重要指标。
因此心率的测量是一种评价病人生理状况很好的方法。
心率计是用于测量心率值的的医疗设备,它的应用在心血管疾病的研究和诊断方面也发挥出显著的作用,它们所记录的心脏活动时的生物电信号,已成为临床诊断的重要依据。
随着现代医学的不断发展和进步,人们对各种测量仪器的要求必然越来越高,因此在前人研究的基础上我们开发并设计了一款性价比较高的电子心率计,它有利于解决了传统测量方法的不准确性和随机性,而且能够准确的测量出人体的心率,并以数字的方式显示测量结果。
这样可以使人体心率值直观化。
临床监护和治疗中,医护人员常常要关注某些特殊患者(例如对重症病人或婴幼儿)的体温随时间变化的情况。
我们通常看到在许多小型医院,测量体温只是应用最简单的水银体温计,在听取和读取两方面中多少会有点偏差,不能准确无误的摄取数据且不能以数字的方式直接读取出来,其测量时间还比较长,若看病的人比较多,则可能导致病情不能及时的得到正确的控制和治疗,而造成不必要的死亡。
此外,如果水银体温计使用时间过长,很容易引起破裂,还会给病房带来一定程度的环境污染。
因此,设计一款能将人的体温直接以数字的形式显示出来的数字体温计非常必要。
随着人们生活水平的提高,心脏疾病的发病率呈上升趋势,已成为威胁人类身体的杀手之一。
因为心脏发病的发作具有突发性和随机性,为患者实时监测心率的变化成为必然趋势。
随着电子科技的不断发展,生命科学和信息科学的结合越来越紧密,许多研究人员都投身于人类健康事业发展中。
Holter(动态心电图)的出现,使心电图机进入家庭变成了可能,但基于心电工作站的模式,使个别地区的患者因医院分析诊断系统的不健全,变得不适用;基于嵌入式及DSP的心电监护仪功能强大,但有因芯片的价格昂贵而有悖于我国基本国情,不利于家庭的普及。
水银温度计的使用让我们能更便捷监测我们身体的温度变化,然而,当我们使用不当时,它不紧不能帮我们观察自身的身体温度变化,还能造成危害我们身体的一员,例如:
当我们在测量温度时不小心把温度计打坏了,这时水银中毒成了我们最关心的一个问题了,这么不方便而又对人体能产生危害却又必不可少的工具对我们来说确实是个然人苦恼的事。
于是,一种性能优良,带有自动检测和显示心率数据功能,还兼有测温度功能,而又符合我国人均收入水平不高这一国情的心率和体温合为一体的检测仪的研制显得尤其重要。
基于这一目的,我的课题是设计一台基于单片机的心率计何体温计于一体的检测仪。
本文所介绍的可语音播报和显示被测者心率和体温多功能仪器运用51单片机技术,与采用一般的数字电路制作的心率计相比,其体积更小,抗干扰能力更强,而且单片机的可编程性使得其适应性、灵活性大大增强。
它使用方便,只需将手指或额头轻轻放在传感器上,即可实时显示出你的每分钟脉搏次数和你当时的体温温度,特别适合体育训练和外出旅游等场合使用。
采用红外光学检测法测心率,摒弃了不便于运动状态下测量脉搏的听诊器和吸附在人体上的电极等老式侧量方法,测量的原理是:
随着心脏的搏动,人体的组织半透明度随之改变,当血液送到人体组织时,组织则半透明度减小,当血液流回心脏,组织则半透明度增大,这种现象在人体组织较薄的手指尖、耳垂等部位最为明显;采用温度传感器DS18B20,解决水银温度计的不能在运动下测温的问题,同时还解决了在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差和放大电路零点漂移误差问题等技术问题,才能达到较高的测量温度的缺点,另外,DS18B20的还具有体积小、精度更高、适用电压更宽、采用一线总线、可组网等优点,DS18B20的测温原理为:
内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。
计数器设置为-55℃时的值,如果计数器到达0之前门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。
同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。
如果门电路仍然未关闭,则重复以上过程。
温度转换所需时间不超过750ms,得到的温度值的位数因分辨率不同而不同。
因此,本心率计将红外发光二极管产生的红外线照射到手指尖上,并用装在该部位的另一侧的红外光管来检测机体组织的透明程度并把它转换成电信号;将DS18B20来检测机体的温度信号。
由于红外对管检测的信号频率与人体每分钟的脉搏次数成正比,DS18B20温度传感器测出来的温度信号是经过转换后的人体温度值,故只要把脉搏信号转换成脉冲并整形、计数和显示,温度信号进行显示,即可实时的进行心率和体温的测量。
1.2研究概况及发展趋势综述
以往专门测量心率值的仪器较少,因为心率仪通常作为心电机的一部分且以前人们对心率测量的认识还不够。
目前全国正在推行新的工资制度——岗位技能工资制。
岗位技能工资制包括劳动技能、工作责任、劳动强度和劳动条件四项指标。
其中评定某个岗位劳动强度大小最有效的方法就是测定该岗位工人作业时的心率值。
但国内一直投有有效的专用心率仪,所以劳动强度测定成了当前推行岗位技能工资制的阻力。
因此,心率计的设计是十分必要的。
而且具有相当大的实用价值。
心率计也是常用的医学检查设备。
实时准确的心率测量在病人监控、临床治疗及体育竞赛等方面都有着广泛的应用。
随着医疗设备的发展及人民生活水平的提高,心率计将朝着精度高、轻型化、一体化、可视化、可控化等适合在家庭和社区条件下使用的方向发展。
体温测量的历史,可以追溯到l6世纪。
当时Saatorio用空气热膨胀的原理,制出了第一支测量口腔温度的体温计。
本世纪初,开始用水银来制作体温计,由于水银体温计使用方便、精度高,因而应用很广。
但用水银体温计进行体温监测很不方便,水银的污染也很严重等,为了正确测量局部温度,最近促使人们开发了各种不同的测温仪器和测温方法。
近年普及的电子体温计又不能获得更多的其他生理信息,精度也无多大提高,相比之下,水银体温计仍不愧是一个精度高、便宜、,使用方便的测温仪器。
尽管这样,已有许多医院采用了电子体温计,用其它电子仪器测量体温也日益普及,由于采用电子仪器,出现了新的测温方法,然而就目前的情况来看,能与水银体温计相媲美的比较完善的体温测量仪器尚未问世。
因此,与水银体温计的历史相对照,可以说以电子体温计为首的近代体温测量仪器还停留在19世纪的水平上,鉴于传统的水银体温计汞的污染及其携带不方便、易破碎,尤其是测量时间过长等缺点,本设计就此问题设计出一种新型的智能电子体温计。
它在稳定性及响应时间上比传统的水银体温计有着显著的优势,精度要求也能和传统的水银体温计相媲美。
第二章方案设计与论证
2.1方案一:
用压电陶瓷采集心电信号和用模拟温度传感器AD590J采集温度信号的心率计
2.1.1设计思路
(1)根据设计要求,选择80C51单片机为核心器件。
(2)心率值和温度值的显示采用三位一体的LED数码管。
(3)采用12位A/D转换器AD574,对采集到的信号进行A/D转换成数字信号经过P0口送入单片机处理。
(4)通过调用显示子程序和语音播报子程序来实现显示和语音播报。
2.1.2硬件设计方框图
根据设计要求与设计思路,方案一的硬件电路设计框图如图2-1所示.硬件电路结构由六部分组成,即单片机,数据采集电路,时钟与复位电路,LED显示器及驱动电路,A/D转换器和语音播报电路。
图2.1方案一的硬件电路图
2.1.3AD574芯片简介
AD574是一种快速的12位A/D转换芯片,片内有两片双极型电路组成的28脚双插直列式芯片,具备内部时钟电路,无需外接元器件就可独立完成A/D转换功能。
即可实现12位变换,也可作快速的8位转换。
转换后的数据可12位一次输出,也可按8位、4位分两次输出。
内部设有三态数据输出锁存器。
一次转换时间为25μs。
芯片引脚如图2-2所示。
图2-2芯片引脚
AD574的引脚定义如下:
REFOUT:
内部参考电源输出(+10V)。
REFIN:
参考电压输入。
BIP:
补偿调整,调整ADC输出的零点。
10VIN:
±5V或0~10V模拟输入。
20VIN:
±10V或0~20V模拟输入。
DB0~DB11:
数字量输出,高半字节为B8~DB11,低字节为DB0~DB7。
STS:
工作状态指示端。
STS=1时表示转换器正处于转换状态,STS返回到低电平时,表示转换完毕。
该信号可处理器作为中断或查询信号用。
12/-8:
变换输出字长选择控制端,在输入为高电平时,变换字长输出为12位,在低电平时,按8位输出。
-CS、CE:
片选信号。
当CS=0、CE=1同时满足时,AD574才能处于工作状态。
R/-C:
数据读出和数据转换启动控制。
A0:
字节地址控制。
它有两个作用,在启动AD574(R/C=0)时,用来控制转换
长度。
A=0时,按完整的12位A/D转换方式工作,A=1时,则按8位A/D转换方式工作。
在AD574处于数据读出工作状态(R/-C=1)时,A0和12/8成为输出数据格式控制。
DGND:
数字公共端(数字地)。
AGND:
模拟公共端(模拟地)。
表1.1为AD574控制信号状态表。
表2.1AD574控制信号状态表
2.2方案二:
采用数字温度传感器DS18B20采集温度信号和用红外对管采集心电信号
2.2.1.设计思路
(1)在该方案中我们同样选择80C51单片机为核心器件。
(2)用温度传感器DS18B20采集的温度信号和用红外对管采集的心电信号直接送入单片机处理。
(3)通过调用显示子程序和语音播报子程序来实现显示和语音播报。
2.2.2.硬件设计方框图
方案二的硬件设计方框图如图2.2所示
图2.2方案二的硬件方框图
2.3方案比较论证
方案一采用的是模拟数据采集传感器,由于单片机只能处理数字信号,因此必须有A/D转换器将模拟信号转换成数字信号才能送入单片机精选出理。
机的另外方案一的软件设计较复杂,增加了A/D转换这部分程序。
显然方案二比方案一简单得多,由于采集到的信号经传感器后,信号本身成了数字信号,可直接送入单片机进行处理,省去了A/D电路。
既简化了硬件电路也省下了A/D转换部分的编程。
综上所叙,本设计将采用方案二。
第三章硬件电路的简单概述
3.1心率计设计的原理
本心率计摒弃了不便于在运动状态下测量脉搏的听诊器和吸附在人体上电
极等老式测量方法,采用红外光学检测法。
其基本检测原理为:
人体组织半透明度
随着心脏的搏动而改变,当心脏通过动脉将血液送到人体组织时,该部分组织的半透明度减小;当心脏将血液压出该部分组织时则半透明度增大,这种现象在人体组织较薄的手指尖、耳垂等部位最为明显。
因此,本心率计用红外发光二极管产生的红外线照射上述部位,并用装在该部位另一侧或旁边的红外光电管来检测机体组织的透明度并转换成电信号。
由于此信号的频率与人体每分钟的脉搏次数成正比,故只要将它转换成脉冲信号并进行整形、计数和显示,即可实时地测出人体每分钟的脉搏次数。
根据设计要求,该设计采用80C51作为控制CPU,外围器件包括数字温度传感器DS18820,光电对管,ZY1420A语音模块,译码器,锁存器,放大器等等。
本作品采用总线控制方式,显示采用三位静态数码显示。
用数字温度传感器DS18820来采集温度信号,采集到的心电信号从P1.0口送入单片机处理;用光电对管来采集心电信号,采集到的信号还需经过放大,滤波,倍频的一系列处理,处理后的信号最后经P3.5口送入单片机进行控制。
在该设计中,我们对心电信号进行了100倍频处理,原因是心电信号的频率很低,如果不经过倍频处理,测量就需较长的时间,效率很低。
根据心率的定义:
心率值N=60f。
因此经过100倍频后,心率值的表示就可表示成N=0.6f。
采用广州志远电子有限公司出品的优质微型语音录放模块ZY1420。
ZY1420内部使用ISD1420作为主控芯片,且具备ISD1420D的全部优良性能,ZY1420使用有专利技术的模拟处理存储方式,使录放音质极佳,没有常见的背景噪音,且电路断电后语音内容仍不会丢失。
作品经测试,使用此语音模块,完全可以清晰播报当前温度值。
3.2硬件电路图
经过反复构思、研究、论证和修改,最后的硬件电路图如图3.1所示
图3.1硬件电路图
第四章程序设计
4.1主程序设计
程序的功能:
可以通过对P1.1口的检测其高低电平实现温度数据和心电信号的采集,转换和处理,最后用数码管显示心率值和温度值;同时还可以调用语音播报子程序对温度值和心率值进行语音播报。
主程序流程图的设计是整个设计的关键一步,它是我们设计思路的具体体现。
有了主程序流程图,我们就可以根据把一个复杂的软件设计分解为若干个功能模块,然后逐一设计各个模块的功能。
在主程序设计中我们先初始化,包括显示模块初始化等,然后通过判断P1.1是高电平还是低电平来实现是测量体温还是测量人体的心率值。
4.1.1主程序流程图
图4-1主程序流程图
****************************************************************
主程序的功能主要是通过对P1.1的判断,选择调用测温程序还是测心率程
序,在调用显示子程序和语音播报子程序以实现数字显示和语音播报
****************************************************************
org0000h
ljmpmain
org0030h
main:
lcallpr0;清屏
lcallpctc;定时器/计数器初化
lcallpram;ram区初始化
movsp,#80h
movr1,#03h
movr2,#00h
stebp3.2
lcallloop
lcalldis_int;调用子显示子程序
lcallplay1;调用语音播报子程序
4.1.2语音模块ZY1420A功能简介
ZY1420A主要有三个功能:
录音、电平控制放音和脉冲触发放音。
1.录音子程序
控制录音主要有两个数据:
1、录音的开始地址;2、录音的时间。
把这两个数据都控制了就可以控制录音时把声音录到哪几段里头。
注意:
REC信号将被延迟50ms防止开关抖动引起重复触发。
在调用录音子程序时只要给出录音的开始地址和需要录音的时间就可以了。
2.电平控制放音子程序
电平控制放音中,开始地址和播放时间也是必不可少的,只要控制了这两个参数就可以确定播出内容。
不过需要注意的是播放的时候总是从一段的开头开始播放的。
当需要分段播放控制时,录音时每一个内容的开头必须从一个段的开头开始。
在调用电平控制放音子程序时只要给出放音的开始地址和放音的时间就可以了
3.脉冲触发放音子程序
脉冲触发放音与电平控制放音有些不同,脉冲触发放音不能够由单片机来控制放音的时间,只能够控制放音的开始地址。
脉冲触发放音开始后就一直播放到遇到结束符或语音芯片的尽头,所以一般在分段语音控制里头不常用脉冲触发。
在调用脉冲触发放音子程序时只要给出放音的开始地址就可以了。
4.2体温测量程序的设计
单片机数字显示体温测量的软件设计程序主要由主程序、温度测量子程序、温度转换子程序,温度值显示和语音播报。
4.2.1DS18B20的简述
在本设计中,用DS18B20采集温度信号,可以直接将模拟信号转换为数字信号,简化了硬件电路。
但所有的DS18B20器件要求采用严格的通信协议,以保证数据的完整性。
因此掌握DS18B20的通信协议是使用该器件的关键。
4.2.1.1DS18B20的命令集
1、ROM操作命令如下表4.1所示:
指令
说明
读ROM命令(33H)
读18B20的序列数
搜索ROM命令(F0H)
识别总线上各器件的编码
匹配ROM命令(55H)
用于多个DS18B20的定位
跳过ROM命令(CCH)
此命令执行后,存储器操作将针对总线上的所有器件
报警搜索ROM命令(ECH)
仅温度超限的器件对此命令做出响应
2、RAM操作命令如下表所示:
指令
说明
温度转换(44H)
启动温度转换
读暂存器(BEH)
读全部暂存器内容,包括CRC字节
写暂存器(4EH)
写暂存器第2、3、4个字节的数据
复制暂存器(48EH)
将暂存器中的TH、TL和配器内容复制到EEPROM中
读EEPROM(B8H)
将TH、TL和配置寄存器内容从EEPROM中回读至暂存器
4.2.1.2.DS18B20的通信协议
DS18B20的通信协议定义了几种信号类型:
复位脉冲,应答脉冲时隙;写0、写1时隙;读0时隙、读1时隙。
与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。
发送所有的命令和数据时,都是字节的低位在前,最高位在后。
1、复位和应答脉冲时隙
每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。
在每一个时隙,总线只能传输一位数据。
2、写时隙
当主机将单总线DQ从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。
所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us的恢复时间。
在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之内释放总线。
3、读时隙
DS18B20器件仅在主机发出读时隙时,才向主机传输数据。
所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。
所有读时隙至少需要60us。
且在两次独立的读时隙之间,至少需要1us的恢复时间。
每个读时隙都由主机发起,至少拉低1us。
在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1.若DS18B20发送1,则保持总线为高电平。
若发送0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至空闲高电平状态。
DS18B20发出的数据,在起始时隙之后保持有效时间15us.因而主机在读时隙期间,必须释放总线。
并且在时隙起始后的15us之内采样总线状态。
4.2.2体温测量程序设计
在程序中首先初始化,检测DS18B20是否存在,然后通过调用读温度子程序读出DS18B20的当前值,调用温度转换主程序把从DS18B20中读出的值转换成对应的温度,调用显示子程序把温度值在数码管的相应位置进行显示,然后调用语音播报主程序实现温度的播报。
体温测量程序如程序流程图4-2所示:
图4-2体温测量程序流程图
********************************************************************
在体温测量程序中,初始化后,通过调用测温子程序,温度转换子程序,显示子程序,语音播报子程序以获得BCD码的体温数据。
********************************************************************
temper_leuq36h
temper_heuq35h
temper_numeuq33h
flageuq0d5h
dqeuqp1.0
skipds18b20euq0cch
startds18b20euq44h
readdseuq0beh
movsp,#60h
clrea
lcallre_config;重写ds18b20暂存存储器设定值
lcallwritebyteds18b20
lcallreadbyteds18b20
lcalltemper_cov;调用温度转换程序
lcalldis_int;调用子显示子程序
lc