单片机脉搏测量仪

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

一、电路工作原理

单片机脉搏测量仪

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

一、电路工作原理

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

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

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偶尔也点亮发光,说明灵敏度偏高,容易受到干扰。

展开

全部

传送带计数器c语言程序,脉搏计数器的程序(用C语言编写程序)相关推荐

  1. c语言编程序按下列公式计算e的值,编写程序,利用公式 ,求出e的近似值

    已知一个三角形中三条边的长度分别为a,b和c,编写程序利用公式求出三角形的面积,其中S=(a+b+c)/2.要求边长a. usingSystem;usingSystem.Collections.Gen ...

  2. vs2017c语言一闪而逝6,Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法...

    这篇文章主要为大家详细介绍了Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用Visual Studio IDE编写 ...

  3. c语言中输入n一个整数存入一维数组,编写程序输入n个整数到一维数组(先输入数据的个数n,再输入n个数据),然后以输入的顺序输出这些数。...

    满意答案 王毛毛00000 2014.05.25 采纳率:58%    等级:7 已帮助:613人 首先声明:我是来被骗的!因为根据经验绝大部分的一级头衔的人都是想到问题才注册百度的,别人回答了基本不 ...

  4. c语言输入一批正整数 求其中的偶数和,编写程序,输入一批正整数(以零或负数为结束标志),求其中的偶数和。...

    2119: (难度:☆☆☆☆★) 求偶数和 时间限制: 1 Sec 内存限制: 128 MB 提交: 175 解决: 80 [提交][状态][讨论版] 题目描述 编写程序,输入一批正整数(以零或负数为 ...

  5. 计算机专业写不出程序,计算机专业的同学总说在编写程序,他们究竟在编什

    原标题:计算机专业的同学总说在编写程序,他们究竟在编什 (部分图文搜集自网络) 如果你有一个计算机专业的同学,那么肯定会经常遇到一种状况,就是他们总是在说自己每天编写数小时的程序,可是他们究竟在编什么 ...

  6. java创建一个程序把输入字符串的大小写互换_8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转...

    package com.test; import java.util.Scanner; /** * 8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大 ...

  7. 用c语言复制字符串的元音字母,急求:编写程序,将一个字符串中的元音字母复制到另一个字符串,然后输出。...

    #include #include void str(char a[100],char b[100]) { int i=0, j=0; while(a[i]!='\0')//'\0'代表ASCLL码0 ...

  8. python编写程序、从键盘输入一个年份_Python 编写程序,从键盘输入年月日,判断是当年的第几天。...

    先输入语句(年,月,日) 再分别写出平年,闰年从1月到12月的天数作为一个列表依据#因为这个是不会变的. 然后用if语句来判断年份是否为闰年 按这个思路来就很清晰明了了. 话不多说,附图 可能很模糊, ...

  9. 编写程序实现披萨的制作。需求说明编写程序,接收输入信息,选择需要制作的披萨。可供选择的披萨有:培根披萨和海鲜披萨。

    运行效果下截图 下面是代码 public class Pizza {//披萨类,父类 //私有属性         private String name;         private Doubl ...

  10. c语言编写程序x的y次方,C语言变为编程y = x-x立方/ 3! + x五次方力量/ 5! -x7th power / 7!...

    这似乎不对,但是无论如何,我只是想补充一个问题,如果可以的话,您能再帮我一次吗? 您不能采用它,但不要说我的代码是错误的!结果留在那里,我自己看了一下. 它不是正整数(x)的序列,被写了n次,怎么可能 ...

最新文章

  1. PL/SQL不能导入备份文件如何解决
  2. startuml如何画流程图_因为流程图没画好SCI被拒稿!看完师姐的攻略后我被吊打了!...
  3. 27、HTML框架(同一个浏览器窗口中显示不止一个页面)
  4. Mono新突破:CentOS 7.2下安装Mono 5.0
  5. Linux open函数使用方法记录
  6. 模拟电路--一种简单的无源限幅电路的设计
  7. python实现给定信号生成任意信噪比的带噪声信号
  8. mysql 主从手动切换
  9. php截取等长UFT8中英文混合字串
  10. 蓝桥杯2013c++真题:排它平方数
  11. 作为一个职业达人,你需要水滴石出的专注
  12. Altium Designer 10 安装破解教程
  13. 如何进行windows数据恢复呢
  14. 03-JVM内存分配机制详解
  15. 融云通讯服务器,融云IM即时通讯功能接入和部署方式有哪些_如何收费_企业服务汇...
  16. linux鼠标垫图片,如何自制智能游戏鼠标垫
  17. Android颜色透明度(不透明度)计算
  18. K. 冒险公社 (线性DP)
  19. lua的演进 lua的历史
  20. 动手学数据分析(五)- 模型建立和评估

热门文章

  1. 整数规划:分支定界法
  2. 根据官方数据制作中国省市区数据库
  3. 渗透测试工程师常见面试33题——应届生
  4. 驱动安装时数字签名无效
  5. 汉印科技大会:凝聚匠心 成就卓越民族打印机品牌
  6. 元素周期表排列的规律_化学元素周期表为什么这样排列,是按照什么规律
  7. idea java maven 打包,idea maven项目 基于idea自己打包方式 以及使用maven插件打包的三种方式...
  8. JAVA实现简单电话簿功能
  9. c++课程设计之通讯录电话簿管理设计
  10. SVM支持向量机原理及代码实现(包含数学原理,超详细)