单片机心率测量仪源代码

发布者:lxy64420245最新更新时间:2015-06-25 来源: 51hei关键字:单片机  心率测量仪  源代码 手机看文章 扫描二维码
随时随地手机看文章

将你的食指轻轻地放在传感器上,就能看到LED指示灯随着你的心跳而闪动,人体指尖的动脉比较发达,当动脉血管随心脏周期性收缩与舒张时,血管中的血液容积也会发生变化。

上面这个是采集部分的原理图全套的制作资料请到http://www.51hei.com/bbs/dpj-22525-1.html 去下载,下面是心率测量仪单片机部分源代码

/*
  Project: Measuring heart rate through fingertip
  Copyright @ Rajendra Bhatt
  January 18, 2011
  PIC16F628A at 4.0 MHz external clock, MCLR enabled
*/

sbit IR_Tx at RA3_bit;
sbit DD0_Set at RA2_bit;
sbit DD1_Set at RA1_bit;
sbit DD2_Set at RA0_bit;
sbit start at RB7_bit;
unsigned short j, DD0, DD1, DD2, DD3;
unsigned short pulserate, pulsecount;
unsigned int i;
//-------------- Function to Return mask for common anode 7-seg. display
unsigned short mask(unsigned short num) {
 switch (num) {
 case 0 : return 0xC0;
 case 1 : return 0xF9;
 case 2 : return 0xA4;
 case 3 : return 0xB0;
 case 4 : return 0x99;
 case 5 : return 0x92;
 case 6 : return 0x82;
 case 7 : return 0xF8;
 case 8 : return 0x80;
 case 9 : return 0x90;
 } //case end
}

void delay_debounce(){
 Delay_ms(300);
}

void delay_refresh(){
 Delay_ms(5);
}

void countpulse(){
 IR_Tx = 1;
 delay_debounce();
 delay_debounce();
 TMR0=0;
 Delay_ms(15000);  // Delay 1 Sec
 IR_Tx = 0;
 pulsecount = TMR0;
 pulserate = pulsecount*4;
}

void display(){
  DD0 = pulserate%10;
  DD0 = mask(DD0);
  DD1 = (pulserate/10)%10;
  DD1 = mask(DD1);
  DD2 = pulserate/100;
  DD2 = mask(DD2);
  for (i = 0; i<=180*j; i++) {
    DD0_Set = 0;
    DD1_Set = 1;
    DD2_Set = 1;
    PORTB = DD0;
    delay_refresh();
    DD0_Set = 1;
    DD1_Set = 0;
    DD2_Set = 1;
    PORTB = DD1;
    delay_refresh();
    DD0_Set = 1;
    DD1_Set = 1;
    DD2_Set = 0;
    PORTB = DD2;
    delay_refresh();
    }
  DD2_Set = 1;
}

void main() {
 CMCON = 0x07;    // Disable Comparators
 TRISA = 0b00110000; // RA4/T0CKI input, RA5 is I/P only
 TRISB = 0b10000000; // RB7 input, rest output
 OPTION_REG = 0b00101000; // Prescaler (1:1), TOCS =1 for counter mode
 pulserate = 0;
 j = 1;
 display();
 do {
  if(!start){
   delay_debounce();
   countpulse();
   j= 3;
   display();
  }
 } while(1);  // Infinite loop
}

关键字:单片机  心率测量仪  源代码 引用地址:单片机心率测量仪源代码

上一篇:LCD1602自定义字符的方法
下一篇:实现单片机与PC机多机通讯的程序

推荐阅读最新更新时间:2024-03-16 14:05

基于单片机便携式颜色自适应识别电路的设计
  颜色识别是模式识别领域的一个重要研究方向,利用颜色识别技术能使传统依靠人眼进行颜色判别的方法发生根本变革。这种新型技术采用颜色 传感器 获取外界的颜色信息,进而通过基于 计算机 的信号处理技术实现颜色的精确识别。   颜色识别技术经历了传统模拟识别方法和现代数字化识别两个阶段。传统的颜色识别方法采用模拟颜色探测器件来进行外界颜色获取,这种探测器件通常是在独立的 光电 二极管上覆盖经过修正的红、绿、蓝滤光片,经过光电转换产生对应的模拟信号;如果用微 控制器 对这些模拟信号进行处理,就必须采用额外的AD转换电路才能实现和微控制器的 接口 ,而AD转换电路的引入增加了信号的处理时间,对整个系统的速度有很大的影响;
