本设计由STC89C52单片机电路+LCD1602液晶显示电路+脉搏/心率传感器电路+LM393比较器模块电路+DS18B20温度传感器电路+HX711称重检测电路+电源电路组成。
1、通过脉搏/心率传感器检测脉搏/心率。
2、通过温度传感器DS18B20检测体温。
3、通过称重传感器检测体重。
3、将脉搏/心率、体温和体重(0-100KG)实时显示在液晶上。
资料下载地址
https://pan.baidu.com/s/1nDBuOnsFL0f1cETMOzaUBQ?pwd=8888
部分代码
unsigned long time_50ms=0; //定时器变量
unsigned char sys_times=0;
char dis0[16]; //打印数组初始化
char dis1[16]; //打印数组初始化
xdata long Weight_mp=0; //毛重
xdata long Weight_Shiwu=0; //实物重量
xdata unsigned long Weight_Maopi=0; //读取初始化值
void time_init(void); //函数声明
void init_int0(void);
void main()
{
int temp;
float temperature;
time_init(); //初始化定时器
init_int0(); //外部中断0初始化程序
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear(); //清屏
DelayMs(10);
sprintf(dis0,"XL:%03d T:%4.1f'C",rate,temperature);//打印
LCD_Write_String(0,0,dis0);//显示
while(1)
{
if(displayOK==0)//如果显示关 检测心率是否真实
{
rate = 0;
}
else//如果显示开
{
rate=60000/(time[1]/5+time[2]/5+time[3]/5+time[4]/5+time[5]/5); //心率计算 5次求平均值
}
sprintf(dis0,"XL:%03d T:%4.1f'C",(unsigned int)rate,temperature);//打印
LCD_Write_String(0,0,dis0);//显示
sprintf(dis1,"TG:%05dKG ",(unsigned int)Weight_Shiwu);//打印
LCD_Write_String(0,1,dis1);//显示
sys_times++;
DelayMs(100);
}
}
/*************定时器0初始化程序***************/
void time_init(void)
{
EA = 1; //开总中断
TMOD |= 0x01; //定时器0、定时器1工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
/***********外部中断0初始化程序****************/
void init_int0(void) //外部中断0初始化程序
{
EX0=1; //允许外部中断0中断
EA=1; //开总中断
IT0 = 1; //外部中断0负跳变中断
}
资料下载地址