国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: 51單片機心率計Proteus仿真圖與源程序 [打印本頁]

作者: eng    時間: 2021-6-25 02:01
標題: 51單片機心率計Proteus仿真圖與源程序
由于仿真中沒有紅外,手指也模擬不了,其實就是單片機的IO口檢測脈沖信號,那樣用個方波信號模擬就ok


部分源碼:完整見附件
  1. switch (Xintiao_Con)//此處與上面按鍵的檢測類似
  2.   {
  3.    case 0:                         //默認Xintiao_Con是為0的
  4.           {
  5.                    if(!Xintiao)//每10ms(上面的定時器)檢測一次脈搏是否有信號
  6.                     {
  7.                          Xintiao_Con++;//如果有信號,變量加一,程序就會往下走了
  8.                         }
  9.                    break;
  10.                   }
  11.    case 1:
  12.           {
  13.                    if(!Xintiao)           //每過10ms檢測一下信號是否還存在
  14.                     {
  15.                          Xintiao_Con++;//存在就加一
  16.                         }
  17.                    else
  18.                     {
  19.                          Xintiao_Con=0;//如果不存在了,檢測時間很短,說明檢測到的不是脈搏信號,可能是其他干擾,將變量清零,跳出此次檢測
  20.                         }
  21.                    break;
  22.                   }
  23.   case 2:
  24.           {
  25.                    if(!Xintiao)
  26.                     {
  27.                          Xintiao_Con++;//存在就加一
  28.                         }
  29.                    else
  30.                     {
  31.                          Xintiao_Con=0;//如果不存在了,檢測時間很短,說明檢測到的不是脈搏信號,可能是其他干擾,將變量清零,跳出此次檢測
  32.                         }
  33.                    break;
  34.                   }
  35.   case 3:
  36.           {
  37.                    if(!Xintiao)
  38.                     {
  39.                          Xintiao_Con++;//存在就加一
  40.                         }
  41.                    else
  42.                     {
  43.                          Xintiao_Con=0;//如果不存在了,檢測時間很短,說明檢測到的不是脈搏信號,可能是其他干擾,將變量清零,跳出此次檢測
  44.                         }
  45.                    break;
  46.                   }
  47.   case 4:
  48.           {
  49.                    if(Xintiao)//超過30ms一直有信號,判定此次是脈搏信號,執行以下程序
  50.                     {
  51.                          if(Xintiao_Change==1)//心率計原理為檢測兩次脈沖間隔時間計算心率,變量Xintiao_Change第一次脈沖時為0的,所有走下面的else,第二次走這里
  52.                           {
  53.                            View_Data[0]=(60000/Xintiao_Jishu)/100+0x30;
  54.                    View_Data[1]=(60000/Xintiao_Jishu)%100/10+0x30;
  55.                    View_Data[2]=(60000/Xintiao_Jishu)%10+0x30;

  56.                            if(((60000/Xintiao_Jishu)>=Xintiao_H)||((60000/Xintiao_Jishu)<=Xintiao_L))//心率不在范圍內報警
  57.                             speaker=0;                        //蜂鳴器響
  58.                            else
  59.                             speaker=1;                        //不響

  60.                            View_Change=1;           //計算出心率后啟動顯示
  61.                            Xintiao_Jishu=0;           //心跳計數清零
  62.                            Xintiao_Change=0;   //計算出心率后該變量清零,準備下次檢測心率
  63.                            stop=0;                           //計算出心率后stop清零
  64.                           }
  65.                          else//第一次脈沖時Xintiao_Change為0
  66.                           {
  67.                            Xintiao_Jishu=0;        //脈沖計時變量清零,開始計時
  68.                            Xintiao_Change=1;//Xintiao_Change置1,準備第二次檢測到脈沖時計算心率
  69.                           }
  70.                          Xintiao_Con=0;        //清零,準備檢測下一次脈沖
  71.                          break;
  72.                         }
  73.                   }
  74.   }
復制代碼
心率計程序源碼.rar (31.15 KB, 售價: 2 E幣)
心率計protues仿真文件.rar (69.36 KB, 售價: 2 E幣)

作者: 3121354654    時間: 2022-1-12 19:07
你好,這個仿真原理還有代碼解釋,或者相關報告有嗎






歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0