资源描述
摘 要脉搏测量仪在我们的日常生活中已经得到了非常广泛的应用。为了提高脉搏测量仪的简便性和精确度,本课题设计了一种基于51单片机的脉搏测量仪。系统以AT89C51单片机为核心,以红外发光二极管和光敏三极管为传感器,并利用单片机系统内部定时器来计算时间,由光敏三极管感应产生脉冲,单片机通过对脉冲累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中能显示脉搏次数和时间,系统停止运行时,能够显示总的脉搏次数和时间。经测试,系统工作正常,达到设计要求。关键词:脉搏测量仪;AT89C51单片机;光电传感器; ABSTRACTPulse measuring instrument has been widely used in our daily life. In order to increase its simplicity and accuracy, this subject designs one system based on single-chip microcomputer and infrared light emitting diode and photo transistor as sensors, and calculates time with using of the inner timer. The sensor produces pulse and the single-chip microcomputer gets the frequency by accumulating the pulses, and the timer obtains the time. The system could display the frequency and time of the pulse during operation. It can also shows the total number when it stops. After testing, the system works well and meets the design requirements.Keywords:Pulse measurement; AT89C51 single-chip microcomputer; photoelectric sensor; 目 录摘 要I第1章 概述11.1 选题的背景和意义11.2 脉搏测量仪的发展与应用2第2章 脉搏测量仪系统结构42.1 光电脉搏测量仪的结构42.2工作原理52.3光电脉搏测量仪的特点5第3章 硬件系统73.1 控制器73.2脉搏信号采集93.3信号放大123.4 波形整形电路143.5单片机处理电路173.6 显示电路17第4章 软件系统214.1 主程序流程:214.2 定时器中断程序流程:214.3 INT中断程序流程:224.4 显示程序流程:234.5 软件说明23第五章 抗干扰措施及使用方法245.2测量仪使用方法25第6章 系统调试266.1 系统调试266.2 系统检验276.3 误差分析28第七章 总结与展望29参考文献30附 录31致 谢3742第1章 概述1.1 选题的背景和意义脉搏携带有丰富的人体健康状况的信息,自公元三世纪我国最早的脉学专著脉经问世以来,脉学理论得到不断的发展和提高。在中医四诊(望、闻、问、切)中,脉诊占有非常重要的位置。脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中医“整体观念”、“辨证论证”的基本精神的体现与应用。脉诊作为“绿色无创”诊断的手段和方法,得到了中外人士的关注。但由于中医是靠手指获取脉搏信息,虽然脉诊具有简便、无创、无痛的特点易为患者接受,然而在长期的医疗实践中也暴露出一些缺陷。首先,切脉单凭医生手指感觉辨别脉象的特征,受到感觉、经验和表述的限制,并且难免存在许多主观臆断因素,影响了对脉象判断的规范化;其次,这种用手指切脉的技巧很难掌握;再则,感知的脉象无法记录和保存影响了对脉象机理的研究。脉诊的这种定性化和主观性,大大影响了其精度与可行性,成为中医脉诊应用、发展和交流中的制约因素。为了将传统的中医药学发扬光大,促进脉诊的应用和发展,必须与现代科技相结合,实现更科学、客观的诊断。医院的护士每天都要给住院的病人把脉记录病人每分钟脉搏数,方法是用手按在病人腕部的动脉上,根据脉搏的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。为了提高脉搏测量的精确与速度,多种脉搏测量仪被运用到医学上来,从而开辟了一条全新的医学诊断方法。早在1860年Vierordt 创建了第一台杠杆式脉搏描记仪,国内20世纪50年代初朱颜将脉搏仪引用到中医脉诊的客观化研究方面。此后随着机械及电子技术的发展,国内外在研制中医脉象仪方面进展很快,尤其是70年代中期,国内天津、上海、江西等地相继成立了跨学科的脉象研究协作组,多学科共同合作促使中医脉象研究工作进入了一个新的境界。脉象探头式样很多,有单部、三部、单点、多点、刚性接触式、软性接触式、气压式、硅杯式、液态汞、液态水、子母式等组成,脉象探头的主要原件有应变片、压电晶体、单晶硅、光敏元件、PVDF压电薄膜等,其中以单部单点应变片式为最广泛,不过近年来正在向三部多点式方向设计。目前脉搏测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测、妊高症检测、中医脉象、脉率检测等等,商业应用也不断拓展,如运动、健身器材中的心率测试都用到了技术先进的脉搏测量仪。1.2 脉搏测量仪的发展与应用随着科学技术的发展,脉搏测量技术也越来越先进,对脉搏的测量精度也越来越高,国内外先后研制了不同类型的脉搏测量仪,而其中关键是对脉搏传感器的研究。起初用于体育测量的脉搏测试集中在对接触式传感器的研究,利用此类传感器所研制的指脉、耳脉等测量仪各有其优缺点。指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降:耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确3。过去在医院临床监护和日常中老年保健中出现的日常监护仪器,如便携式电子血压计,可以完成脉搏的测量,但是这种便携式电子血压计利用微型气泵加压橡胶气囊,每次测量都需要一个加压和减压的过程,存在体积庞大、加减压过程会有不适、脉搏检测的精确度低等缺点。近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。其中光电式脉搏传感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接检测出脉搏信号。具有结构简单、无损伤、精度高、可重复使用等优点。通过光电式脉搏传感器所研制的脉搏测量仪已经应用到临床医学等各个方面并收到了理想效果。人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,是血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播,这种波成为脉搏波。从脉搏波中提取人体的心理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和处理具有很高的医学价值和应用前景5。但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏波信号更是低频微弱的非电生理信号,因此必需经过放大和后级滤波以满足采集的要求。第2章 脉搏测量仪系统结构脉搏测量仪的设计,必须是通过采集人体脉搏变化引起的一些生物信号,然后把生物信号转化为物理信号,使得这些变化的物理信号能够表达人体的脉搏变化,最后要得出每分钟的脉搏次数,就需要通过相应的硬件电路及芯片来处理物理变化并存储脉搏次数。在硬件设计中一般的物理信号就是电压变化,有了这个系统的设计思路,本课题就此开始实施。2.1 光电脉搏测量仪的结构光电脉搏测量仪是利用光电传感器作为变换原件,把采集到的用于检测脉搏跳动的红外光转换成电信号,用电子仪表进行测量和显示的装置。本系统的组成包括光电传感器、信号处理、单片机电路、数码显示、电源等部分。1光电传感器即将非电量(红外光)转换成电量的转换元件,它由红外发射二极管和接收三极管组成,它可以将接收到的红外光按一定的函数关系(通常是线性关系)转换成便于测量的物理量(如电压、电流或频率等)输出。2信号处理 即处理光电传感器采集到的低频信号的模拟电路(包括放大、滤波、整形等)。3. 单片机电路即利用单片机自身的定时中断计数功能对输入的脉冲电平进行运算得出心率(包括AT89C51、外部晶振、外部中断等)。4数码显示即把单片机计算得出的结果用8位LED数码管静态扫描来显示,便于直接准确无误的读出数据。5. 电源即向光电传感器、信号处理、单片机提供的电源,可以是5V-9V的交流或直流的稳压电源。2.2工作原理本设计采用单片机AT89C51为控制核心,实现脉搏测量仪的基本测量功能。脉搏测量仪硬件框图如下图2.1 所示:外部中断信号光电传感器低通放大器比较器和振荡器单片机AT89C51数码显示电路外部晶振图 2.1 脉搏测量仪的工作原理当手指放在红外线发射二极管和接收三极管中间,随着心脏的跳动,血管中血液的流量将发生变换。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收三极管的电流也跟着改变,这就导致红外接收三极管输出脉冲信号。该信号经放大、滤波、整形后输出,输出的脉冲信号作为单片机的外部中断信号。单片机电路对输入的脉冲信号进行计算处理后把结果送到数码管显示。2.3光电脉搏测量仪的特点与传统的脉搏测量仪相比,光电式脉搏测量仪具有以下特点:1. 测量的探测部分不侵入机体,不造成机体创伤,通常在体外。2. 传感器可重复使用且速度快,精度高。3. 测试的适用电压为5V-9V的直流电压。4. 稳定性好、磨损小、寿命长、维修方便。5. 由于结构简单,因此体积小、重量轻、性价比优越。6. 测量的有效范围为50次-199次/分钟。 第3章 硬件系统3.1 控制器本系统基于51系列单片机来实现,因为系统没有其它高标准的要求,我们最终选择了AT89C51通用的比较普通单片机来实现系统设计。3.1.1 AT89C51 简介AT89C5l是美国ATMEL公司生产的低电压、高性能的CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89CSl单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。3.1.2 AT89C51 的特点与MCS-51产品指令系统完全兼容4k字节可重擦写Flash闪速存储器1000次擦写周期全静态操作:OHz-24MHz三级加密程序存储器128*8字节内部RAM32个可编程IO口线2个16位定时计数器6个中断源可编程串行UART通道低功耗空闲和掉电模式3.1.3 AT89C51 的结构此次设计所使用的AT89C51 的封装形式是DIP40。如图3.1 所示。图3.1 AT89C51 的封装形式引脚功能:Vcc:电源电压GND:接地P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗转入端用。Pl口:P1是个带内部上拉电阻的8位双向IO口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电萌。P2口:P2是一个带有内部上拉电阻的8位双向IO口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3口:可以作为输入/输出口,外接输入/输出设备。作为第二功能使用,每一位功能定义如表3.1 所示。表3.1 P3 口的第二功能RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振器频率的16输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EAVPP:EA 0,单片机只访问外部程序存储器。EA 1,单片机访问内部程序存储器。XTALI:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2脉搏信号采集目前脉搏波检测系统有以下几种检测方法:光电容积脉搏波法、液体耦合腔脉搏传感器、压阻式脉搏传感器以及应变式脉搏传感器。近年来, 光电检测技术在临床医学应用中发展很快, 这主要是由于光能避开强烈的电磁干扰, 具有很高的绝缘性, 且可非侵入地检测病人各种症状信息,具有结构简单、无损伤、精度高、可重复好等优点。用光电法提取指尖脉搏光信息受到了从事生物医学仪器工作的专家和学者的重视。3.2.1光电传感器的原理根据朗伯一比尔(LamberBeer)定律,物质在一定波长处的吸光度和他的浓度成正比。当恒定波长的光照射到人体组织上时,通过人体组织吸收、反射衰减后,测量到的光强将在一定程度上反映了被照射部位组织的结构特征7。脉搏主要由人体动脉舒张和收缩产生的,在人体指尖组织中的动脉成分含量高,而且指尖厚度相对其他人体组织而言比较薄,透过手指后检测到的光强相对较大,因此光电式脉搏传感器的测量部位通常在人体指尖。手指组织可以分成皮肤、肌肉、骨骼等非血液组织和血液组织,其中非血液组织的光吸收量是恒定的,而在血液中,静脉血的搏动相对于动脉血是十分微弱的,可以忽略。因此可以认为光透过手指后的变化仅由动脉血的充盈而引起的,那么在恒定波长的光源照射下,通过检测透过手指的光强将可以间接测量到人体的脉搏信号。3.2.2光电传感器的结构传感器由红外发光二级管和红外接收三极管组成。采用GaAs红外发光二极管作为光源时,可基本抑制由呼吸运动造成的脉搏波曲线的漂移。红外接收三极管在红外光的照射下能产生电能,它的特性是将光信号转换为电信号。在本设计中,红外接收三极管和红外发射二极管相对摆放以获得最佳的指向特性。从光源发出的光除被手指组织吸收以外,一部分由血液漫反射返回,其余部分透射出来。光电式脉搏传感器按照光的接收方式可分为透射式和反射式2种8。其中透射式的发射光源与光敏接收器件的距离相等并且对称布置,接收的是透射光,这种方法可较好地反映出心律的时间关系。因此本系统采用了指套式的透射型光电传感器, 实现了光电隔离,减少了对后级模拟电路的干扰。结构如图3.2所示。图3.2 透射式光电传感器3.2.3 光电传感器检测原理检测原理是: 随着心脏的搏动,人体组织半透明度随之改变:当血液送到人体组织时,组织的半透明度减小,当血液流回心脏,组织半透明度则增大;这种现象在人体组织较薄的手指尖、耳垂等部位最为明显。因此本设计将红外发光二极管产生的红外线照射到人体的手指部位,经过手指组织的反射和衰减由装在该部位旁边的光敏三管来接收其透射光并把它转换成电信号。由于手指动脉血在血液循环过程中呈周期性的脉动变化,所以它对光的反射和衰减也是周期性脉动的, 于是红外接收三极管输出信号的变化也就反映了动脉血的脉动变化。故只要把此电信号转换成脉冲并进行整形、计数和显示,即可实时的测出脉搏的次数。3.2.4信号采集电路图3.3是脉搏信号的采集电路,U3是红外发射和接收装置,由于红外发射二极管中的电流越大,发射角度越小,产生的发射强度就越大,所以对R21阻值的选取要求较高。R21选择270同时也是基于红外接收三极管感应红外光灵敏度考虑的。R21过大,通过红外发射二极管的电流偏小,红外接收三极管无法区别有脉搏和无脉搏时的信号。反之,R21过小,通过的电流偏大,红外接收三极管也不能准确地辨别有脉搏和无脉搏时的信号。当手指离开传感器或检测到较强的干扰光线时,输入端的直流电压会出现很大变化,为了使它不致泄露到U2B输入端而造成错误指示,用C8、C9串联组成的双极性耦合电容把它隔断。当手指处于测量位置时,会出现二种情况:一是无脉期。虽然手指遮挡了红外发射二极管发射的红外光,但是由于红外接收三极管中存在暗电流,会造成输出电压略低。二是有脉期。当有跳动的脉搏时,血脉使手指透光性变差,红外接收三极管中的暗电流减小,输出电压上升。但该传感器输出信号的频率很低,如当脉搏只有为50次/分钟时,只有0.78Hz,200次/分钟时也只有3.33Hz,因此信号首先经R22、C10滤波以滤除高频干扰,再由耦合电容C8、C9加到线性放大输入端。图3.3 信号采集电路3.3信号放大3.3.1放大器的介绍LM324 是四运放集成电路,它采用14 脚双列直插塑料封装.它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图3.4所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。LM324 的引脚排列见图3.5。 图3.4 图3.5由于LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。3.3.2 放大电路按人体脉搏在运动后跳动次数达200次/分钟的计算来设计低通放大器,如图3.6所示。R23、C6组成低通滤波器以进一步滤除残留的干扰,截止频率由R23、C6决定,运放U2B将信号放大,放大倍数由R23和R27的比值决定。图3.6 低通放大电路根据一阶有源滤波电路的传递函数,可得:放大倍数为:截止频率为:按人体的脉搏跳动为200次/分钟时的频率是3.3 Hz考虑,低频特性是令人满意的。经过低通放大后输出的信号是叠加有噪声的脉动正弦波。波形如图3.7所示。图3.73.4 波形整形电路波形整形电路如图3.8所示,U2C是一个电压比较器,C11、R29构成一个微分器,U2A和C7、R32组成单稳态多谐振荡器,其脉宽由C7、R32决定。该比较器的阀值电压可用R31调节在正弦波的幅值范围内,但是对R31的调节要求并不严格,因为U2C的输出信号(波形如图3.9)经C11、R29的微分后总是将正、负相间的尖脉冲(波形如图3.10)加到单稳态多谐振荡器U2A的反向输入端,不会造成很大的触发误差。当有输入信号时,U2A在比较器输入信号的每个后沿到来时输出高电平,使C7通过R32充电。大约持续20ms之后,因C7充电电流减小而使U2A同相输入端的电位降低到低于反相输入端的电位(尖脉冲已过去很久),于是U2A改变状态并再次输出低电平。这长的脉冲是与脉搏同步的,并由红色发光二极管DS3的闪亮指示出来。即发光二极管作脉搏测量状态显示,脉搏每跳动一次发光二极管就亮一次。同时,该脉冲电平通过R24送到单片机/INTO脚,进行对心率的计算和显示。输出波形如图3.11所示。图3.8 波形整形电路经过比较器U2C的输出波形:图3.9经过微分器的输出波形:图3.10单片机接收到的信号:图3.113.5单片机处理电路 如图3.12所示,本部分运用了ATMEL公司的89C51单片机作为核心元件,在这里运用单片机能更快更准确地对数据进行运算,而且可以根据实际情况进行编程,所用外围元件少,轻巧省电,故障率低。来自传感和整形输出电路的脉冲电平输入单片机89C51的/INTO脚,单片机设为负跳变中断触发模式,故每次脉冲下降沿到达时触发单片机产生中断并进行计时,来一个脉冲脉搏次数就加一;定时器中断主要完成一分钟的定时功能。单片机对一分钟内的脉冲次数进行累加,通过P0、P2口把测量过程和结果送到数码管显示出来。图3.12 单片机处理电路3.6 显示电路本设计的显示采用LED数码管动态扫描来显示。两个4位的共阳极LED数码管组成8位显示,其中0、1两位显示测量中的时间,3、4两位显示测量中的脉搏次数,6、7两位用来显示上次测量的数据。单片机的P0口控制显示字型,P2口控制显示字位。显示电路如图3.13。图3.13 显示电路3.6.1 LED 的综述在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果、状态等信息,因此显示器也是不可缺少的外部设备之一。显示器的种类很多,从液晶显示、发光二极管显示到CRT 显示器,都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显示器,简称LED 显示器。LED 显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点。但显示内容有限,不能显示图形,因而其应用有局限性。3.6.2 LED 的结构LED数码管显示器是由发光的二极管显示字段组成的。在单片机应用系统中使用最多的就是七段LED数码管,有共阴极和共阳极两种。七段LED数码管显示器有8个发光二极管,其中从ag管脚输入显示代码,可显示不同的数字或字符,Dp显示小数点。共阴极LED数码管显示器的公共端为发光二极管阴极,通常接地,当发光二极管的阳极为高电平时,发光二极管点亮。共阳极的LED数码管显示器的公共端为发光二极管的阳极,通常接+5V电源,当发光二极管的阴极为低电平时,发光二极管点亮。本设计中采用的是4位七段共阳极数码管显示器,一共具有12个引脚,4个位选端,8个字选端。图3.14中所示,1、2、3、4是位选端;ag、Dp是字选端。内部结构如图3.15所示。图3.14 4位数码管引脚分布图图3.15 4位共阳极数码管结构图3.6.3 LED数码管的显示方法静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。通过比较,我们可以发现LED动态显示更加适合本设计,所以就采用此方法。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环境光对脉搏传感器测量的影响 在光电式脉搏传感器中,光敏器件接收到的光信号不仅包含脉搏信息的透射光的信号,而且包含测量环境下的背景光信号,由于动脉波动引起的光强变化比背景光的变化微弱得多,因此在测量过程当中要保持测量背景光的恒定,减少背景光的干扰。 测量环境下的背景光包含环境光和在测量过程中引起的二次反射光。为了减少环境光对脉搏信号测量的影响,同时考虑到传感器使用的方便性,采用密封的指套式包装方式,整个外壳采用不透光的介质和颜色,尽量减小外界环境光的影响,为了避免测量过程中的二次反射光的影响,在指套式传感器的内层表面涂上一层吸光材料,这样能有效减少二次反射光的干扰。 加上指套式外壳后的脉搏传感器测量到的脉搏波形比较平滑。这是因为加指套式的脉搏传感器中环境光在测量过程中基本不受外界环境光的影响,而且能够有效减少二次反射光,使照射到手指上的光波长单一,所以得到的脉搏信号较为稳定,没有明显的重叠杂波信号,能够很好的体现出脉搏波形的特征。 5.1.2电磁干扰对脉搏传感器的影响通过光电转换得到的包含脉搏信息的电信号一般比较微弱,容易受到外界电磁信号的干扰,在传统的光电式脉搏传感器电路中,由于光敏器件和放大电路是分离的,那么在信号的传递过程就很容易受到外界电磁干扰,通常在一级放大电路采用电磁屏蔽的方式来消除电磁干扰。本系统采用了新型的光敏器件,在芯片内部集成光敏器和一级放大电路,有效地抑制了外界电磁信号对原始脉搏信号的干扰。 工频干扰是电路中最常见的干扰,脉搏信号变化缓慢,特别容易受到工频信号的干扰,因此对工频信号干扰的抑制是保证脉搏信号测量精度的主要措施之一。通常脉搏信号的频率范围在0.330Hz之间,小于工频50Hz,因此通过低通滤波器可以有效滤除工频干扰,这在信号调理电路中容易实现;同时可以在控制电路中对光源进行脉冲调制,这样不但能够降低系统的功耗,而且能够在一定程度上减小外界的电磁干扰,在脉搏信号数据采集后,可以通过数据处理法方法进一步滤除工频信号的干扰。5.1.3 测量过程中运动噪声的影响 测量过程当中,通常情况下手指和光电式脉搏传感器可能产生相对的运动,这样对脉搏测量产生误差,可以通过2个方面减少运动噪声误差:一是改善指套式传感器的机械抗运动性,比如说使指套能够更紧的套在手指上,不易松动;二是从脉搏信号处理的角度,通过算法来减小误差。对于传感器的设计,现在采用的主要是第一个途径。5.2测量仪使用方法测量仪通电后,数码管全部显示0。把手轻轻置于右下角的传感器中,以稍微有压迫感为宜,这时很快就可以看到红色发光二极管会伴随你的脉搏而闪烁,让你直观的看到自己脉搏跳动的速度,按下复位键后单片机和显示部分开始工作,单片机立刻开始计数,同时数码管显示出你的心率和测试的时间,非常方便。如果偶尔出现不稳的情况,请按复位键对系统进行复位。第6章 系统调试6.1 系统调试根据系统设计方案,本系统的调试可分为两大部分:模拟部分和纯MCU部分。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试。断开两部分的连接点,先调试MCU部分。试着输入一系列脉冲(用适当的电阻接正极,间断性地输入),观察MCU部分能是否能显示;模拟部分用不透明的笔在红外发射二极管和接收三级管之间摇摆,借助示波器观察波形效果如何。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后进行整体测试,使系统的功能得以实现。1.放大倍数的增加 传感器的输出端经示波器观察有幅度很小的正弦波,但经整形输出后检测到的脉冲还是很弱,在确定电路没有问题的情况下,加强信号的放大倍数,调整电阻R23和R27的阻值。2. 时钟的调试根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本参数,就可使时钟调准确。3. 开机后无显示首先检查交流电源部分,有无交流,若无则可能保险管或变压器烧坏,如有继续查直流有无,如无则电源已烧坏,可更换解决。4. 显示正常但经适当运动后测量,脉搏次数没有增加可能是前置放大级有问题,可采用更换的办法判断并排除。5. 进人测量状态, 但测量值不稳定主要是光电传感器受到电磁波等干扰,其次是损坏或有虚焊。6. 开机后显示不正常或按键失灵可查手指摆放的位置或按键电路,若无故障则是硬件损坏。7. 电源的改变 理论上模拟部分有三处电压应为9V,但经过测试,全部使用5V电压也是可行的。6.2 系统检验系统上电后等待测试状态,如图6.1所示:图6.1测量中显示的数据,如图6.2所示:图6.2测量结束后显示的脉搏次数,如图6.3所示:图6.36.3 误差分析实际的脉搏次数测量得出脉搏次数1测量得出脉搏次数2测量得出脉搏次数3测量得出脉搏次数4测量得出脉搏次数5656464636563727071696970767675757473818080798180858383858284注:实际的脉搏次数以听诊器测出的脉搏次数为参考值。由于传感器和其他器件本身并非理想线性,实测数据进行了线性补偿。由均方差公式得: =0.59误差分析:经校准,非线性补偿后,误差已基本达到要求。第七章 总结与展望单片机近20年的飞速发展,俨然已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。而51单片机作为单片机的主流,随着集成技术的发展,51系列单片机继承和发展了MCS-51系列的技术特色,有逐渐取而代之之势。本设计主要是51单片机在脉搏测试系统中的应用。重点介绍了单片机的最小系统,通过单片机最小系统实现了脉搏的测量系统,由光电传感器采集到脉冲信号,经过信号的放大、滤波和整形电路将输出的信号通过单片机的外部中断获取并最终在数码管上显示。利用单片机自身的定时中断、外部中断、计数等功能,不仅能显示出此次脉搏测量的次数,还能自动储存这个数据。本次所设计的测量仪系统实现简单、功能稳定、使用方便,应用广泛,具有实际意义。由于时间比较短,同时本人掌握的知识有限,本次设计虽已完成,但其中有很多不足,如程序不够简练,电路板不够美观,光电传感器灵敏度不够高,数码管显示部分不够完美等,同时此次设计的测量仪功能比较单一,没有如语音系统实现自动读出脉搏次数等人性化功能,且在设计过程中使用的运放数量也较多,加大了电源管理的复杂度。然而科技的进步势必会使测量仪的功能日益强大和完善,其应用领域将不断扩大,将会给我们的生活带来更多的方便和精彩。为了更好的进行电脉搏测量仪的设计,在近一个学期的时间里,认真收集有关资料,并做相关的整理和阅读,为这次的设计做好充分的准备。经过这次毕设,我收获了很多,具体总结如下:(1)通过此次的设计,使我知道了无论做什么事都应该事先做好充分的准备,不应该盲目的只为了完成任务而被动的学习。(2)通过此次的设计,使我了解了脉搏测量仪在国内外发展之迅速、应用领域之广、市场前景之大。(3)通过此次的设计,使我对硬件设计和各模块的功能有了更深的了解,同时提高了动手能力。(4)通过次次的设计,使我体会到坚持不懈的毅力对完成一件事情起着巨大的作用。参考文献1 欧阳俊,谢定等基于BL-410 的指端脉搏波采集系统应用研究J实用预防医学,2004,第11卷第2期,242 韩文波,曹维国,张精慧光电式脉搏波监测系统J长春光学精密机械学院学报,1999,第22卷第4期,23 朱国富,廖明涛,王博亮袖珍式脉搏波测量仪J电子技术应用,1998,第1期,134 刘云丽,徐可欣等微功耗光电式脉搏测量仪J电子测量技术,2005,第2期,255 程咏梅,夏雅琴,尚岚人体脉搏波信号检测系统J北京生物医学工程,2006,第25卷第5期,136 刘文,杨欣,张铠麟基于AT89C2051单片机的指脉检测系统的研究J医疗装备,2005,第9期,2147 郁道银,谈恒英工程光学M机械工业出版社,1998年11月,2792818张福学传感器应用及其电路精选(下册) M北京:机械工业出版社,1221349 李林功,吴飞青,王兵,丁晓单片机原理及应用M北京:机械工业出版社,2007.8,6312810 程光,赵崇侃指动脉搏波光电传感器的研制J南京医学院学报,1991年第11卷第4期,32933011 Analog DeviceADuC841_2_3_a data sheetMAnalog Device 2003,204512 J.C.Candy and G.C.TemesOversamplingMethods for Data ConversionMIEEE Pacific Rim conference on Communications,Computers and Signal Processing,May 1991,9-1013 Oversampling Techniques Using theTMS320C24x FamilyMLiterature Number:SPRA461 Texas Instruments Europe,June 1998,5-2014 John DRyder Electronic Fundamentals and ApplicationsM1983,1-2415 Accelerated C+MPractical Programming by Example Pearson Eduction 4-1,2006,12-34附 录参考程序:脉搏测量仪的信号采集、处理、显示的程序#include #define uint8 unsigned char#define uint16 unsigned int#define TIMER0_HIGHT 0xDC/设置定时器0工作方式1自动装载初值,定时10ms,Fosc=11.059200MHZ#define TIMER0_LOW 0x00sbit keyin = P31;/按键输入bit starttest;/启动测脉搏标志uint16 cnt10ms;/10ms计数器uint8 cnt1s;/1秒计数器uint8 Pulsecnt;/脉搏次数,计数器uint8 Pulsenum;/上次测试脉搏的次数uint8 codeDispCode=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/共阳数码管段码表void Init_Extint(void);void TimerInitProc();void initvar();void Init_System(void);void Display(uint8 chose_dat, uint8 dat);void ShowDisp(uint8 tPulsenum, uint8 tPulsecnt, uint8 tcnt1s);void DelayMs(uint8 Ms);void main()Init_System();/初始化while(1)ShowDisp(Pulsenum, Pulsecnt, cnt1s);/显示/* 函 数 名: Exti0_interrupt* 函数功能: /INT0引脚下降沿进入中断* 入口参数: 无* 返 回: 无*/void Ext0_interrupt(void) interrupt 0if(starttest = 1)/处在测试状态Pulsecnt+;/来一次中断脉搏计数器加1/*函数功能:定时器/计数器0中断处理入口参数:null返 回:null备 注:null*/void Timer0IntProc() interrupt 1TH0 = TIMER0_HIGHT;/设置定时器0高字节初值TL0 = TIMER0_LOW;/设置定时器0低字节初值if(+cnt10ms = 100)/1s计时到cnt10ms = 0;if(starttest = 1)/处在测试状态if(+cnt1s = 60)/一分钟时间到starttest = 0;/一次检测完毕,等待下一次检测Pulsenum = Pulsecnt;/保存测得脉搏值if(keyin = 0)/检测按键if(starttest = 1)/处在测试状态cnt10ms = 0;/复位测试值,重新开始测试cnt1s = 0;Pulsecnt = 0;else/不在测试状态,开始新的一次测试starttest = 1;cnt10ms = 0;/End of Timer0IntProc/void Init_Extint(void) IT0 = 1; /外部中断1设置为下降沿触发 IE0 = 0; /标志位清0 EX0 = 1; /允许外部中断1/*函数功能:定时器/计数器初始化入口参数:null返 回:null备 注:null*/void TimerInitProc()TMOD &= 0xF0;TMOD |= 0x01;/设置定时器0,方式1:16位定时器TH0 = TIMER0_HIGHT;/设置定时器0高字节初值TL0 = TIMER0_LOW;/设置定时器0低字节初值TR0 = 1;/启动定时器0 ET0 = 1;/开定时器0中断EA = 1; /开总中断/End of TimerInitProc/void initvar()starttest = 0;cnt10ms = 0;cnt1s = 0;Pulsecnt = 0;Pulsenum = 0;void Init_System(void) Init_Extint(); TimerInitProc();initvar();/* 函 数 名: Display(uchar chose_dat,uchar dat)* 函数功能: 数码管显示* 入口参数: chose_dat数码管显示字位,dat显示字型* 返 回: 无*/void Display(uint8 chose_dat, uint8 dat) P0 = dat; /送显示字型P2 = (0x010;i-) for(j=98;j0;j-); while(-Ms);/Test for 12M/End of DelayMs/
展开阅读全文