基于单片机的脉搏测量仪的设计 - 图文

更新时间:2023-03-10 21:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

意义:医院的护士每天都要给住院的病人把脉记录病人每分钟脉搏数,方法是用手按在病人腕部的动脉上,根据脉搏的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。而该系统以AT89C51单片机为核心,以红外发光二极管和光敏三极管为传感器,并利用单片机系统内部定时器来计算时间,由光敏三极管感应产生脉冲,单片机通过对脉冲累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中能显示脉搏次数和时间,系统停止运行时,能够显示总的脉搏次数和时间。

目的:实现脉搏波的实时存储并可实现与上位机( PC 机) 的实时通讯,作为多参数病人

中心监护系统的一个模块完成心率检测和脉搏波形显示。

2.1 光电脉搏测量仪的结构

光电脉搏测量仪是利用光电传感器作为变换原件,把采集到的用于检测脉搏跳动的红外光转换成电信号,用电子仪表进行测量和显示的装置。本系统的组成包括光电传感器、信号处理、单片机电路、数码显示、电源等部分。 1.光电传感器

即将非电量(红外光)转换成电量的转换元件,它由红外发射二极管和接收三极管组成,它可以将接收到的红外光按一定的函数关系(通常是线性关系)转换成便于测量的物理量(如电压、电流或频率等)输出。 2.信号处理

即处理光电传感器采集到的低频信号的模拟电路(包括放大、滤波、整形等)。 3. 单片机电路

即利用单片机自身的定时中断计数功能对输入的脉冲电平进行运算得出心率(包括AT89C51、外部晶振、外部中断等)。 4.数码显示

即把单片机计算得出的结果用8位LED数码管静态扫描来显示,便于直接准确无误的读出数据。 5. 电源

即向光电传感器、信号处理、单片机提供的电源,可以是5V-9V的交流或直流的稳压电源。

2.2 工作原理

本设计采用单片机AT89C51为控制核心,实现脉搏测量仪的基本测量功能。脉搏测量仪硬件框图如下图1.1所示:

光电传感器 低通放大器 比较器和振荡器 外部中断信号

数码显示电路 单片机 AT89C51 外部晶振

图 1.1 脉搏测量仪的工作原理

当手指放在红外线发射二极管和接收三极管中间,随着心脏的跳动,血管中血液的流量将发生变换。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收三极管的电流也跟着改变,这就导致红外接收三极管输出脉冲信号。该信号经放大、滤波、整形后输出,输出的脉冲信号作为单片机的外部中断信号。单片机电路对输入的脉冲信号进行计算处理后把结果送到数码管显示。

硬件:

第三章 基本元器件介绍

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驱动输出 ·片内模拟比较器

3

图1.2 AT89C2051的结构框图

·低功耗空载和掉电方式 ·和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是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。

图1.3 AT89C2051内部结构图

此外,

从AT89C2051内部结构图也可看出,其内部结构与8051内部结构基本一致(除模拟比较器外),引脚RST、XTAL1、XTAL2的特性和外部连接电路也完全与51系列单片机相应引脚一致,但P1口、P3口有其独特之处。 3.1.3 AT89C2051的引脚说明

AT89C2051是一个有20个引脚的芯片,与8051内部结构进行对比可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。如表1.1所示:

5

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 P3.1 P3.2 P3.3 P3.4 P3.5

功能 RXD(串行输入端口) TXD(串行输出端口) INT0(外中断0) INT1(外中断1) TO(定时器0外部输入) T1(定时器1外部输入) 从上述引脚说明可看出,AT89C2051没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片机应用系统不能在AT89C2051之外扩展存储器或I/O设备,也即AT89C2051本身即构成了最小单片机系统。 3.1.4 复位电路

图1.4复位电路图

时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位,如图1.4所示。 3.1.5 振荡电路

图1.5振荡电路图

本设计晶振选择频率为12MHz,电容选择30pF如图1.5所示。经计算得单片机工作胡机器周期为:

7

VCCSsw-PBC30.47ufR11kGNDC1230pFXLAL1XTALXTAL30pF

1C2XTAL212×(1÷12M)=1us。

3.2 光电传感器简介

光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。 光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。

