基于51单片机的脉搏心率体温监测仪+语音播报

 本设计的硬件构成:

51单片机+晶振电路+复位电路+LCD1602液晶显示+心率采集+信号处理电路+温度传感器+按键+语音播报模块+喇叭+电源开关组成。

功能介绍:

1、LCD1602液晶屏显示当前的心率和当前体温,心率单位是B/min,温度单位为℃;

2、当手指放到心率传感器上,单片机检测有心率变化,开始计算心率;将温度传感器握在手中,即可测量出当前体温;

3、按键可以设置报警值的上下限心率,也可设置报警的上下限体温值。

4、语音播报功能:当用户按下手指时,显示屏提示开始测量(TESTING);当用户测量完成,触发语音播报功能,语音模块会播报当前测量到的心率和体温值;同时,单片机会与设置的体温和心率值进行比较,播报此次测量结果是否正常;

5、按键功能

(1)S0:复位键,按下后,系统复位;

(2)按键1:设置键,进入设置状态。

(3)按键2:进入设置状态后,按下后报警值加一(未在设置状态,按下无效)。

(4)按键3:进入设置状态后,按下后报警值减一。

主要物料清单及型号:

显示屏:OLED12864-IIC模块;

单片机:STM32F103C8T6;

心率传感器:ST188;

蜂鸣器:5V有源蜂鸣器;

温度传感器:DS18B20;

语音播报模块:JQ8900;

部分程序源码:

/****************主函数***************/
void main()
{  
  uchar buf;
    ReadTemperature();
    show1();//显示问候语和其他信息
  UartInit();
  time_init(); //初始化定时器 
  init_int0(); //外部中断0初始化程序
  
  init_eeprom();            //读eeprom数据
  while(1)
  {  
      key(); //按键扫描
      if(flat300ms%4==0)  //200ms
     {
      if(bobao==1)
      {
        
        Send_Data(0xaa);    //您当前的心率为
        Send_Data(0x07); 
        Send_Data(0x02);
        Send_Data(0x00);
        Send_Data(0x0d);
        Send_Data(0xb3+0x0d);
        delay_1ms(2000);
        
        
        buf = rate1/100;
        if(buf!=0)
        {
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(buf);
          Send_Data(0xb3+buf);
          delay_1ms(350);
          
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(0x0c);
          Send_Data(0xb3+0x0c);
          delay_1ms(350);
        }
        
        buf = rate1%100/10;
        if(buf!=0)
        {
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(buf);
          Send_Data(0xb3+buf);
          delay_1ms(350);
          
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(0x0a);
          Send_Data(0xb3+0x0a);
          delay_1ms(350);
        }
        else if(rate1>0)
        {
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(0x0b);
          Send_Data(0xb3+0x0b);
          delay_1ms(350);
          
        }
        
        buf = rate1%10;
        if(buf!=0)
        {
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(buf);
          Send_Data(0xb3+buf);
          delay_1ms(350);
          
        }
        
        Send_Data(0xaa);
        Send_Data(0x07);
        Send_Data(0x02);
        Send_Data(0x00);
        Send_Data(0x0e);
        Send_Data(0xb3+0x0e);
        delay_1ms(2000);
        
        
        buf = ReadTempDate/100;
        if(buf!=0)
        {
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(buf);
          Send_Data(0xb3+buf);
          delay_1ms(350);
          
          Send_Data(0xaa);
          Send_Data(0x07);
          Send_Data(0x02);
          Send_Data(0x00);
          Send_Data(0x0a);
          Send_Data(0xb3+0x0a);
          delay_1ms(350);
        }
        ...
        ...
      }
    }
  }

资料

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值