本设计利用红外光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便。测量范围限可以用按键调节,并进行声音报警,测量结果以数字方式显示,测量精确到2次/分。同时还可以设定上限次数和下限次数,当测量的范围超过设定的范围则驱动蜂鸣器报警提醒,结果最终可以把采集到的脉搏信号显示在LCD1602上。
#include <reg52.h>
#include <intrins.h>
#include "adc0832.h"
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long /* 宏定义 */
#define LCD_DATA P0 /* 定义P0口为LCD_DATA */
sbit LCD_RS = P2 ^ 5;
sbit LCD_RW = P2 ^ 6;
sbit LCD_E = P2 ^ 7; /* 定义LCD控制引脚 */
sbit Xintiao = P1 ^ 0; /* 心率检测输入端定义 */
sbit speaker = P2 ^ 4; /* 蜂鸣器引脚定义 */
sbit DQ = P3 ^ 7;
uchar blood = 0;
void delay5ms( void ); /* 误差 0us */
void LCD_WriteData( uchar LCD_1602_DATA ); /********LCD1602数据写入***********/
void LCD_WriteCom( uchar LCD_1602_COM ); /********LCD1602命令写入***********/
void lcd_1602_word( uchar Adress_Com, uchar Num_Adat, uchar *Adress_Data ); /*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/
void InitLcd(); /* 液晶初始化函数 */
void Tim_Init();