脉搏心率测量仪在我们的日常生活中已经得到了非常广泛的应用。为了提高脉搏心率测量仪的简便性和精确度,本课题设计了一种基于52单片机的脉搏心率测量仪。系统以STC89C52单片机为核心,以红外反射式传感器ST188为检测原件,并利用单片机系统内部定时器来计算时间,由红外反射式传感器ST188感应产生脉冲,单片机通过对脉冲累加得到脉搏心率跳动次数,时间由定时器定时而得。系统运行中能显示脉搏心率次数和时间,系统停止运行时,能够显示总的脉搏心率次数和时间。经测试,系统工作正常,达到设计要求。 关键词:脉搏心率测量仪;STC89C52单片机;红外反射式传感器
Abstract
Pulse meter in our daily life have got the very extensive application.In order to improve the simplicity and accuracy of the apparatus used to measure the pulse, this topic has designed a pulse measuring instrument based on 52 microcontroller.System with STC89C52 single-chip microcomputer as the core, with original ST188 infrared reflection type sensor for the detection, and use the single chip microcomputer system internal timer to measure time, pulse generated by the reflecting type of infrared sensor ST188 induction, microcontroller pulse is obtained by the pulse accumulation number, time by the timer timing.System can display the pulse frequency and time, the system stops running, can display the total pulse frequency and time.After the test, the system works well, to meet the design requirements. Keywords:
The
pulse
measuring
instrument;STC89C52
single-chip
microcomputer;The infrared reflection type sensor
目 录
摘 要................................................................ Abstract............................................................ I 第1章 概述......................................................... 0
1.1 选题的背景和意义 ............................................ 0 1.2 脉搏心率测量仪的发展与应用 .................................. 1 第2章 脉搏心率测量仪系统结构....................................... 3
2.1 光电脉搏心率测量仪的结构 .................................... 3 2.2工作原理..................................................... 4 2.3光电脉搏心率测量仪的特点..................................... 4 第3章 硬件系统..................................................... 6
3.1 控制器 ...................................................... 6
3.1.1 STC89C52 简介.......................................... 6 3.1.2 STC89C52 的特点........................................ 6 3.1.3 STC89C52 的结构........................................ 7 3.2脉搏心率信号采集............................................. 9
3.2.1光电传感器的原理 ...................................... 10 3.2.2光电传感器的结构 ...................................... 10 3.2.3 光电传感器检测原理.................................... 11 3.2.4信号采集电路 .......................................... 11 3.3信号放大.................................................... 12
3.3.1放大器的介绍 .......................................... 12 3.3.2 放大电路.............................................. 13 3.4 波形整形电路 ............................................... 14 3.5单片机处理电路.............................................. 16 3.6 显示电路 ................................................... 16
3.6.1 LCD1602 的综述........................................ 18 3.6.2 LCD1602 的结构........................................ 18 3.6.3 LCD1602指令集 ........................................ 18 3.6.4 脉搏心率测量仪电路原理图.............................. 20
第4章 软件系统.................................................... 23
4.1 主程序流程: ............................................... 23 4.2 定时器中断程序流程: ....................................... 23 4.3 INT中断程序流程:.......................................... 24
4.4 显示程序流程: ............................................. 25 4.5 软件说明 ................................................... 26 第五章 抗干扰措施及使用方法........................................ 26
5.1抗干扰措施.................................................. 26
5.1.1环境光对脉搏心率传感器测量的影响 ...................... 26 5.1.2电磁干扰对脉搏心率传感器的影响 ........................ 27 5.1.3 测量过程中运动噪声的影响.............................. 27 5.2测量仪使用方法.............................................. 27 第6章 系统调试.................................................... 29
6.1 系统调试 ................................................... 29 6.2 系统检验 ................................................... 30 6.3 误差分析 ................................................... 31 第七章 总结与展望.................................................. 33 参考文献........................................................... 35 附 录............................................................ 37 致 谢............................................................ 43
第1章 概述
1.1 选题的背景和意义
脉搏心率携带有丰富的人体健康状况的信息,自公元三世纪我国最早的脉学专著《脉经》问世以来,脉学理论得到不断的发展和提高。在中医四诊(望、闻、问、切)中,脉诊占有非常重要的位置。脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中医“整体观念”、“辨证论证”的基本精神的体现与应用。脉诊作为“绿色无创”诊断的手段和方法,得到了中外人士的关注。但由于中医是靠手指获取脉搏心率信息,虽然脉诊具有简便、无创、无痛的特点易为患者接受,然而在长期的医疗实践中也暴露出一些缺陷。首先,切脉单凭医生手指感觉辨别脉象的特征,受到感觉、经验和表述的限制,并且难免存在许多主观臆断因素,影响了对脉象判断的规范化;其次,这种用手指切脉的技巧很难掌握;再则,感知的脉象无法记录和保存影响了对脉象机理的研究。脉诊的这种定性化和主观性,大大影响了其精度与可行性,成为中医脉诊应用、发展和交流中的制约因素。为了将传统的中医药学发扬光大,促进脉诊的应用和发展,必须与现代科技相结合,实现更科学、客观的诊断[1]。
医院的护士每天都要给住院的病人把脉记录病人每分钟脉搏心率数,方法是用手按在病人腕部的动脉上,根据脉搏心率的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。为了提高脉搏心率测量的精确与速度,多种脉搏心率测量仪被运用到医学上来,从而开辟了一条全新的医学诊断方法。
早在1860年Vierordt 创建了第一台杠杆式脉搏心率描记仪,国内20世纪50年代初朱颜将脉搏心率仪引用到中医脉诊的客观化研究方面。此后随着机械及电子技术的发展,国内外在研制中医脉象仪方面进展很快,尤其是70年代中期,国内天津、上海、江西等地相继成立了跨学科的脉象研究协作组,多学科共同合作促使中医脉象研究工作进入了一个新的境界。脉象探头式样很多,有单部、三部、单点、多点、刚性接触式、软性接触式、气压式、硅杯式、液态汞、液态水、子
母式等组成,脉象探头的主要原件有应变片、压电晶体、单晶硅、光敏元件、PVDF压电薄膜等,其中以单部单点应变片式为最广泛,不过近年来正在向三部多点式方向设计[2]。
目前脉搏心率测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测、妊高症检测、中医脉象、脉率检测等等,商业应用也不断拓展,如运动、健身器材中的心率测试都用到了技术先进的脉搏心率测量仪。
1.2 脉搏心率测量仪的发展与应用
随着科学技术的发展,脉搏心率测量技术也越来越先进,对脉搏心率的测量精度也越来越高,国内外先后研制了不同类型的脉搏心率测量仪,而其中关键是对脉搏心率传感器的研究。起初用于体育测量的脉搏心率测试集中在对接触式传感器的研究,利用此类传感器所研制的指脉、耳脉等测量仪各有其优缺点。指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降:耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确[3]。过去在医院临床监护和日常中老年保健中出现的日常监护仪器,如便携式电子血压计,可以完成脉搏心率的测量,但是这种便携式电子血压计利用微型气泵加压橡胶气囊,每次测量都需要一个加压和减压的过程,存在体积庞大、加减压过程会有不适、脉搏心率检测的精确度低等缺点。
近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。
其中光电式脉搏心率传感器是根据光电容积法制成的脉搏心率传感器,通过对手指末端透光度的监测,间接检测出脉搏心率信号。具有结构简单、无损伤、精度高、可重复使用等优点。通过光电式脉搏心率传感器所研制的脉搏心率测量仪已经应用到临床医学等各个方面并收到了理想效果。
人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,是血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播,这种波成为脉搏心率波[4]。从脉搏心率波中提取人体的心理病理信息作为临床诊断和治疗的依据,历来都受到中
外医学界的重视。脉搏心率波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏心率波采集和处理具有很高的医学价值和应用前景[5]。但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏心率波信号更是低频微弱的非电生理信号,因此必需经过放大和后级滤波以满足采集的要求。
第2章 脉搏心率测量仪系统结构
脉搏心率测量仪的设计,必须是通过采集人体脉搏心率变化引起的一些生物信号,然后把生物信号转化为物理信号,使得这些变化的物理信号能够表达人体的脉搏心率变化,最后要得出每分钟的脉搏心率次数,就需要通过相应的硬件电路及芯片来处理物理变化并存储脉搏心率次数。在硬件设计中一般的物理信号就是电压变化,有了这个系统的设计思路,本课题就此开始实施。
2.1 光电脉搏心率测量仪的结构
光电脉搏心率测量仪是利用光电传感器作为变换原件,把采集到的用于检测脉搏心率跳动的红外光转换成电信号,用电子仪表进行测量和显示的装置。本系统的组成包括光电传感器、信号处理、单片机电路、LCD显示电路、电源等部分。 1.光电传感器
即将非电量(红外光)转换成电量的转换元件,它由红外发射二极管和红外接收三极管组成,它可以将接收到的红外光按一定的函数关系(通常是线性关系)转换成便于测量的物理量(如电压、电流或频率等)输出。 2.信号处理
即处理光电传感器采集到的低频信号的模拟电路(包括放大、滤波、整形等)。 3. 单片机电路
即利用单片机自身的定时中断计数功能对输入的脉冲电平进行运算得出心率(包括STC89C52、外部晶振、外部中断等)。 4.LCD显示电路
即把单片机计算得出的结果用LCD1620显示出来,便于直接准确无误的读出数据。 5. 电源
即向光电传感器、信号处理、单片机提供的电源,采用直流5V电源供电。
2.2工作原理
本设计采用单片机STC89C52为控制核心,实现脉搏心率测量仪的基本测量功能。脉搏心率测量仪硬件框图如下图2.1 所示:
图 2.1 脉搏心率测量仪的工作原理
晶振电路 +5V电源 复位电路 STC89C52主控制器 ST188红外反射传感器 放大、整形电路 LCD1602显示电路 当手指放在红外线发射二极管和接收二极管中间,随着心脏的跳动,血管中血液的流量将发生变换。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收二极管的电流也跟着改变,这就导致红外接收二极管输出脉冲信号。该信号经放大、滤波、整形后输出,输出的脉冲信号作为单片机的外部中断信号。单片机电路对输入的脉冲信号进行计算处理后把结果送到LCD1602显示。
2.3光电脉搏心率测量仪的特点
与传统的脉搏心率测量仪相比,光电式脉搏心率测量仪具有以下特点: 1. 测量的探测部分不侵入机体,不造成机体创伤,通常在体外。 2. 传感器可重复使用且速度快,精度高。 3. 测试的适用电压为5V的直流电压。 4. 稳定性好、磨损小、寿命长、维修方便。
5. 由于结构简单,因此体积小、重量轻、性价比优越。 6. 测量的有效范围为50次-199次/分钟。
第3章 硬件系统
3.1 控制器
本系统基于52系列单片机来实现,因为系统没有其它高标准的要求,我们最终选择了STC89C52通用的比较普通单片机来实现系统设计。
3.1.1 STC89C52 简介
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM, MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
3.1.2 STC89C52 的特点
·与MCS-51产品指令系统完全兼容 ·4k字节可重擦写Flash闪速存储器 ·1000次擦写周期
·全静态操作:OHz--24MHz ·三级加密程序存储器 ·128*8字节内部RAM ·32个可编程I/O口线 ·2个16位定时/计数器
·6个中断源
·可编程串行UART通道 ·低功耗空闲和掉电模式
3.1.3 STC89C52 的结构
此次设计所使用的STC89C52 的封装形式是DIP40。如图3.1 所示。
图3.1 STC89C52 的封装形式
引脚功能: ·Vcc:电源电压 ·GND:接地
·P0口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗转入端用。
·Pl口:P1是—个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电萌。
·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,
某个引脚被外部信号拉低时会输出一个电流。
·P3口::①可以作为输入/输出口,外接输入/输出设备。②作为第二功能使用,每一位功能定义如表3.1 所示。
表3.1 P3 口的第二功能
·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振器频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。 ·PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时.每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。 ·EA/VPP:EA =0,单片机只访问外部程序存储器。EA =1,单片机访问内部程序存储器。
.XTALI:振荡器反相放大器的及内部时钟发生器的输入端。 .XTAL2:振荡器反相放大器的输出端。
3.2脉搏心率信号采集
目前脉搏心率波检测系统有以下几种检测方法:光电容积脉搏心率波法、液体耦合腔脉搏心率传感器、压阻式脉搏心率传感器以及应变式脉搏心率传感器。近年来, 光电检测技术在临床医学应用中发展很快, 这主要是由于光能避开强烈的电磁干扰, 具有很高的绝缘性, 且可非侵入地检测病人各种症状信息,具有结构简单、无损伤、精度高、可重复好等优点[6]。用光电法提取指尖脉搏心率光信息受到了从事生物医学仪器工作的专家和学者的重视。
3.2.1光电传感器的原理
根据朗伯一比尔(Lamber—Beer)定律,物质在一定波长处的吸光度和他的浓度成正比。当恒定波长的光照射到人体组织上时,通过人体组织吸收、反射衰减后,测量到的光强将在一定程度上反映了被照射部位组织的结构特征[7]。
脉搏心率主要由人体动脉舒张和收缩产生的,在人体指尖组织中的动脉成分含量高,而且指尖厚度相对其他人体组织而言比较薄,透过手指后检测到的光强相对较大,因此光电式脉搏心率传感器的测量部位通常在人体指尖。
手指组织可以分成皮肤、肌肉、骨骼等非血液组织和血液组织,其中非血液组织的光吸收量是恒定的,而在血液中,静脉血的搏动相对于动脉血是十分微弱的,可以忽略。因此可以认为光透过手指后的变化仅由动脉血的充盈而引起的,那么在恒定波长的光源照射下,通过检测透过手指的光强将可以间接测量到人体的脉搏心率信号[7]。
3.2.2光电传感器的结构
传感器由红外发光二级管和红外接收三极管组成。采用GaAs红外发光二极管作为光源时,可基本抑制由呼吸运动造成的脉搏心率波曲线的漂移。红外接收三极管在红外光的照射下能产生电能,它的特性是将光信号转换为电信号。
从光源发出的光除被手指组织吸收以外,一部分由血液漫反射返回,其余部分透射出来。光电式脉搏心率传感器按照光的接收方式可分为透射式和反射式2种[8]。其中透射式的发射光源与光敏接收器件的距离相等并且对称布置,接收的是透射光。反射式的发射光源与光敏接收器件。因此本系统采用了反射式光电传感器。结构如图3.2所示。
图3.2 反射式光电传感器
3.2.3 光电传感器检测原理
检测原理是: 随着心脏的搏动,人体组织半透明度随之改变:当血液送到人体组织时,组织的半透明度减小,当血液流回心脏,组织半透明度则增大;这种现象在人体组织较薄的手指尖、耳垂等部位最为明显[5]。因此本设计将红外发光二极管产生的红外线照射到人体的手指部位,经过手指组织的反射和衰减由装在该部位旁边的光敏三管来接收其透射光并把它转换成电信号。由于手指动脉血在血液循环过程中呈周期性的脉动变化,所以它对光的反射和衰减也是周期性脉动的, 于是红外接收三极管输出信号的变化也就反映了动脉血的脉动变化。故只要把此电信号转换成脉冲并进行整形、计数和显示[9],即可实时的测出脉搏心率的次数。
3.2.4信号采集电路
图3.3是脉搏心率信号的采集电路,U2是红外发射和接收装置,由于红外发射二极管中的电流越大,发射角度越小,产生的发射强度就越大,所以对R10阻值的选取要求较高。R10选择470Ω同时也是基于红外接收三极管感应红外光灵敏度考虑的。R21过大,通过红外发射二极管的电流偏小,红外接收三极管无法区别有脉搏心率和无脉搏心率时的信号。反之,R21过小,通过的电流偏大,红外接收三极管也不能准确地辨别有脉搏心率和无脉搏心率时的信号。当手指离开传感器或检测到较强的干扰光线时,输入端的直流电压会出现很大变化,为了使它不致泄露到LM358输入端而造成错误指示,用C4耦合电容把它隔断[10]。
当手指处于测量位置时,会出现二种情况:一是无脉期。虽然手指遮挡了红外发射二极管发射的红外光,但是由于红外接收三极管中存在暗电流,会造成输出电压略低。二是有脉期。当有跳动的脉搏心率时,血脉使手指透光性变差,红外接收三极管中的暗电流减小,输出电压上升。但该传感器输出信号的频率很低,如当脉搏心率只有为50次/分钟时,只有0.78Hz,200次/分钟时也只有3.33Hz,因此信号首先经耦合电容C4耦合,再由R5、C5滤波以滤除高频干扰后,加到线性放大输入端。
图3.3 信号采集电路
3.3信号放大
3.3.1放大器的介绍
LM358 是由两个独立的高增益运算放大器组成。可以是单电源工作,也可以是双电源工作,电源的电流消耗与电源电压大小无关。应用范围包括变频放大器、DC 增益部件和所有常规运算放大电路。采用DIP8 或SOP8 封装形式。
每一组运算放大器可用图3.4所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。LM358 的引脚排列见图3.5。
图3.4
图3.5
由于LM358 二运放电路具有电源电压范围宽,静态功耗小,可单电源使用, 价格低廉等优点,因此被广泛应用在各种电路中。
3.3.2 放大电路
按人体脉搏心率在运动后跳动次数达200次/分钟的计算来设计低通放大器,如图3.6所示。R6、C6组成低通滤波器以进一步滤除残留的干扰,截止频率由R6、C6决定,运放LM358将信号放大,放大倍数由R12和R13的比值决定。
图3.6 低通放大电路
根据一阶有源滤波电路的传递函数,可得:
A(s)V0(s)A0
sV(s)i1wc放大倍数为:200。 截止频率为:3.9HZ。
按人体的脉搏心率跳动为200次/分钟时的频率是3.3 Hz考虑,低频特性是令人满意的。
经过低通放大后输出的信号是叠加有噪声的脉动正弦波。波形如图3.7所示。
图3.7
3.4 波形整形电路
波形整形电路如图3.8所示,LM358是一个电压比较器。
当有输入信号时,LM358在比较器输入信号的每个后沿到来时输出低电平,用发光二极管D1作脉搏心率测量状态显示,脉搏心率每跳动一次发光二极管就亮一次。同时,该脉冲电平送到单片机/INTO脚,进行对心率的计算和显示。输出波形如图3.11所示。
图3.8 波形整形电路
经过比较器LM358的输出波形:
图3.9
3.5单片机处理电路
如图3.12所示,本部分运用了STC公司的89C52单片机作为核心元件,在这里运用单片机能更快更准确地对数据进行运算,而且可以根据实际情况进行编程,所用外围元件少,轻巧省电,故障率低。
来自传感和整形输出电路的脉冲电平输入单片机89C52的/INTO脚,单片机设为负跳变中断触发模式,故每次脉冲下降沿到达时触发单片机产生中断并进行计时,来一个脉冲脉搏心率次数就加一;定时器中断主要完成一分钟的定时功能。单片机对一分钟内的脉冲次数进行累加,通过P0、P1口把测量过程和结果送到LCD1602显示出来[9]。
图3.12 单片机处理电路
3.6 显示电路
本设计的显示采用LCD1602来显示。单片机的P0口,P1口控
制显示器。显示电路如图3.13。
图3.13 显示电路
3.6.1 LCD1602 的综述
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
3.6.2 LCD1602 的结构
工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
⑵管脚功能
1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。
第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 ⑶特性
3.3V或5V工作电压,对比度可调 内含复位电路
提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器DDRAM
内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM 管脚功能
1602采用标准的16脚接口,其中:
第1脚:VSS为电源地 第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
第6脚:E(或EN)端为使能(enable)端。 第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 特性应用
+3.3V电压,对比度可调 内含复位电路
提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器DDRAM
内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM
微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
3.6.3 LCD1602指令集
1602通过D0~D7的8位数据端传输数据和指令。 显示模式设置: (初始化)
0011 0000 [0x38] 设置16×2显示,5×7点阵,8位数据接口; 显示开关及光标设置: (初始化)
0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移)
s=0 当写一个字符后,整屏显示不移动 数据指针设置:
数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置:
01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。
3.6.4 脉搏心率测量仪电路原理图
图 3.16 电路原理图
第4章 软件系统
4.1 主程序流程:
系统主程序控制单片机系统按预定的操作方式运行, 它是单片机系统程序的框架。系统上电后,对系统进行初始化。初始化程序主要完成对单片机内专用寄存器、定时器工作方式及各端口的工作状态的设定。系统初始化之后, 进行定时器中断、外部中断、显示等工作,不同的外部硬件控制不同的子程序[12]。流程如图4.1所示。
开始初始化开中断显示程序 图 4.1 主程序流程图
4.2 定时器中断程序流程:
定时器中断服务程序由一分钟计时、按键检测、有无测试信号判断等部分组成。当定时器中断开始执行后,对一分钟开始计时,1s计时到之后继续检测下1s,直到60s到了再停止并保存测得的脉搏心率次数。同时可以对按键进行检测,只要复位测试值就可以重新开始测试。主要完成一分钟的定时功能和保存测得的脉搏心率次数。流程如图4.2所示。
图 4.2 定时器中断程序流程图
4.3 INT中断程序流程:
外部中断服务程序完成对外部信号的测量和计算。外部中断采用边沿触发的方式,当处于测量状态的时候,来一个脉冲脉搏心率次数就加一,由单片机内部定时器控制一分钟,累加得出一分钟内的脉搏心率次数。流程如图4.3所示。
图 4.3 INT中断程序流程图
4.4 显示程序流程:
显示程序包括显示上次的脉搏心率次数、本次测量中的时间和脉搏心率的次数。从中断程序中取得结果后,先显示上次的脉搏心率次数,经过10ms的延时后再显示测试中的脉搏心率次数,再经过10ms的延时显示测试中的时间。流程如图4.4所示。
图 4.4 显示程序流程图
4.5 软件说明
本程序采用C语言,程序的可读性非常好。
程序中对前一次测量的脉搏心率数据进行了自动保存,并且用数码显示。 程序在执行过程若发现有干扰则忽略该干扰而不显示,进一步减少读入数据 的误差。
第五章 抗干扰措施及使用方法
5.1抗干扰措施
为了提高测量仪的精确度,系统首先要解决的是硬件方面的干扰问题。光电式脉搏心率测量仪的测量过程中,前端测量到的脉搏心率信号十分微弱,容易受到外界环境干扰,其中主要的干扰源有测量环境光干扰、电磁干扰、测量运动噪声。
5.1.1环境光对脉搏心率传感器测量的影响
在光电式脉搏心率传感器中,光敏器件接收到的光信号不仅包含脉搏心率信息的透射光的信号,而且包含测量环境下的背景光信号,由于动脉波动引起的光强变化比背景光的变化微弱得多,因此在测量过程当中要保持测量背景光的恒定,减少背景光的干扰[13]。
测量环境下的背景光包含环境光和在测量过程中引起的二次反射光。为了减少环境光对脉搏心率信号测量的影响,同时考虑到传感器使用的方便性,采用密封的指套式包装方式,整个外壳采用不透光的介质和颜色,尽量减小外界环境光的影响,为了避免测量过程中的二次反射光的影响,在指套式传感器的内层表面涂上一层吸光材料,这样能有效减少二次反射光的干扰。
加上指套式外壳后的脉搏心率传感器测量到的脉搏心率波形比较平滑。这是因为加指套式的脉搏心率传感器中环境光在测量过程中基本不受外界环境光的影响,而且能够有效减少二次反射光,使照射到手指上的光波长单一,所以得到
的脉搏心率信号较为稳定,没有明显的重叠杂波信号,能够很好的体现出脉搏心率波形的特征。
5.1.2电磁干扰对脉搏心率传感器的影响
通过光电转换得到的包含脉搏心率信息的电信号一般比较微弱,容易受到外界电磁信号的干扰,在传统的光电式脉搏心率传感器电路中,由于光敏器件和放大电路是分离的,那么在信号的传递过程就很容易受到外界电磁干扰,通常在一级放大电路采用电磁屏蔽的方式来消除电磁干扰[14]。本系统采用了新型的光敏器件,在芯片内部集成光敏器和一级放大电路,有效地抑制了外界电磁信号对原始脉搏心率信号的干扰。
工频干扰是电路中最常见的干扰,脉搏心率信号变化缓慢,特别容易受到工频信号的干扰,因此对工频信号干扰的抑制是保证脉搏心率信号测量精度的主要措施之一。通常脉搏心率信号的频率范围在0.3-30Hz之间,小于工频50Hz,因此通过低通滤波器可以有效滤除工频干扰,这在信号调理电路中容易实现;同时可以在控制电路中对光源进行脉冲调制,这样不但能够降低系统的功耗,而且能够在一定程度上减小外界的电磁干扰,在脉搏心率信号数据采集后,可以通过数据处理法方法进一步滤除工频信号的干扰[15]。
5.1.3 测量过程中运动噪声的影响
测量过程当中,通常情况下手指和光电式脉搏心率传感器可能产生相对的运动,这样对脉搏心率测量产生误差,可以通过2个方面减少运动噪声误差:一是改善指套式传感器的机械抗运动性,比如说使指套能够更紧的套在手指上,不易松动;二是从脉搏心率信号处理的角度,通过算法来减小误差。对于传感器的设计,现在采用的主要是第一个途径。
5.2测量仪使用方法
测量仪通电后,数码管全部显示0。把手轻轻置于右下角的传感器中,以稍微有压迫感为宜,这时很快就可以看到红色发光二极管会伴随你的脉搏心率而闪烁,让你直观的看到自己脉搏心率跳动的速度,按下复位键后单片机和显示部分开始工作,单片机立刻开始计数,同时数码管显示出你的心率和测试的时间,非
常方便。如果偶尔出现不稳的情况,请按复位键对系统进行复位。
第6章 系统调试
6.1 系统调试
根据系统设计方案,本系统的调试可分为两大部分:模拟部分和纯MCU部分。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试。断开两部分的连接点,先调试MCU部分。试着输入一系列脉冲(用适当的电阻接正极,间断性地输入),观察MCU部分能是否能显示;模拟部分用不透明的笔在红外发射二极管和接收三级管之间摇摆,借助示波器观察波形效果如何。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后进行整体测试,使系统的功能得以实现。 1.放大倍数的增加
传感器的输出端经示波器观察有幅度很小的正弦波,但经整形输出后检测到的脉冲还是很弱,在确定电路没有问题的情况下,加强信号的放大倍数,调整电阻R12和R13的阻值。 2. 时钟的调试
根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本参数,就可使时钟调准确。 3. 开机后无显示
首先检查交流电源部分,有无交流,若无则可能保险管或变压器烧坏,如有继续查直流有无,如无则电源已烧坏,可更换解决。 4. 显示正常但经适当运动后测量,脉搏心率次数没有增加 可能是前置放大级有问题,可采用更换的办法判断并排除。 5. 进人测量状态, 但测量值不稳定
主要是光电传感器受到电磁波等干扰,其次是损坏或有虚焊。 6. 开机后显示不正常或按键失灵
可查手指摆放的位置或按键电路,若无故障则是硬件损坏。 7. 电源的改变
理论上模拟部分有三处电压应为5V,但经过测试,全部使用5V电压也是可行的。
6.2 系统检验
系统上电后等待测试状态,如图6.1所示:
图6.1
测量中显示的数据,如图6.2所示:
图6.2
测量结束后显示的脉搏心率次数,如图6.3所示:
图6.3
6.3 误差分析
实际的脉搏心率次数 65 72 76 81 85 测量得出脉搏心率次数1 64 70 76 80 83 测量得出脉搏心率次数2 64 71 75 80 83 测量得出脉搏心率次数3 63 69 75 79 85 测量得出脉搏心率次数4 65 69 74 81 82 测量得出脉搏心率次数5 63 70 73 80 84 注:实际的脉搏心率次数以听诊器测出的脉搏心率次数为参考值。
由于传感器和其他器件本身并非理想线性,实测数据进行了线性补偿。
2(XnX)由均方差公式得: Ssqr=0.59 n(n1)误差分析:经校准,非线性补偿后,误差已基本达到要求。
第七章 总结与展望
单片机近20年的飞速发展,俨然已成为计算机发展和应用的一个重要方面。 另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设 计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已 能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制 技术,是传统控制技术的一次革命。而51单片机作为单片机的主流,随着集成技术的发展,51系列单片机继承和发展了MCS-51系列的技术特色,有逐渐取而代之之势。
本设计主要是52单片机在脉搏心率测试系统中的应用。重点介绍了单片机的最小系统,通过单片机最小系统实现了脉搏心率的测量系统,由光电传感器采集到脉冲信号,经过信号的放大、滤波和整形电路将输出的信号通过单片机的外部中断获取并最终在数码管上显示。利用单片机自身的定时中断、外部中断、计数等功能,不仅能显示出此次脉搏心率测量的次数,还能自动储存这个数据。
本次所设计的测量仪系统实现简单、功能稳定、使用方便,应用广泛,具 有实际意义。由于时间比较短,同时本人掌握的知识有限,本次设计虽已完成,但其中有很多不足,如程序不够简练,电路板不够美观,光电传感器灵敏度不够高,数码管显示部分不够完美等,同时此次设计的测量仪功能比较单一,没有如语音系统实现自动读出脉搏心率次数等人性化功能,且在设计过程中使用的运放数量也较多,加大了电源管理的复杂度。然而科技的进步势必会使测量仪的功能日益强大和完善,其应用领域将不断扩大,将会给我们的生活带来更多的方便和精彩。
为了更好的进行电脉搏心率测量仪的设计,在近一个学期的时间里,认真收集有关资料,并做相关的整理和阅读,为这次的设计做好充分的准备。经过这次毕设,我收获了很多,具体总结如下:(1)通过此次的设计,使我知道了无论做什么事都应该事先做好充分的准备,不应该盲目的只为了完成任务而被动的学习。(2)通过此次的设计,使我了解了脉搏心率测量仪在国内外发展之迅速、应用领域之广、市场前景之大。(3)通过此次的设计,使我对硬件设计和各模
块的功能有了更深的了解,同时提高了动手能力。(4)通过次次的设计,使我体会到坚持不懈的毅力对完成一件事情起着巨大的作用。(5)通过此次的设计,使我深刻的体会到团队合作精神的重要性及相互讨论过程中的乐趣。
参考文献
[1] 欧阳俊,谢定等.基于BL-410 的指端脉搏心率波采集系统应用研究[J].实用预防医学,2004,第11卷第2期,2—4.
[2] 韩文波,曹维国,张精慧.光电式脉搏心率波监测系统[J].长春光学精密机械学院学报,1999,第22卷第4期,2.
[3] 朱国富,廖明涛,王博亮.袖珍式脉搏心率波测量仪[J].电子技术应用,1998,第1期,1—3.
[4] 刘云丽,徐可欣等.微功耗光电式脉搏心率测量仪[J].电子测量技术,2005,第2期,2—5.
[5] 程咏梅,夏雅琴,尚岚.人体脉搏心率波信号检测系统[J].北京生物医学工程,2006,第25卷第5期,1—3.
[6] 刘文,杨欣,张铠麟.基于AT89C2051单片机的指脉检测系统的研究[J].医疗装备,2005,第9期,2—14.
[7] 郁道银,谈恒英.工程光学[M].机械工业出版社,1998年11月,279—281. [8]张福学.传感器应用及其电路精选(下册) [M].北京:机械工业出版社,122—134.
[9] 李林功,吴飞青,王兵,丁晓.单片机原理及应用[M].北京:机械工业出版社,2007.8,63—128.
[10] 程光,赵崇侃.指动脉搏心率波光电传感器的研制[J].南京医学院学报,1991年第11卷第4期,329—330.
[11] Analog Device.ADuC841_2_3_a data sheet[M].Analog Device 2003,20—45. [12] J.C.Candy and G.C.Temes.Oversampling
Methods for Data
Conversion[M].IEEE Pacific Rim conference on Communications,Computers and Signal Processing,May 1991,9-10.
[13] Oversampling Techniques Using theTMS320C24x Family[M].Literature Number:SPRA461 Texas Instruments Europe,June 1998,5-20.
[14] John D.Ryder Electronic Fundamentals and Applications[M].1983,1-24.
[15] Accelerated C++[M].Practical Programming by Example Pearson Eduction 4-1,2006,12-34.
附 录
参考程序
脉搏心率测量仪的信号采集、处理、显示的程序 #include sbit P32=P3^2; unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=0; unsigned int time[6]={0}; /************ 延时函数 *****************/ void delay(uint z) { while(z--); } /************ 忙检测函数 *****************/ void jiance() { P0=0xff; rs=0;rw=1;en=1; while(bf); //如果BF==1表示液晶在忙 //数据与命令选择控制引脚 //读与写选择控制引脚 //使能择控制引脚 //忙标志位 en=0; } /************ 写命令函数 *****************/ void write_com(uchar com) { jiance(); P0=com; rs=0;rw=0;en=1; delay(2); en=0; } /************ 写数据函数 *****************/ void write_dat(uchar dat) { jiance(); P0=dat; rs=1;rw=0;en=1; delay(2); en=0; } /************ 1602液晶初始化函数 *****************/ void init_lcd() { write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } /******************************************************************/ /* 在指定位置写字符 */ /******************************************************************/ void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) write_com(0x80 + x); else write_com(0xC0 + x); write_dat(Data); } void DelayMs(unsigned int z) { unsigned int x; for(;z>0;z--) for(x=110;x>0;x--); } void main() { P32=1; init_lcd();//lcd初始化 TCON=0x01;//设置外部中断0 EX0=1; TMOD=0x01;//定时器0初始化 TH0=(65536-50650)/256;//实测每50ms中断的定时值 TL0=(65536-50650)%256; ET0=1;//开定时器中断 //显示基本文字 LCD_write_char(3,0,'H'); LCD_write_char(4,0,'e'); } LCD_write_char(5,0,'a'); LCD_write_char(6,0,'r'); LCD_write_char(7,0,'t'); LCD_write_char(8,0,' '); LCD_write_char(9,0,'R'); LCD_write_char(10,0,'a'); LCD_write_char(11,0,'t'); LCD_write_char(12,0,'e'); LCD_write_char(8,1,'/'); LCD_write_char(9,1,'m'); LCD_write_char(10,1,'i'); LCD_write_char(11,1,'n'); TR0=0;//定时器停止 EA=1;//开总中断 while(1) { if(displayOK==1) { rate=60000/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5); } } DelayMs(300); LCD_write_char(5,1,rate/100+48); LCD_write_char(6,1,(rate%100)/10+48); LCD_write_char(7,1,rate%10+48); void ex0() interrupt 0 { } void et0() interrupt 1 { TL0=(65536-50650)%256; TH0=(65536-50650)/256; EX0=0;//暂时关外部中断 if(timecount<8) //当连续两次检测时间间隔小于8*50ms=400ms不处理 { } else { } EX0=1; time[i]=timecount*50+TH0*0.256+TL0/1000;//算出间隔时间 TL0=(65536-50650)%256;//重新设置定时器 TH0=(65536-50650)/256; timecount=0;//50ms计数清零 i++; if(i==6)//记录到超过等于6次时间 { } i=1;//计数从1开始 displayOK=1; //测得5次开始显示 TR0=1;//开定时器 timecount++;//每50ms一次计数 } if(timecount>25) //当超过25*50ms=1.5s没有检测到信号停止显示 { } i=0;//数据个数清零 timecount=0;//50ms计数清零 displayOK=0;//显示关 TR0=0;//定时器关 TH0=(65536-50650)/256; TL0=(65536-50650)%256; ///////////////////////////End of DelayMs//////////////////////////// 致 谢 四年大学生活即将结束,在这四年中,我收获了知识,收获了友谊,更收获了为人处事的道理。感谢学校为我提供了自我发挥的舞台,我在这里尽情展现自己的才能。在这个大家庭里,我和其他的同学共同生活,共同学习。 其实生活的道路一直不是这么平坦的,在前进的道路上,我遇到了很多的困难和挫折,但是凭借着自己的毅力和周围老师、同学的帮助,我最终都努力地克服了。 感谢学院、分院的各级领导,为我们创造的良好的学习氛围,感谢各位老师和我的朋友,你们的关心与帮助使我能够更好地成长。 感谢我的各位专业授课老师,正是你们的辛勤工作,使我对本专业产生了浓厚的兴趣,而且学到了很多的知识,掌握了很多的方法。你们的谆谆教诲使我有志于在本专业继续深造。 感谢我的毕业设计指导老师李林功老师,您的指导和教诲将我领进了单片机这一扇大门。您严谨的教学态度、乐观的生活态度深深地影响着我,是您细心认真地指导我的毕业设计,指出我的不足之处,以使我及时修改更正。 父母是我生命中最重要的人,我今天取得的成绩与他们为我的付出是分不开的。他们一如既往的支持,是我前进的最大动力,是我成功的基石,感谢你们多年来为我的付出。 因篇幅问题不能全部显示,请点此查看更多更全内容