光电式传感器是以光电器件作为转换元件的传感器。它可用于检测直接引起光量变化的非电量,如光强、光照度、辐射测温、气体成分分析等;也可用来检测能转换成光量变化的其他非电量,如零件直径、表面粗糙度、应变、位移、振动、速度、加速度,以及物体的形状、工作状态的识别等。光电式传感器具有非接触、响应快、性能可靠等特点,因此在工业自动化装置和机器人中获得广泛应用。近年来,新的光电器件不断涌现,特别是CCD图像传感器的诞生,为光电传感器的进一步应用开创了新的一页。

在此次设计中我们采用的是光电传感器中最常见普遍的光敏二极管做红外接收二极管和光面三极管做红外发送三极管。 3.2.1光敏二极管

光敏二极管是最常见的光传感器。光敏二极管的外型与一般二极管一样,只是它的管壳上开有一个嵌着玻璃的窗口,以便于光线射入,为增加受光面积,PN结的面积做得较大,光敏二极管工作在反向偏置的工作状态下,并与负载电阻相串联,当无光照时,它与普通二极管一样,反向电流很小(<µA),称为光敏二极管的暗电流;当有光照时,载流子被激发,产生电子-空穴,称为光电载流子。在外电场的作用下,光电载流子参于导电,形成比暗电流大得多的反向电流,该反向电流称为光电流。光电流的大小与光照强度成正比,于是在负载电阻上就能得到随光照强度变化而变化的电信号。 3.2.2光敏三极管

光敏三极管除了具有光敏二极管能将光信号转换成电信号的功能外,还有对电信号放大的功能。光敏三级管的外型与一般三极管相差不大,一般光敏三极管只引出两个极——发射极和集电极,基极不引出,管壳同样开窗口,以便光线射入。为增大光照,基区面积做得很大,发射区较小,入射光主要被基区吸收。工作时集电结反偏,

发射结正偏。在无光照时管子流过的电流为暗电流Iceo=(1+β)Icbo(很小),比一般三极管的穿透电流还小;当有光照时,激发大量的电子-空穴对,使得基极产生的电流Ib增大,此刻流过管子的电流称为光电流,集电极电流Ic=(1+β)Ib,可见光电三极管要比光电二极管具有更高的灵敏度。 3.2.3光电传感器检测原理

检测原理是: 随着心脏的搏动,人体组织半透明度随之改变:当血液送到人体组织时,组织的半透明度减小,当血液流回心脏,组织半透明度则增大;这种现象在人体组织较薄的手指尖、耳垂等部位最为明显。因此本设计将光敏二极管产生的红外线照射到人体的手指部位,经过手指组织的反射和衰减由装在该部位旁边的光敏三管来接收其透射光并把它转换成电信号。由于手指动脉血在血液循环过程中呈周期性的脉动变化,所以它对光的反射和衰减也是周期性脉动的, 于是光敏接收三极管输出信号的变化也就反映了动脉血的脉动变化。故只要把此电信号转换成脉冲并进行整形、计数和显示,即可实时的测出脉搏的次数。

[9]

[5]

3.3 LED 的综述

在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常 需要用显示器显示运行的中间结果、状态等信息,因此显示器也是不可缺少的外 部设备之一。显示器的种类很多,从液晶显示、发光二极管显示到CRT 显示器, 都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显

示器,简称LED 显示器。LED 显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点。但显示内容有限,不能显示图形,因而其应用有局限性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所示。

9

[11]

图1.6 4位数码管引脚分布图

图1.7 4位共阳极数码管结构图

3.3.2 LED数码管的显示方法

静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间

隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

通过比较,我们可以发现LED动态显示更加适合本设计,所以就采用此方法。 4.3.1放大器的介绍

LM324 是四运放集成电路,它采用14 脚双列直插塑料封装.它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。

每一组运算放大器可用图2.0所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo 的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo 的信号与该输入端的相位相同。LM324 的引脚排列见图2.1。

图2.0 图2.1

由于LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用, 价格低廉等优点,因此被广泛应用在各种电路中。

第四章 基本结构模块

4.1 脉搏波检测电路

传感器由红外发光二级管和红外接收三极管组成。采用发光二极管作为光源时,可基本抑制由呼吸运动造成的脉搏波曲线的漂移。红外接收三极管在红外光的照射下能产生电能,它的特性是将光信号转换为电信号。在本设计中,红外接收三极管和红外发射二极管相对摆放以获得最佳的指向特性。

