基于单片机心率测试仪毕业设计全套

【资源下载】下载地址如下1532:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

基于单片机的脉搏测量仪设计

摘要 脉搏测量仪在我们的日常生活中已经得到了非常广泛的应用,通过观测脉搏信号,可以对人体的健康进行检查,通常被用于保健中心和医院。为了提高脉搏测量仪的简便性和精确度,本课题设计了一种基于51单片机的脉搏测量仪。系统以STC89C52单片机为核心,以光电传感器利用单片机系统内部定时器来计算时间,由光电传感器感应产生信号,单片机通过对信号累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中可以通过观察指示灯闪烁,若均匀闪烁说明测量值准确。系统停止运行时,能够显示总的脉搏次数和时间。经测试,系统工作正常,达到设计要求。

本设计利用红外光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便。系统可以供用户测量当时的脉搏次数,同时还可以设定上限次数和下限次数,当测量的范围超过设定的范围则驱动蜂鸣器报警提醒,除此外用户还可以设定每天闹钟提醒测量,时间可以自行设定,结果最终可以把采集到的脉搏信号显示在LCD上。

关键词:STC89C52;脉搏测量仪;LCD显示器;光电传感器

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535



sbit rs=P2^5;	 //寄存器选择信号 H:数据寄存器  	L:指令寄存器
sbit rw=P2^6;	 //寄存器选择信号 H:数据寄存器  	L:指令寄存器
sbit e =P2^7;	 //片选信号   下降沿触发

unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=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<120;j++);
}

					   
/************ 延时函数  *****************/
void delay_uint(uint z)
{
   while(z--);
}


/************ 写命令函数  *****************/
void write_com(uchar com)
{
 
   P0=com;
   rw=0;
   rs=0;
   delay_uint(25);
   e=1;

posted @ 2021-03-29 09:12  roadroad  阅读(268)  评论(0编辑  收藏  举报
电设屋
上千套电子毕设课设方案