本文共 801 字,大约阅读时间需要 2 分钟。
【资源下载】下载地址如下1414:
当手指放在红外线发射二极管和接收二极管中间,随着心脏的跳动,血管中血液的流量将发生变换。由于手指放在光的传递路径中,血管中血液饱和程度的变化将引起光的强度发生变化,因此和心跳的节拍相对应,红外接收二极管的电流也跟着改变,这就导致红外接收二极管输出脉冲信号。该信号经放大、滤波、整形后输出,输出的脉冲信号作为单片机的外部中断信号。单片机电路对输入的脉冲信号进行计算处理后把结果送到LCD1602显示。
#include <reg52.h>#include "lcd1602.h"#define uchar unsigned char #define uint unsigned intunsigned char num=0,timecount=0,displayOK=0,rate=0;unsigned int time[6]={0};/***********************1ms延时函数*****************************/void delay_1ms(uint q){ uint i,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}void main(){ init_1602(); TCON=0x01;//设置外部中断0 EX0=1; TMOD=0x01;//定时器0初始化 TH0=(65536-50650)/256;//实测每50ms中断的定时值 TL0=(65536-50650)%256; ET0=1;//开定时器中断 //显示基本文字 write_string(1,0," Pulse Rate "); TR0=0;//定时器停止 EA=1;//开总中断 while(1) {
转载地址:http://xkiwz.baihongyu.com/