基于单片机的脉搏测量仪的设计.doc
已有 11691 次阅读2017-10-24 19:37
基于单片机的脉搏测量仪的设计.doc搜索复制摘要
脉搏测量仪在我们的日常生活中已经得到了非常广泛的应用。为了提高脉搏测量仪的简便性和精确度,本课题设计了一种基于51单片机的脉搏测量仪。系统以AT89C51单片机为核心,以红外发光二极管和光敏三极管为传感器,并利用单片机系统内部定时器来计算时间,由光敏三极管感应产生脉冲,单片机通过对脉冲累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中能显示脉搏次数和时间,系统停止运行时,能够显示总的脉搏次数和时间。经测试,系统工作正常,达到设计要求。
Abstract
Pulse 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.
目 录
摘要 1
Abstract 2
目 录 3
引 言 4
第一章 概述 5
1.1 选题的背景和意义 5
1.2 脉搏测量仪的发展与应用 6
第二章 脉搏测量仪系统结构 7
2.1 光电脉搏测量仪的结构 7
2.2 工作原理 7
2.3 光电脉搏测量仪的特点 8
第三章 基本元器件介绍 9
3.1 AT89C51简介 9
3.2 光电传感器简介 14
3.3 LED的综述 15
第四章 基本结构模块 18
4.1 脉搏检测电路 18
4.2 信号采集电路 18
4.3 信号放大 19
4.4 波形整形部分 21
4.5 单片机处理电路 23
4.6 显示电路 24
第五章 软件系统 26
5.1 主程序流程 26
5.2 定时器中断程序流程 26
5.3 INT中断程序流程 27
5.4 显示程序流程 27
5.5 软件说明 28
第六章 抗干扰措施及使用方法 29
6.1 抗干扰措施 29
6.2 测量仪使用方法 30
第七章 系统调试 31
7.1 系统调试 31
7.2 系统检验 31
7.3 误差分析 33
总结 34
参考文献 35
结束语 36
附录1 38
附录2 39
引 言
脉搏测量属于检测有无脉博的测量,有脉搏时遮挡光线,无脉搏时透光强,所采用的传感器是红外接收二极管和红外发射二极管。用于体育测量用的脉搏测量大致有指脉和耳脉二种方式。这二种测量方式各有优缺点,指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降;耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确。
从脉搏波中提取人体的生理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。几乎世界上所有的民族都用过“摸脉”作为诊断疾病的手段。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和。
处理具有很高的医学价值和应用前景。但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏波信号更是低频微弱的非电生理信号, 必需经过放大和后级滤波以满足采集的要求。
第一章 概述
1.1 选题的背景和意义
脉搏携带有丰富的人体健康状况的信息,自公元三世纪我国最早的脉学专著《脉经》问世以来,脉学理论得到不断的发展和提高。在中医四诊(望、闻、问、切)中,脉诊占有非常重要的位置。脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中医“整体观念”、“辨证论证”的基本精神的体现与应用。脉诊作为“绿色无创”诊断的手段和方法,得到了中外人士的关注。但由于中医是靠手指获取脉搏信息,虽然脉诊具有简便、无创、无痛的特点易为患者接受,然而在长期的医疗实践中也暴露出一些缺陷。首先,切脉单凭医生手指感觉辨别脉象的特征,受到感觉、经验和表述的限制,并且难免存在许多主观臆断因素,影响了对脉象判断的规范化;其次,这种用手指切脉的技巧很难掌握;再则,感知的脉象无法记录和保存影响了对脉象机理的研究。脉诊的这种定性化和主观性,大大影响了其精度与可行性,成为中医脉诊应用、发展和交流中的制约因素。为了将传统的中医药学发扬光大,促进脉诊的应用和发展,必须与现代科技相结合,实现更科学、客观的诊断[1]。
医院的护士每天都要给住院的病人把脉记录病人每分钟脉搏数,方法是用手按在病人腕部的动脉上,根据脉搏的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。为了提高脉搏测量的精确与速度,多种脉搏测量仪被运用到医学上来,从而开辟了一条全新的医学诊断方法。
早在1860年Vierordt 创建了第一台杠杆式脉搏描记仪,国内20世纪50年代初朱颜将脉搏仪引用到中医脉诊的客观化研究方面。此后随着机械及电子技术的发展,国内外在研制中医脉象仪方面进展很快,尤其是70年代中期,国内天津、上海、江西等地相继成立了跨学科的脉象研究协作组,多学科共同合作促使中医脉象研究工作进入了一个新的境界。脉象探头式样很多,有单部、三部、单点、多点、刚性接触式、软性接触式、气压式、硅杯式、液态汞、液态水、子母式等组成,脉象探头的主要原件有应变片、压电晶体、单晶硅、光敏元件、PVDF压电薄膜等,其中以单部单点应变片式为最广泛,不过近年来正在向三部多点式方向设计[2]。
目前脉搏测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测、妊高症检测、中医脉象、脉率检测等等,商业应用也不断拓展,如运动、健身器材中的心率测试都用到了技术先进的脉搏测量仪。
1.2 脉搏测量仪的发展与应用
随着科学技术的发展,脉搏测量技术也越来越先进,对脉搏的测量精度也越来越高,国内外先后研制了不同类型的脉搏测量仪,而其中关键是对脉搏传感器的研究。起初用于体育测量的脉搏测试集中在对接触式传感器的研究,利用此类传感器所研制的指脉、耳脉等测量仪各有其优缺点。指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降:耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确[3]。过去在医院临床监护和日常中老年保健中出现的日常监护仪器,如便携式电子血压计,可以完成脉搏的测量,但是这种便携式电子血压计利用微型气泵加压橡胶气囊,每次测量都需要一个加压和减压的过程,存在体积庞大、加减压过程会有不适、脉搏检测的精确度低等缺点。
近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。
其中光电式脉搏传感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接检测出脉搏信号。具有结构简单、无损伤、精度高、可重复使用等优点。通过光电式脉搏传感器所研制的脉搏测量仪已经应用到临床医学等各个方面并收到了理想效果。
人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,是血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播,这种波成为脉搏波[4]。从脉搏波中提取人体的心理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和处理具有很高的医学价值和应用前景[5]。但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏波信号更是低频微弱的非电生理信号,因此必需经过放大和后级滤波以满足采集的要求。
第二章 脉搏测量仪系统结构
脉搏测量仪的设计,必须是通过采集人体脉搏变化引起的一些生物信号,然后把生物信号转化为物理信号,使得这些变化的物理信号能够表达人体的脉搏变化,最后要得出每分钟的脉搏次数,就需要通过相应的硬件电路及芯片来处理物理变化并存储脉搏次数。在硬件设计中一般的物理信号就是电压变化,有了这个系统的设计思路,本课题就此开始实施。
2.1 光电脉搏测量仪的结构
光电脉搏测量仪是利用光电传感器作为变换原件,把采集到的用于检测脉搏跳动的红外光转换成电信号,用电子仪表进行测量和显示的装置。本系统的组成包括光电传感器、信号处理、单片机电路、数码显示、电源等部分。
1.光电传感器
即将非电量(红外光)转换成电量的转换元件,它由红外发射二极管和接收三极管组成,它可以将接收到的红外光按一定的函数关系(通常是线性关系)转换成便于测量的物理量(如电压、电流或频率等)输出。
2.信号处理
即处理光电传感器采集到的低频信号的模拟电路(包括放大、滤波、整形等)。
3. 单片机电路
即利用单片机自身的定时中断计数功能对输入的脉冲电平进行运算得出心率(包括AT89C51、外部晶振、外部中断等)。
4.数码显示
即把单片机计算得出的结果用8位LED数码管静态扫描来显示,便于直接准确无误的读出数据。
5. 电源
即向光电传感器、信号处理、单片机提供的电源,可以是5V-9V的交流或直流的稳压电源。
2.2 工作原理
本设计采用单片机AT89C51为控制核心,实现脉搏测量仪的基本测量功能。脉搏测量仪硬件框图如下图1.1所示:
图 1.1 脉搏测量仪的工作原理
当手指放在红外线发射二极管和接收三极管中间,随着心脏的跳动,血管中血液的流量将发生变换。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收三极管的电流也跟着改变,这就导致红外接收三极管输出脉冲信号。该信号经放大、滤波、整形后输出,输出的脉冲信号作为单片机的外部中断信号。单片机电路对输入的脉冲信号进行计算处理后把结果送到数码管显示。
2.3 光电脉搏测量仪的特点
与传统的脉搏测量仪相比,光电式脉搏测量仪具有以下特点:
1. 测量的探测部分不侵入机体,不造成机体创伤,通常在体外。
2. 传感器可重复使用且速度快,精度高。
3. 测试的适用电压为5V-9V的直流电压。
4. 稳定性好、磨损小、寿命长、维修方便。
5. 由于结构简单,因此体积小、重量轻、性价比优越。
6. 测量的有效范围为50次-199次/分钟。
第三章 基本元器件介绍
3.1 AT89C51简介
AT89C5l是美国ATMEL公司生产的低电压、高性能的CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89CSl单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
3.1.1 AT89C51 的主要性能
AT89C2051是ATMEL公司生产的带2K字节闪速可编程可擦除只读存储器(EEPROM)的8位单片机,它具有如下主要特性,如图1.2所示:
(1)和MCS-51产品的兼容
(2)2K字节可重编程闪速存储器
(3)耐久性:1,000写/擦除周期
(4)2.7V~6V的操作范围
(5)全静态
操作:0Hz~24MHz
·两级加密程序存储器
·128×8位内部RAM
·15根可编程I/O引线
·两个16位定时器/计数器
·六个中断源
·可编程串行UART通道
·直接LED驱动输出
·片内模拟比较器
·低功耗空载和掉电方式
·和MCS-51产品的兼容
·2K字节可重编程闪速存储器
·耐久性:1,000写/擦除周期
·2.7V~6V的操作范围
·全静态操作:0Hz~24MHz
·两级加密程序存储器
·128×8位内部RAM
·15根可编程I/O引线
·两个16位定时器/计数器
·六个中断源
·可编程串行UART通道
·直接LED驱动输出
·片内模拟比较器
·低功耗空载和掉电方式
·和MCS-51产品的兼容
·2K字节可重编程闪速存储器
·耐久性:1,000写/擦除周期
·2.7V~6V的操作范围
·全静态操作:0Hz~24MHz
·两级加密程序存储器
·128×8位内部RAM
·15根可编程I/O引线
·两个16位定时器/计数器
·六个中断源
·可编程串行UART通道
·直接LED驱动输出
·片内模拟比较器
·低功耗空载和掉电方式。
3.1.2 AT89C2051的结构框图
AT89C2051是一带有2K字节闪速可编程可擦除只读存储体(EEPROM)的低电压,高性能8位CMOS微型计算机。如图1.3所示。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS—51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPL1和闪速存储器,ATMEL AT89C2051是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。
此外,从AT89C2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致,但P1口、P3口有其独特之处。
3.1.3 AT89C2051的引脚说明
AT89C2051是一个有20个引脚的芯片,与8051内部结构进行对比可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。如表1.1所示:
AT89C2051芯片的主要引脚功能为:
1. Vcc:电源电压。
2. GND:地。
3. P1口:P1口是一8位双向I/O口。口引脚P1.2~P1.7提供内部上拉电阻。 P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P1口引脚写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(IIL)。 P1口还在闪速编程和程序校验期间接收代码数据。
4. P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/0引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL)。P3口还用于实现AT89C2051的各种功能,如下表10-1所示。P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
5. RST:复位输入。RST一旦变成高电平,所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。
6. XTAL1:作为振荡器反相放大器的输入和内部时钟发生器的输入。
7. XTAL2:作为振荡器反相放大器的输出。
表1.1 P3口的功能
端口引脚 功能
P3.0 RXD(串行输入端口)
P3.1 TXD(串行输出端口)
P3.2 INT0(外中断0)
P3.3 INT1(外中断1)
P3.4 TO(定时器0外部输入)
P3.5 T1(定时器1外部输入)
从上述引脚说明可看出,AT89C2051没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片机应用系统不能在AT89C2051之外扩展存储器或I/O设备,也即AT89C2051本身即构成了最小单片机系统。
3.1.4 复位电路
时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位,如图1.4所示:
3.1.5 振荡电路
本设计晶振选择频率为12MHz,电容选择30pF如图1.5所示。经计算得单片机工作胡机器周期为:
12×(1÷12M)=1us。
3.2 光电传感器简介
光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。
光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。
光电式传感器是以光电器件作为转换元件的传感器。它可用于检测直接引起光量变化的非电量,如光强、光照度、辐射测温、气体成分分析等;也可用来检测能转换成光量变化的其他非电量,如零件直径、表面粗糙度、应变、位移、振动、速度、加速度,以及物体的形状、工作状态的识别等。光电式传感器具有非接触、响应快、性能可靠等特点,因此在工业自动化装置和机器人中获得广泛应用。近年来,新的光电器件不断涌现,特别是CCD图像传感器的诞生,为光电传感器的进一步应用开创了新的一页。
在此次设计中我们采用的是光电传感器中最常见普遍的光敏二极管做红外接收二极管和光面三极管做红外发送三极管。
3.2.1光敏二极管
光敏二极管是最常见的光传感器。光敏二极管的外型与一般二极管一样,只是它的管壳上开有一个嵌着玻璃的窗口,以便于光线射入,为增加受光面积,PN结的面积做得较大,光敏二极管工作在反向偏置的工作状态下,并与负载电阻相串联,当无光照时,它与普通二极管一样,反向电流很小(<µA),称为光敏二极管的暗电流;当有光照时,载流子被激发,产生电子-空穴,称为光电载流子。在外电场的作用下,光电载流子参于导电,形成比暗电流大得多的反向电流,该反向电流称为光电流。光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。
3.2.2光敏三极管
光敏三极管除了具有光敏二极管能将光信号转换成电信号的功能外,还有对电信号放大的功能。光敏三级管的外型与一般三极管相差不大,一般光敏三极管只引出两个极——发射极和集电极,基极不引出,管壳同样开窗口,以便光线射入。为增大光照,基区面积做得很大,发射区较小,入射光主要被基区吸收。工作时集电结反偏,发射结正偏。在无光照时管子流过的电流为暗电流Iceo=(1+β)Icbo(很小),比一般三极管的穿透电流还小;当有光照时,激发大量的电子-空穴对,使得基极产生的电流Ib增大,此刻流过管子的电流称为光电流,集电极电流Ic=(1+β)Ib,可见光电三极管要比光电二极管具有更高的灵敏度。
3.2.3光电传感器检测原理
检测原理是: 随着心脏的搏动,人体组织半透明度随之改变:当血液送到人体组织时,组织的半透明度减小,当血液流回心脏,组织半透明度则增大;这种现象在人体组织较薄的手指尖、耳垂等部位最为明显[5]。因此本设计将光敏二极管产生的红外线照射到人体的手指部位,经过手指组织的反射和衰减由装在该部位旁边的光敏三管来接收其透射光并把它转换成电信号。由于手指动脉血在血液循环过程中呈周期性的脉动变化,所以它对光的反射和衰减也是周期性脉动的, 于是光敏接收三极管输出信号的变化也就反映了动脉血的脉动变化。故只要把此电信号转换成脉冲并进行整形、计数和显示[9],即可实时的测出脉搏的次数。
3.3 LED 的综述
在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常
需要用显示器显示运行的中间结果、状态等信息,因此显示器也是不可缺少的外
部设备之一。显示器的种类很多,从液晶显示、发光二极管显示到CRT 显示器,
都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显
示器,简称LED 显示器。LED 显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点。但显示内容有限,不能显示图形,因而其应用有局限性[11]。
3.3.1 LED 的结构
LED数码管显示器是由发光的二极管显示字段组成的。在单片机应用系统中使用最多的就是七段LED数码管,有共阴极和共阳极两种。七段LED数码管显示器有8个发光二极管,其中从a~g管脚输入显示代码,可显示不同的数字或字符,Dp显示小数点。共阴极LED数码管显示器的公共端为发光二极管阴极,通常接地,当发光二极管的阳极为高电平时,发光二极管点亮。共阳极的LED数码管显示器的公共端为发光二极管的阳极,通常接+5V电源,当发光二极管的阴极为低电平时,发光二极管点亮。
本设计中采用的是4位七段共阳极数码管显示器,一共具有12个引脚,4个位选端,8个字选端。图1.6中所示,1、2、3、4是位选端;a~g、Dp是字选端。内部结构如图1.7所示。
3.3.2 LED数码管的显示方法
静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。
动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。
通过比较,我们可以发现LED动态显示更加适合本设计,所以就采用此方法。
第四章 基本结构模块
4.1 脉搏波检测电路
传感器由红外发光二级管和红外接收三极管组成。采用发光二极管作为光源时,可基本抑制由呼吸运动造成的脉搏波曲线的漂移。红外接收三极管在红外光的照射下能产生电能,它的特性是将光信号转换为电信号。在本设计中,红外接收三极管和红外发射二极管相对摆放以获得最佳的指向特性。
从光源发出的光除被手指组织吸收以外,一部分由血液漫反射返回,其余部分透射出来。光电式脉搏传感器按照光的接收方式可分为透射式和反射式2种[8]。其中透射式的发射光源与光敏接收器件的距离相等并且对称布置,接收的是透射光,这种方法可较好地反映出心律的时间关系。因此本系统采用了指套式的透射型光电传感器, 实现了光电隔离,减少了对后级模拟电路的干扰。结构如图1.8所示。
4.2 信号采集电路
图1.9是脉搏信号的采集电路,U3是红外发射和接收装置,由于红外发射二极管中的电流越大,发射角度越小,产生的发射强度就越大,所以对R21阻值的选取要求较高。R21选择270Ω同时也是基于红外接收三极管感应红外光灵敏度考虑的。R21过大,通过红外发射二极管的电流偏小,红外接收三极管无法区别有脉搏和无脉搏时的信号。反之,R21过小,通过的电流偏大,红外接收三极管也不能准确地辨别有脉搏和无脉搏时的信号。当手指离开传感器或检测到较强的干扰光线时,输入端的直流电压会出现很大变化,为了使它不致泄露到U2B输入端而造成错误指示,用C8、C9串联组成的双极性耦合电容把它隔断[10]。
当手指处于测量位置时,会出现二种情况:一是无脉期。虽然手指遮挡了红外发射二极管发射的红外光,但是由于红外接收三极管中存在暗电流,会造成输出电压略低。二是有脉期。当有跳动的脉搏时,血脉使手指透光性变差,红外接收三极管中的暗电流减小,输出电压上升。但该传感器输出信号的频率很低,如当脉搏只有为50次/分钟时,只有0.78Hz,200次/分钟时也只有3.33Hz,因此信号首先经R22、C10滤波以滤除高频干扰,再由耦合电容C8、C9加到线性放大输入端。
4.3 信号放大
4.3.1放大器的介绍
LM324 是四运放集成电路,它采用14 脚双列直插塑料封装.它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图2.0所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。LM324 的引脚排列见图2.1。
图2.0 图2.1
由于LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,
价格低廉等优点,因此被广泛应用在各种电路中。
4.3.2 放大电路
按人体脉搏在运动后跳动次数达200次/分钟的计算来设计低通放大器,如图3.6所示。R23、C6组成低通滤波器以进一步滤除残留的干扰,截止频率由R23、C6决定,运放U2B将信号放大,放大倍数由R23和R27的比值决定。如图2.2所示:
图2.2低通放大电路
根据一阶有源滤波电路的传递函数,可得:
放大倍数为:
截止频率为:
按人体的脉搏跳动为200次/分钟时的频率是3.3 Hz考虑,低频特性是令人满意的。
经过低通放大后输出的信号是叠加有噪声的脉动正弦波。波形如图2.3所示。
图2.3
4.4 波形整形部分
波形整形电路如图2.4所示,U2C是一个电压比较器,C11、R29构成一个微分器,U2A和C7、R32组成单稳态多谐振荡器,其脉宽由C7、R32决定。
该比较器的阀值电压可用R31调节在正弦波的幅值范围内,但是对R31的调节要求并不严格,因为U2C的输出信号(波形如图2.5)经C11、R29的微分后总是将正、负相间的尖脉冲(波形如图2.6)加到单稳态多谐振荡器U2A的反向输入端,不会造成很大的触发误差。
当有输入信号时,U2A在比较器输入信号的每个后沿到来时输出高电平,使C7通过R32充电。大约持续20ms之后,因C7充电电流减小而使U2A同相输入端的电位降低到低于反相输入端的电位(尖脉冲已过去很久),于是U2A改变状态并再次输出低电平。这长的脉冲是与脉搏同步的,并由红色发光二极管DS3的闪亮指示出来。即发光二极管作脉搏测量状态显示,脉搏每跳动一次发光二极管就亮一次。同时,该脉冲电平通过R24送到单片机/INTO脚,进行对心率的计算和显示。输出波形如图2.7所示。
经过比较器U2C的输出波形:
图2.5
经过微分器的输出波形:
图2.6
单片机接收到的信号:
图2.7
4.5 单片机处理电路
如图2.8所示,本部分运用了ATMEL公司的89C51单片机作为核心元件,在这里运用单片机能更快更准确地对数据进行运算,而且可以根据实际情况进行编程,所用外围元件少,轻巧省电,故障率低。
来自传感和整形输出电路的脉冲电平输入单片机89C51的/INTO脚,单片机设为负跳变中断触发模式,故每次脉冲下降沿到达时触发单片机产生中断并进行计时,来一个脉冲脉搏次数就加一;定时器中断主要完成一分钟的定时功能。单片机对一分钟内的脉冲次数进行累加,通过P0、P2口把测量过程和结果送到数码管显示出来[9]。
4.6 显示电路
本设计的显示采用LED数码管动态扫描来显示。两个4位的共阳极LED数码管组成8位显示,其中0、1两位显示测量中的时间,3、4两位显示测量中的脉搏次数,6、7两位用来显示上次测量的数据。单片机的P0口控制显示字型,P2口控
制显示字位。显示电路如图2.9。
4.5 整体硬件电路设计
电路的原理图见图3.0。电路由传感器电路、信号放大和整形电路、单片机电路、数码显示电路等部分组成。
传感器主要由红外线发射二极管和接收二极管组成,测量的原理如下:将手指放在红外线发射二极管和接收二极管中间,随着心脏的跳动,血管中血液的流量将发生变化。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收二极管的电流也跟着改变,这就导致红外接收二极管输出脉冲信号。脉冲信号由F1~F3、R3~R5、C1、C2等组成的低通放大器进行放大,再经由F4、R6、R7、C3组成的放大器进一步放大,其输出信号送给由F5、F6、RP1、R8等组成的施密特触发器进行整形后输出,输出的脉冲信号作为单片机的外部中断信号。可变电阻RP1用来调整施密特触发器的阀值电压,从而调整电路的灵敏度。
AT89C2051、X1、R10、C5等组成单片机电路。单片机电路对P3.2输入的脉冲信号进行计算处理后把结果送到数码管显示。发光二极管VD3作脉搏测量状态显示,脉搏每跳动一次发光二极管就点亮一次。
数码管DS1~DS3、VT1~VT3、R12~R21等组成数码显示电路。本机采用动态扫描显示的方式,使用共阳数码管, P3.3-P3.5口作三个数码管的动态扫描位驱动码输出,通过三极管驱动数码管。P1.0-P1.6口作数码显示七段笔划字形码的输出,用以驱动数码管的各字段。
第五章 软件系统
5.1 主程序流程
系统主程序控制单片机系统按预定的操作方式运行, 它是单片机系统程序的框架。系统上电后,对系统进行初始化。初始化程序主要完成对单片机内专用寄存器、定时器工作方式及各端口的工作状态的设定。系统初始化之后, 进行定时器中断、外部中断、显示等工作,不同的外部硬件控制不同的子程序[12]。流程如图3.1所示。
图3.1 主程序流程图
5.2 定时器中断程序流程
定时器中断服务程序由一分钟计时、按键检测、有无测试信号判断等部分组成。当定时器中断开始执行后,对一分钟开始计时,1s计时到之后继续检测下1s,直到60s到了再停止并保存测得的脉搏次数。同时可以对按键进行检测,只要复位测试值就可以重新开始测试。主要完成一分钟的定时功能和保存测得的脉搏次数。流程如图3.2所示。
图 3.2 定时器中断程序流程图
5.3 INT中断程序流程
外部中断服务程序完成对外部信号的测量和计算。外部中断采用边沿触发的方式,当处于测量状态的时候,来一个脉冲脉搏次数就加一,由单片机内部定时器控制一分钟,累加得出一分钟内的脉搏次数。流程如图3.3所示。
图 3.3 INT中断程序流程图
5.4 显示程序流程
显示程序包括显示上次的脉搏次数、本次测量中的时间和脉搏的次数。从中断程序中取得结果后,先显示上次的脉搏次数,经过10ms的延时后再显示测试中的脉搏次数,再经过10ms的延时显示测试中的时间。流程如图3.4所示。
图3.4 显示程序流程图
5.5 软件说明
本程序采用C语言,程序的可读性非常好。
程序中对前一次测量的脉搏数据进行了自动保存,并且用数码显示。
程序在执行过程若发现有干扰则忽略该干扰而不显示,进一步减少读入数据
的误差。
第六章 抗干扰措施及使用方法
6.1 抗干扰措施
为了提高测量仪的精确度,系统首先要解决的是硬件方面的干扰问题。光电式脉搏测量仪的测量过程中,前端测量到的脉搏信号十分微弱,容易受到外界环境干扰,其中主要的干扰源有测量环境光干扰、电磁干扰、测量运动噪声。
6.1.1环境光对脉搏传感器测量的影响
在光电式脉搏传感器中,光敏器件接收到的光信号不仅包含脉搏信息的透射光的信号,而且包含测量环境下的背景光信号,由于动脉波动引起的光强变化比背景光的变化微弱得多,因此在测量过程当中要保持测量背景光的恒定,减少背景光的干扰[13]。
测量环境下的背景光包含环境光和在测量过程中引起的二次反射光。为了减少环境光对脉搏信号测量的影响,同时考虑到传感器使用的方便性,采用密封的指套式包装方式,整个外壳采用不透光的介质和颜色,尽量减小外界环境光的影响,为了避免测量过程中的二次反射光的影响,在指套式传感器的内层表面涂上一层吸光材料,这样能有效减少二次反射光的干扰。
加上指套式外壳后的脉搏传感器测量到的脉搏波形比较平滑。这是因为加指套式的脉搏传感器中环境光在测量过程中基本不受外界环境光的影响,而且能够有效减少二次反射光,使照射到手指上的光波长单一,所以得到的脉搏信号较为稳定,没有明显的重叠杂波信号,能够很好的体现出脉搏波形的特征。
6.1.2电磁干扰对脉搏传感器的影响
通过光电转换得到的包含脉搏信息的电信号一般比较微弱,容易受到外界电磁信号的干扰,在传统的光电式脉搏传感器电路中,由于光敏器件和放大电路是分离的,那么在信号的传递过程就很容易受到外界电磁干扰,通常在一级放大电路采用电磁屏蔽的方式来消除电磁干扰[14]。本系统采用了新型的光敏器件,在芯片内部集成光敏器和一级放大电路,有效地抑制了外界电磁信号对原始脉搏信号的干扰。
工频干扰是电路中最常见的干扰,脉搏信号变化缓慢,特别容易受到工频信号的干扰,因此对工频信号干扰的抑制是保证脉搏信号测量精度的主要措施之一。通常脉搏信号的频率范围在0.3-30Hz之间,小于工频50Hz,因此通过低通滤波器可以有效滤除工频干扰,这在信号调理电路中容易实现;同时可以在控制电路中对光源进行脉冲调制,这样不但能够降低系统的功耗,而且能够在一定程度上减小外界的电磁干扰,在脉搏信号数据采集后,可以通过数据处理法方法进一步滤除工频信号的干扰[15]。
6.1.3 测量过程中运动噪声的影响
测量过程当中,通常情况下手指和光电式脉搏传感器可能产生相对的运动,这样对脉搏测量产生误差,可以通过2个方面减少运动噪声误差:一是改善指套式传感器的机械抗运动性,比如说使指套能够更紧的套在手指上,不易松动;二是从脉搏信号处理的角度,通过算法来减小误差。对于传感器的设计,现在采用的主要是第一个途径。
6.2 测量仪使用方法
测量仪通电后,数码管全部显示0。把手轻轻置于右下角的传感器中,以稍微有压迫感为宜,这时很快就可以看到红色发光二极管会伴随你的脉搏而闪烁,让你直观的看到自己脉搏跳动的速度,按下复位键后单片机和显示部分开始工作,单片机立刻开始计数,同时数码管显示出你的心率和测试的时间,非常方便。如果偶尔出现不稳的情况,请按复位键对系统进行复位。
第七章 系统调试
7.1 系统调试
根据系统设计方案,本系统的调试可分为两大部分:模拟部分和纯MCU部分。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试。断开两部分的连接点,先调试MCU部分。试着输入一系列脉冲(用适当的电阻接正极,间断性地输入),观察MCU部分能是否能显示;模拟部分用不透明的笔在红外发射二极管和接收三级管之间摇摆,借助示波器观察波形效果如何。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后进行整体测试,使系统的功能得以实现。
1.放大倍数的增加
传感器的输出端经示波器观察有幅度很小的正弦波,但经整形输出后检测到的脉冲还是很弱,在确定电路没有问题的情况下,加强信号的放大倍数,调整电阻R23和R27的阻值。
2.时钟的调试
根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本参数,就可使时钟调准确。
3.开机后无显示
首先检查交流电源部分,有无交流,若无则可能保险管或变压器烧坏,如有继续查直流有无,如无则电源已烧坏,可更换解决。
4.显示正常但经适当运动后测量,脉搏次数没有增加
可能是前置放大级有问题,可采用更换的办法判断并排除。
5.进人测量状态, 但测量值不稳定
主要是光电传感器受到电磁波等干扰,其次是损坏或有虚焊。
6.开机后显示不正常或按键失灵
可查手指摆放的位置或按键电路,若无故障则是硬件损坏。
7.电源的改变
理论上模拟部分有三处电压应为9V,但经过测试,全部使用5V电压也是可行的。
7.2 系统检验
系统上电后等待测试状态,如图3.5所示:
图3.5
测量中显示的数据,如图3.6所示:
图3.6
测量结束后显示的脉搏次数,如图3.7所示:
图3.7
7.3 误差分析
实际的脉搏次数 测量得出脉搏次数1 测量得出脉搏次数2 测量得出脉搏次数3 测量得出脉搏次数4 测量得出脉搏次数5
65 64 64 63 65 63
72 70 71 69 69 70
76 76 75 75 74 73
81 80 80 79 81 80
85 83 83 85 82 84
注:实际的脉搏次数以听诊器测出的脉搏次数为参考值。
由于传感器和其他器件本身并非理想线性,实测数据进行了线性补偿。
由均方差公式得: =0.59
误差分析:经校准,非线性补偿后,误差已基本达到要求。
总结
单片机近20年的飞速发展,俨然已成为计算机发展和应用的一个重要方面。
另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设
计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已
能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制
技术,是传统控制技术的一次革命。而51单片机作为单片机的主流,随着集成技术的发展,51系列单片机继承和发展了MCS-51系列的技术特色,有逐渐取而代之之势。
本设计主要是51单片机在脉搏测试系统中的应用。重点介绍了单片机的最
小系统,通过单片机最小系统实现了脉搏的测量系统,由光电传感器采集到脉冲信号,经过信号的放大、滤波和整形电路将输出的信号通过单片机的外部中断获取并最终在数码管上显示。利用单片机自身的定时中断、外部中断、计数等功能,不仅能显示出此次脉搏测量的次数,还能自动储存这个数据。
本次所设计的测量仪系统实现简单、功能稳定、使用方便,应用广泛,具
有实际意义。由于时间比较短,同时本人掌握的知识有限,本次设计虽已完成,但其中有很多不足,如程序不够简练,电路板不够美观,光电传感器灵敏度不够高,数码管显示部分不够完美等,同时此次设计的测量仪功能比较单一,没有如语音系统实现自动读出脉搏次数等人性化功能,且在设计过程中使用的运放数量也较多,加大了电源管理的复杂度。然而科技的进步势必会使测量仪的功能日益强大和完善,其应用领域将不断扩大,将会给我们的生活带来更多的方便和精彩。
为了更好的进行电脉搏测量仪的设计,在近一个学期的时间里,认真收集有关资料,并做相关的整理和阅读,为这次的设计做好充分的准备。经过这次毕设,我收获了很多,具体总结如下:(1)通过此次的设计,使我知道了无论做什么事都应该事先做好充分的准备,不应该盲目的只为了完成任务而被动的学习。(2)通过此次的设计,使我了解了脉搏测量仪在国内外发展之迅速、应用领域之广、市场前景之大。(3)通过此次的设计,使我对硬件设计和各模块的功能有了更深的了解,同时提高了动手能力。(4)通过次次的设计,使我体会到坚持不懈的毅力对完成一件事情起着巨大的作用。(5)通过此次的设计,使我深刻的体会到团队合作精神的重要性及相互讨论过程中的乐趣。
参考文献
1. 欧阳俊.基于BL-410 的指端脉搏波采集系统应用研究.2004.第11卷第2期
2. 韩文波.光电式脉搏波监测系统.长春光学精密机械学院学报.1999.第22卷第4期
3. 朱国富,廖明涛,王博亮.袖珍式脉搏波测量仪.电子技术应用.1998.第1期
4. 刘云丽,徐可欣等.微功耗光电式脉搏测量仪.电子测量技术.2005.第二期
5. 程咏梅,夏雅琴,尚岚.人体脉搏波信号检测系统.北京生物医学工程.2006.第25卷
6. 刘文,杨欣,张铠麟.基于AT89C2051单片机的指脉检测系统的研究.医疗装备.2005
7. 张毅坤.单片微型计算机原理及应用. 西安电子科技大学出版社. 1998.9第1版
8.任为民.电子技术基础课程设计. 中央广播电视大学出版社.1997年5月第1版
9. 朱月秀.单片机原理与应用.科学出版社.2004.2
10. 李世馨.模拟电子技术基础.高等教育出版社.2001.12 3
结束语
脉搏检测中关键技术是传感器的设计与传感器输出的微弱信号提取问题, 本文设计的脉搏波检测系统以光电检测技术为基础,并采用了脉冲振幅光调制技术消除周围杂散光、暗电流等各种干扰的影响。并利用过采样技术和数字滤波等数字信号处理方法,代替实现模拟电路中的放大滤波电路的功能。本系统模拟电路简单,由ADC841芯片实现脉搏信号采集,信号处理和脉搏次数的计算等功能,因此体积小,功耗低,系统稳定性高。本系统可实现脉搏波的实时存储并可实现与上位机(PC 机)的实时通讯, 因此可作为多参数病人中心监护系统的一个模块完成心率检测和脉搏波形显示。
当该放大器用于集群脉搏测量仪时,一定要注意不同信号通道之间的相互影响,建议把各个放大器的电源分开。此外,测量通道需要一个开关电路,当指夹悬空时,这个开关电路关闭单稳态电路,切断信号通路,防止乱计。几年的生产实践证明,该放大处理电路稳定可靠。下面是笔者在设计中获得的一些体会。采用二级放大好于三级放大,个别三级放大电路板的零点漂移大得足以达到满幅,使得测量不准确。每个单级放大器放大倍数最好不要大于30,以免自激振荡。本信号放大器的高频转折频率由C05、C04、R07、R08和R06决定,C05、C04通常选聚丙烯电容器或聚碳酸酯电容器,R07、R08和R06通常选金属膜五色环电阻。
IClA、R02和R03组成电压跟随器,设计值为2.5V,精确度由R02和R03决定,最好用金属膜五色环电阻器。隔直电容器C03的漏电要小,选用钽电解电容器为佳。IClA和IC1B要选用偏置电流小、输入失调电压小的运算放大器。考虑到性价比,笔者使用了TLC2264和TLC2262。
通过这次毕业设计,加强了我动手、思考和解决问题的能力。我觉得做毕业设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如PLC的功能,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践过吧!认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。作为毕业的学生,能够搞这样的关于PLC技术的设计,确实从中学到了很多的知识。在项目设计方面,打破了以往单纯为解决问题的观念,树立了良好的项目设计思想。在内容设计方面,比较深入的学习了PLC方面的知识,补充了自己知识上的不足,更重要的是给自己找到了一个发展的方向。
在这个过程中,受到了我们老师和同学的热切关注和耐心辅导,特别李建荣老师对我进行了系统的讲解和指导,对设计提出了很多建设性的意见及建议,对我的设计起到了指导性和决定性的作用,使我深刻的体会到了良师益友给我带来的帮助,在此表示深深的感谢!感谢李建荣老师给了我们这个机会去更深层次的学习对于PLC的理解能力和分析设计能力,感谢这次毕业设计带给我的丰收的硕果,感觉系统的总结了3年来所学的专业知识很有用途,同时激发了我对于PLC这个领域的极大兴趣,我将以此为起点,去更加努力的学习深造争做PLC领域的专业人才,为自己争光,为母校添彩。
附录1
脉搏测量仪电路原理图
附录2
程序源代码
#include <reg51.h>
unsigned char i,j,t,m,DelayTime,DispBuf[3];
unsigned int n,mb;
unsigned char code
BitTab[3]={0xf7,0xef,0xdf}; //位驱动码
unsigned char code
DispTab[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84}; //字形码
sbit P3_0=P3^0;
void delay(DelayTime);
main() //主程序
{
TMOD=0x01; //定时器T0工作于方式1
TH0=0xec;
TL0=0x78; //T0定时时间为5ms
IE=0X83; //开中断
IT0=1; //外部中断0为边沿触发方式
TR0=1; //开定时器T0
for( ) //脉搏指示灯控制
{
if(P3_0==0)
{
delay(200);
P3_0=1;
}
}
}
external0() interrupt 0//外部中断服务程序
{
P3_0=0; //点亮指示灯
if(n==0)
mb=0;
else
mb=12000/n; //计算每分钟脉搏数
DispBuf[2]=mb%10; //取个位数
mb=mb/10;
DispBuf[1]=mb%10; //取十位数
DispBuf[0]=mb/10; //取百位数
n=0;
}
Timer0() interrupt 1 //定时中断服务程序
{
TH0=0xec;
TL0=0x78;
t=BitTab[j]; //取位值
P3=P3|0x38; //P3.3-P3.5送1
P3=P3&t; //P3.3-P3.5输出取出的位值
t=DispBuf[j]; //取出待显示的数
t=DispTab[t]; //取字形码
P1=t; //字型码由P3输出显示
j++; //j作为数码管的计数器,取值0-2,显示程序通过它确认显示哪个数码管
if(j==3)
j=0;
n++;
if(n==2000) //10秒钟测不到心率,n复位
n=0;
}
void delay(DelayTime)//延时子程序
{
for(;DelayTime>0;DelayTime--)
{
for(i=0;i<250;i++);
}