单片机脉搏测量仪的制作

2018-01-12 20:44:55编辑:什么鱼 关键字:单片机  脉搏测量仪

本文介绍一种用 单片机 制作的脉搏测量仪,只要把手指放在传感器内,很快就可以精确测出每分钟脉搏数,测量的结果用三位数字显示出来。

一、电路工作原理

电路原理见附图。电路由传感器电路、信号放大和整形电路、 单片机 电路、数码显示电路等四部分组成。

传感器由红外线发射二极管和接收二极管组成,测量原理如下:将手指放在红外线发射二极管和接收二极管之间,血管中血液的流量随着心脏的跳动变化,由于手指放在光的传递路径中,血管中血液饱和度的变化将引起光的传递强度变化,此变化和心跳的节拍相对应,因此红外接收二极管的电流也跟着心跳的节拍改变,使得红外接收二极管输出与心跳节拍相对应的脉冲信号。该脉冲信号经F1~F3、R3~R5。C1、C2等组成的低通放大器放大,F4、R6、R7、C3组成的放大器进一步放大后,送给由F5、F6、RP1、R8等组成的施密特触发器整形后输出,作为 单片机 的外部中断信号。电路中的可变电阻RP1用来调整施密特触发器的阈值电梗吹髡缏返牧槊舳取?/DIV>

IC2、X1、R10、C5等组成 单片机 电路。单片机对由P3.2输入的脉冲信号进行计算处理后,送到数码管显示。发光二极管VD3作脉搏测量状态显示,脉搏每跳动一次,VD3点亮一次。

三只数码管VT1~VT3、R12-R21等组成数码显示电路。本机采用动态扫描显示方式,使用共阳数码管,P3.3~P3.5口作三只数码管的动态扫描位驱动码输出,通过三极管VT1-VT3驱动数码管。P1.0-P1.6口作数码管段码输出。

二、软件设计

程序用C语言编写,由主程序、外部中断服务程序、定时器TO中断服务程序、延时子程序等模块组成。主程序主要完成程序的初始化。外部中断0服务程序由测量、计算、读数等部分组成。定时中断服务程序由计时、动态扫描显示、无测试信号判断等部分组成。程序中用变量n对时间计数,用变量m对脉搏脉冲信号个数计数。

从P3.2口输入的与脉搏相对应的脉冲信号作为外部中断0的请求中断信号,外部中断采用边沿触发的方式。由于脉冲信号的频率很低,所以不适宜用计数的方法进行测量,故而采用测脉冲周期的方法进行测量,即用脉冲来控制计时信号,通过计时数计算出脉冲周期,再由脉冲周期计算出频率,从P3.2口每输入一次脉冲信号就能显示一次脉搏数。

定时器TO的中断时间为5ms,每中断一次计时变量n加1,因此计时的基本单位为5ms,例如一个脉搏脉冲周期对应的n值为240,则对应的时间为1.2s,由此可得每分钟脉搏数为50。如果n的值达到2000,即10秒钟仍没有发生外部中断,则表示没有脉搏脉冲信号输入,于是n被清零,测量结果显示也为0。

读数采用三位数码显示。定时器TO每中断一次显示一个位,因此3次中断就可以刷新一次数据,即15ms刷新一次数据。

三、安装与调试

传感器的制作是一个关键。可将红外线发射二极管和接收二极管分别固定在一个塑料夹子的两侧,用时只需将夹子夹在手指上即可。制作时注意保证红外线接收二极管在使用时不要受到外界光线的干扰。

调试的主要工作是通过对RP1的调节来调整电路的灵敏度,RP1的阻值越小灵敏度越高,反之灵敏度越低。调试时可通过VD3的发光状态进行观察,如果脉搏跳动时VD3不跟随发光,则说明灵敏度偏低,不易检测到脉搏信号;如果在没有脉搏跳动时VD3偶尔也点亮发光,说明灵敏度偏高,容易受到干扰。


关键字:单片机  脉搏测量仪

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018011237322.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:单片机演奏音乐实验
下一篇:51单片机16*16LED点阵滚动显示

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