从光源发出的光除被手指组织吸收以外,一部分由血液漫反射返回,其余部分透射出来。光电式脉搏传感器按照光的接收方式可分为透射式和反射式2种。其中透射式的发射光源

11

[8]

与光敏接收器件的距离相等并且对称布置,接收的是透射光,这种方法可较好地反映出心律的时间关系。因此本系统采用了指套式的透射型光电传感器, 实现了光电隔离,减少了对后级模拟电路的干扰。结构如图1.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加到线性放大输入端。

图1.9 信号采集电路

4.3 信号放大

4.3.2 放大电路

按人体脉搏在运动后跳动次数达200次/分钟的计算来设计低通放大器,如图3.6所示。R23、C6组成低通滤波器以进一步滤除残留的干扰,截止频率由R23、C6决定,运放U2B将信号放大,放大倍数由R23和R27的比值决定。如图2.2所示:

图2.2低通放大电路

根据一阶有源滤波电路的传递函数,可得:

A(s)?V0(s)A0?

sV(s)i1?wc放大倍数为:A0?1?R231M?1??214 R274.7K截止频率为:f0?1?3.39Hz

2?R23C6按人体的脉搏跳动为200次/分钟时的频率是3.3 Hz考虑,低频特性是令人满意的。

13

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所示。

图2.4 波形整形电路

4.5 单片机处理电路

如图2.8所示,本部分运用了ATMEL公司的89C51单片机作为核心元件,在这里运用单片机能更快更准确地对数据进行运算,而且可以根据实际情况进行编程,所用外围元件少,轻巧省电,故障率低。

来自传感和整形输出电路的脉冲电平输入单片机89C51的/INTO脚,单片机设为负跳变

中断触发模式,故每次脉冲下降沿到达时触发单片机产生中断并进行计时,来一个脉冲脉搏次数就加一;定时器中断主要完成一分钟的定时功能。单片机对一分钟内的脉冲次数进行累加,通过P0、P2口把测量过程和结果送到数码管显示出来。

图2.8 单片机处理电路

[9]

4.6 显示电路

本设计的显示采用LED数码管动态扫描来显示。两个4位的共阳极LED数码管组成8位显示,其中0、1两位显示测量中的时间,3、4两位显示测量中的脉搏次数,6、7两位用来显示上次测量的数据。单片机的P0口控制显示字型,P2口控 制显示字位。显示电路如图2.9。

15

4.5 整体硬件电路设计 电路的原理图见图3.0。电路由传感器电路、信号放大和整形电路、单片机电路、数码显示电路等部分组成。 R9 ICIVDDVSSC4100uF100VD3LEDR11220C8100uF VD1PH303C51uFDS1DS2DS3C65XTAL130pF4XTAL2IC2P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71213141516171819220*7R1010kC730pFR1100R222kR5C147uFX112M1678911RSTP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.7R15R16R17R18R19R20R21S1R310kR410kF211M21F221F32P3.0/RXDP3.1/TXD23C22.2uFAT89C2051VT19012VT29012VT39012DC5V VD2PH302C11uFR622kF4121F521F62R122kR132kR142kRP1R7470k47kR8100k图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 定时器中断程序流程

定时器中断服务程序由一分钟计时、按键检测、有无测试信号判断等部分组成。当定时

17

器中断开始执行后,对一分钟开始计时,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语言,程序的可读性非常好。

程序中对前一次测量的脉搏数据进行了自动保存,并且用数码显示。 程序在执行过程若发现有干扰则忽略该干扰而不显示,进一步减少读入数据 的误差。

总结

19

单片机近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

附录1

脉搏测量仪电路原理图

22

附录2

程序源代码

#include

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//外部中断服务程序

第23页

字形码 // { P3_0=0; //点亮指示灯 if(n==0) mb=0; else

mb=12000/n; //计算每分钟脉搏数 DispBuf[2]=mb; //取个位数 mb=mb/10;

DispBuf[1]=mb; //取十位数 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)//延时子程序

24

{

for(;DelayTime>0;DelayTime--) { }

for(i=0;i<250;i++);

第25页

本文来源:https://www.bwwdw.com/article/2now.html

Top