功能介绍:
0.本系统采用STC89C52作为单片机
1.系统可检测心率脉搏值,通过LCD1602液晶实时显示测量值
2.心率脉搏超过设定阈值,蜂鸣器将报警
3.四个功能按键可修改心率脉搏上下限阈值
4.采用DC002作为电源接口可直接输入5V给整个系统供电
5.实物中采用两个红外对管模拟心率,可以方便演示心率脉搏的高低变化
原理图:
PCB :
主程序:
#include
#include // 包含头文件
#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 HEART = P1^0; //脉搏检测输入端定义
sbit BUZZER = P2^4; //蜂鸣器引脚定义
void Delay5ms(void);
void LCD_WriteData(uchar LCD_1602_DATA); /********LCD1602数据写入***********/
void LCD_WriteCom(uchar LCD_1602_COM); /********LCD1602命令写入***********/
void LCD_DispWord(uchar Adress_Com, uchar Num_Adat, uchar *Adress_Data); /*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/
void LCD_Init(); //初始化LCD
void TIM_Init(); //初始化定时器
uchar heartChange = 0;
uint heartCnt;
uchar stopFlag;
uchar View_Data[3];
uchar View_L[3];
uchar View_H[3];
uchar heartH = 100; //脉搏上限
uchar heartL = 40; //脉搏下限
uchar keyFlag;
uchar keyValue; //按键键值
uchar dispIndex; //设置的位(0正常工作,1设置上限,2设置下限)
uchar dispFlag;
void main() //主函数
{
LCD_Init();
TIM_Init();
LCD_DispWord(0x80, 16, "Heart Rate: "); //初始化显示
TR0 = 1;
TR1 = 1; //打开定时器
while (1) //进入循环
{
if (dispFlag) //开始显示变量
{
dispFlag = 0