51单片机实现LED流水灯(数组方式和位运算方式)

/* 名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧。 要注意两点: 1、sfr和sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明,sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似,但是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。如果用宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者,sbit是定义一个标志位,也叫位变量。而类似于#define key1 P3
发表于 2018-07-21 13:08:22

51单片机之按键实验

/* 名称:51单片机之按键实验 说明:键盘是计算机最基础、最重要的输入设备之一。对于键盘来说,其工作任务大体可以分为以下三项: (1)、按键识别。即判断有无按键按下。 (2)、求键值。判断哪个键被按下。 (3)、执行相应的操作。 在这里,实验所用到的键盘为独立键盘和矩阵键盘。对于独立键盘,它的每个按键需要占用一个IO口。一般来说,按键一端接地,另一端接IO口。当按键按下时,线路被导通,IO口被拉低,即状态为‘0’。所以在使用是我们一般把对应IO口置成高电平,然后不断检测此IO口是否被拉低,从而判断按键是否按下。 对于矩阵键盘来说,它用较少的IO口完成较多个按键
发表于 2018-07-21 13:07:26

51单片机之数码管显示实验

/* 名称:51单片机之数码管显示实验 说明:对于数码管来说,其本质上可以理解为按照一定规则组合的多个二极管。其使用只需按照特定规则显示对应的二极管即可。要稍微注意一点的就是多个数码管的显示分为静态显示和动态显示。静态显示就是每个二极管显示的内容是一样的,通过片选信号来决定是哪个二极管该显示。动态数码管,即利用人眼的视觉停留效果,快速扫描,快速显示每个数码管的内容,使得每个数码管看起来好像是一起显示的一样。 本实验编写了几个数码管显示的简单程序。在此不做赘述了。*/#include <reg52.h>#define uchar unsigned char//共阳极段码(a在高位,dp在低位
发表于 2018-07-21 13:06:23

STC单片机片内EEPROM的读写

宏晶STC很多系列的单片机片内都集成了EEPROM存储器(其实是Data Flash),方便用户使用,想得真周到!今天写了个小程序,测试了一下,工作正常。下面就上我自己写的源程序。本人在STC89C52RC单片机上试验成功。首先是stcEEPROM.h头文件内容:/*When         Who     Remarks----------------------------------2011-Oct-06  黄长浩  初始版本 */ #ifndef __STCEEPROM_H__#define
发表于 2018-07-17 21:12:48

AVR单片机ATMEGA8 USART的使用

;       [Bus Signal]  TX, RX, CK    USART支持同步模式,因此USART 需要同步始终信号USART_CK(如STM32 单片机),通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。在博主目前的项目中使用通信主要是通过RS485协议来进行通信,RS485通信是工业上非常常见的半双工异步通信典型通信协议,特征是通信的设备都挂载到主线上,使用差分信号来判断收发,且同一时刻只能进行一个功能(收信息或者发信息)那么在博主这边的软件处理方式如下;首先要
发表于 2018-07-16 20:41:43

AVR单片机中ATmega8的AD转换探究

AD采集最好要满足的条件:采样频率不小于被采集信号最高频率的两倍,则采样输出信号就可以无失真的重新啊还原输入信号,通常的实际应用中,采样频率为采集最高频率的5-10倍。AD芯片的数据输出方式有串行和并行两种方式,对于AVR单片机来说A/D芯片和AVR单片机接口是需要考虑的一些问题:(1)模拟信号输入的连接:单端输入时,VIN+引脚直接与信号输入连接,VIN-接地。差分输入时,单端输入正信号,VIN+引脚直接与信号连接,VIN-引脚接地。单端输入负信号,VIN-引脚与信号连接,VIN+引脚接地。(2)数据输入线与系统总线的连接:有可控制的三态输出门时候可以直接和系统总线连接,没有输出门的时候要通过I/O口进行连接。(3)启动信号
发表于 2018-07-16 20:40:14

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved