基于51单片机的脉搏体温计-蓝牙显示

  本设计的硬件构成:

由51单片机,LCD1602液晶显示,红外对管采集(检测心率),温度传感器,按键,蜂鸣器组成;

功能介绍:

1、基于STC89C51/52(与AT89S51/52、AT89C51/52通用)单片机。

2、LCD1602液晶显示当前的心率和当前体温,心率单位是心率/分钟,温度单位为摄氏度。

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

4、三个按键:一个设置,一个加,一个减。设置键按下,设置心率值,再按下,设置温度值;

5、可通过蓝牙实时监控是否有手指按下、测量到的脉搏和体温数据;

主要物料清单及型号:

显示屏:LCD1602-5V;

单片机:51单片机;

心率传感器:ST188;

蓝牙模块:JDY-31-SPP;

温度传感器:DS18B20;

部分程序源码:

/****************主函数***************/
void main()
{  
    ReadTemperature();
    show1();//显示问候语和其他信息
  UartInit();
  time_init(); //初始化定时器 
  init_int0(); //外部中断0初始化程序
  init_eeprom();            //读eeprom数据
  while(1)
  {  
      key(); //按键扫描
      if(flat300ms%4==0)  //200ms
     {
       if(flat300ms%20==0)
       {
         if(state==1)
          Send_string("未检测到手指\r\n");
         else if(state==2)
          Send_string("测量中。。。\r\n");
         else if(state==3)
         {
            Send_string("当前心率:");
           Send_Data(rate1/100+'0');
           Send_Data(rate1%100/10+'0');
           Send_Data(rate1%100%10+'0');
           Send_string("/min\r\n");
           Send_string("当前体温:");
           Send_Data(ReadTempDate/100+'0');
           Send_Data(ReadTempDate%100/10+'0');
           Send_Data('.');
           Send_Data(ReadTempDate%100%10+'0');
           Send_string("C\r\n");
           state=4;
           
         }
        }
       ReadTempDate=ReadTemperature();
//==================主界面===================
      if(yemian==0)  
      {
        if(biaozhi==0)
         {                   
           biaozhi=1;
           lcd_init();// 初始化
           EA=0;
           display(0x00,'H');
           display(0x01,'e');
           display(0x02,'a');
           display(0x03,'r');
           display(0x04,'t');
           display(0x05,':');
           display(0x40,'T');
           display(0x41,'e');
           display(0x42,'m');
           display(0x43,'p');
           display(0x44,':');
           EA=1;
                 }
           wendumaibo();
           baojin();
         }
​
//==================脉搏报警上限 设置===================
      if(yemian==1)  
      {
        if(biaozhi==1)
         {
           biaozhi=2;
           Buzzer=1;
           lcd_init();// 初始化
           display(0x04,'H');
           display(0x05,'e');
           display(0x06,'a');
           display(0x07,'r');
           display(0x08,'t');
           display(0x09,'-');
           display(0x0a,'H');
           display(0x46,S_heart_H/100+'0');
           display(0x47,S_heart_H%100/10+'0');
           display(0x48,S_heart_H%100%10+'0');          
          }
           shezhi();
         }
​
//==================脉搏报警下限 设置===================
      if(yemian==2)  
      {
        if(biaozhi==2)
         {
           biaozhi=3;
           Buzzer=1;
           lcd_init();// 初始化
           display(0x04,'H');
           display(0x05,'e');
           display(0x06,'a');
           display(0x07,'r');
           display(0x08,'t');
           display(0x09,'-');
           display(0x0a,'L');
​
         display(0x46,S_heart_L/100+'0');
               display(0x47,S_heart_L%100/10+'0');
                 display(0x48,S_heart_L%100%10+'0');          
               }
                shezhi();
         }
              
//==================温度报警 上限设置===================
      if(yemian==3)  
      {
        if(biaozhi==3)
         {
           biaozhi=4;
           Buzzer=1;
           lcd_init();// 初始化    
           display(0x05,'T');
           display(0x06,'e');
           display(0x07,'m');
           display(0x08,'p');
           display(0x09,'-');
           display(0x0a,'H');
           display(0x46,S_temp_H/100+'0');
                 display(0x47,S_temp_H%100/10+'0');
                   display(0x48,S_temp_H%100%10+'0');          
                }
                shezhi();
         }          
//==================温度报警 下限设置===================
      if(yemian==4)  
      {
        if(biaozhi==4)
         {
           biaozhi=0;
           Buzzer=1;
           lcd_init();// 初始化
          
           display(0x05,'T');
           display(0x06,'e');
           display(0x07,'m');
           display(0x08,'p');
           display(0x09,'-');
           display(0x0a,'L');
​
           display(0x46,S_temp_L/100+'0');
                 display(0x47,S_temp_L%100/10+'0');
                   display(0x48,S_temp_L%100%10+'0');          
                }
                shezhi();
         }             
     }
    }
 }

资料

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值