[安防电子]
基于<font color='red'>单片机</font>便携式颜色自适应识别电路的设计
单片机显示原理(LCD1602)
一.接口 LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示: iframe id="iframe_0.92636488052
[单片机]
<font color='red'>单片机</font>显示原理(LCD1602)
基于51单片机SPI器件的串口控制
0 引 言 串行外设接口(Serial Peripheral Interface,SPI)是一种高速同步串行输入/输出端口,近年来广泛应用于移位寄存器、D/A转换器、A/D转换器、串行E2PROM、LED显示驱动器等外部设备的扩展。SPI接口可以共享,便于组成带多个SPI接口器件的系统。其传送速率可编程,连接线少,具有良好的扩展性。 1 SPI接口介绍 SPI是摩托罗拉公司推出的一种同步串行通信接口,用于微处理器、微控制器和外围扩展芯片之间的串行连接,现已发展成为一种工业标准。目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,E2PROM,FLASH ROM,A/D转换器、D/A转换器、LE
[单片机]
基于51<font color='red'>单片机</font>SPI器件的串口控制
智能嵌入式系统力拱 高容量Flash MCU需求涨
嵌入式系统智能化商机旺 MCU厂升级eFlash制程   微控制器(MCU)厂商在嵌入式快闪记忆体(eFlash)新一轮先进制程竞赛开打。值此智慧化嵌入式系统(Intelligent Embedded System)市场方兴未艾之际,Flash MCU内嵌的编码型快闪(NOR Flash)记忆体容量亦将大幅增长,以迎合智慧化嵌入式系统配备联网、图形化和语音人机介面等功能,以及内建精简型作业系统(OS)的设计要求。   看好内嵌更高快闪记忆体容量的Flash MCU在智慧嵌入式系统市场前景,微控制器厂商正大举投资更先进的eFlash奈米(nm)製程,如继瑞萨电子(Renesas Electronics)和飞思卡尔(Freesca
[模拟电子]
智能嵌入式系统力拱 高容量Flash <font color='red'>MCU</font>需求涨
AVR单片机教程——串口发送
到目前为止,我们的开发板只能处理很小量的数据:读取几个引脚电平,输出几个LED,顶多用数码管显示一个两位数字。至于输入一个指令、输出一条调试信息,甚至用scanf和printf来输入输出,在已经接触过的这些器件上是难以想象的。而本讲“串口发送”与下一讲“串口接收”,将打开这一扇大门。 硬件 本讲的主题是UART(Universal Asynchronous Receiver-Transmitter,通用异步收发器),俗称串口。实际上串口是串行接口的统称,在单片机领域通常指UART。“串行”的意思是每次传输一个bit,而一个字节的数据被拆成8个bit传输;相比之下并行总线可以一次传输一个或多个字节(这并不意味着并行总线一定优于串行总
[单片机]
AVR<font color='red'>单片机</font>教程——串口发送
一种基于双单片机通信的无刷直流电动机控制系统的设计方案
在无刷直流电动机控制系统中,通常用DSP对信号进行采集和处理。但由于DSP的价格昂贵,在一些实时性要求不高的场合,可以用MCS-51单片机来代替DSP控制无刷直流电动机的起停、正反转和调速。 本文设计并实现了一种基于双单片机通信的无刷直流电动机控制系统。该设计方案电路简单、可靠性强、价格便宜。系统主要包括单片机控制电路、逻辑保护电路、过流保护电路、驱动电路、测速电路、转子位置检测电路等。其原理如图1所示。 表1 电机正转换相表 H1 H2 H3 导通的管子 控制字 1 0 1 Q1,Q2 0x0f 1 0 0 Q2,Q3 0x27 1 1 0 Q3,Q4 0x33 0 1 0 Q4,Q5 0x39 0 1 1 Q5,Q6
[单片机]
单片机应用产品的PROTEUS设计与仿真
  PROTEUS是英国Labcenter electronics公司研发的多功能EDA软件,它具有功能很强的ISIS智能原理图输入系统,有非常友好的人机互动窗口界面;有丰富的操作菜单与工具。在ISIS编辑区中,能方便地完成单片机系统的硬件设计、软件设计、单片机源代码级调试与仿真。   PROTEUS有三十多个元器件库,拥有数千种元器件仿真模型;有形象生动的动态器件库、外设库。特别是有从8051系列8位单片机直至ARM7 32位单片机的多种单片机类型库。它们是单片机系统设计与仿真的基础。   PROTEUS有多达十余种的信号激励源,十余种虚拟仪器。还有用来精确测量与分析的PROTEUS高级图表仿真(ASF)。它们构成了单片机系统
[单片机]
<font color='red'>单片机</font>应用产品的PROTEUS设计与仿真
51单片机ST7565C语言驱动程序
#include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int /////////////////////////////////Serial/////////////////////////////////////////////////// sbit R_S= P3^5;//指令/数据选择信号 sbit RES= P3^4;//复位信号 sbit SCK= P1^6; sbit SDA= P1^7;
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved