⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cal_spo2.c

📁 医疗电子,血氧浓度测量模块原程序,采用430 单片机.
💻 C
字号:
#include "global.h"
uint spo1;
uint spo[6];
uint rat00[10];
uint ratio;
ulong srg00;
uint pp=0,pp2=0;
uint IRR;
uint aq[2]={0,0};
uint bq[2]={0,0};
uint abi,ai,bi;


void cal_spo2(void)
 {
  uchar pg2,pm,pm2;
  uint s_ratio,s_spo;
 
  
   if(rg0_r!=0)
     {
       srg00=100*(ulong)(rg0_ir); 
       IRR=srg00/rg0_r;            
       if(aq[0]==0)
        {
          if(bq[0]==0)
            {
              aq[0]=IRR;
            }
          if(bq[0]!=0)
            {
              if(bq[0]>=IRR)
                {
                  bi=bq[0]-IRR;
                }            
              if(bq[0]<IRR)
                {
                  bi=IRR-bq[0];
                } 
              if(bi<=6)
                {
                  bq[1]=bq[0];
                  bq[0]=IRR;
                  rat00[pp2]=(bq[0]+bq[1])/2;         
                  pp2++;
                  if(pp2==10)
                   {
                    pp2=0;
                   }
                }
              if(bi>6)
                {             
                  aq[0]=IRR;
                }
            }
        }
       if(aq[0]!=0) 
        {
          if(aq[0]>=IRR)
            {
              ai=aq[0]-IRR;
            }            
          if(aq[0]<IRR)
            {
              ai=IRR-aq[0];
            } 
          if(ai<=6)
            {
              aq[1]=aq[0];
              aq[0]=IRR;
              bq[1]=0;
              bq[0]=0;
              rat00[pp2]=(aq[0]+aq[1])/2;         
              pp2++;
              if(pp2==10)
               {
                 pp2=0;
               }
            }
          if(ai>6)
            {             
              if(bq[0]==0)
               {
                 bq[0]=IRR;
               }
              if(bq[0]!=0)
               {
                 if(bq[0]>=IRR)
                  {
                    abi=bq[0]-IRR;
                  }            
                 if(bq[0]<IRR)
                  {
                    abi=IRR-bq[0];
                  } 
                 if(abi<=6)
                  {
                    bq[1]=bq[0];
                    bq[0]=IRR;
                    aq[1]=0;
                    aq[0]=0;
                    rat00[pp2]=(bq[0]+bq[1])/2;         
                    pp2++;
                    if(pp2==10)
                     {
                       pp2=0;
                     }
                  }
                 if(abi>6)
                  {             
                    bq[0]=IRR;
                  }            
               }
            }
        }       
       if(rat00[9]==0)
         {
           ratio=rat00[pp2-1];
         }           
         
       if(rat00[9]!=0)
        {
         
          s_ratio=0;
          for(pg2=0;pg2<10;pg2++)
             {
               s_ratio+=rat00[pg2];
             }
          ratio=s_ratio/10; 
        }    
        //TXBUF0=ratio;
      // while((UTCTL0&0X01)==0);      
          switch(ratio)
          {
            case 171:
            case 170:
            case 169:
            case 168:
            case 167:
            case 166:
            case 165:spo1=99;break;
            case 164:
            case 163:
            case 162:
            case 161:
            case 160:
            case 159:
            case 158:
            case 157:
            case 156:
            case 155: 
            case 154:
            case 153:
            case 152:         
            case 151:
            case 150:
            case 149:
            case 148:spo1=98;break;
            case 147:
            case 146:
            case 145:
            case 144:
            case 143:
            case 142:spo1=97;break;
            case 141:
            case 140:
            case 139:
            case 138:
            case 137: 
            case 136:spo1=96;break;
            case 135:
            case 134:
            case 133:
            case 132:
            case 131:spo1=95;break;
            case 130:
            case 129:
            case 128:
            case 127:
            case 126:
            case 125:
            case 124:
            case 123:spo1=94;break;
            case 122:
            case 121:
            case 120:
            case 119:
            case 118:spo1=93;break;
            case 117:
            case 116:
            case 115:
            case 114:spo1=92;break;
            case 113:
            case 112:
            case 111:
            case 110:spo1=91;break;
            case 109:
            case 108:
            case 107:spo1=90;break;
            case 106:
            case 105:
            case 104:spo1=89;break;
            case 103:
            case 102:
            case 101:spo1=88;break;
            case 100:
            case 99:
            case 98:spo1=87;break;
            case 97:
            case 96:
            case 95:spo1=86;break;          
            case 94:
            case 93:
            case 92:spo1=85;break;
            case 91:
            case 90:
            case 89:
            case 88:spo1=84;break;
            case 87:
            case 86:spo1=83;break;
            case 85:
            case 84:spo1=82;break;
            case 83:
            case 82:spo1=81;break;
            case 81:
            case 80:spo1=80;break;
            case 79:
            case 78:spo1=79;break;
            case 77:
            case 76:spo1=78;break;
            case 75:spo1=77;break;
            case 74:
            case 73:spo1=76;break;
            case 72:
            case 71:spo1=75;break;
            case 70:
            case 69:spo1=74;break;
            case 68:
            case 67:spo1=73;break;
            case 66:
            case 65:spo1=72;break;
            case 64:
            case 63:spo1=71;break;
            case 62:
            case 61:spo1=70;break;
           
            
          } 
                   
          if(spo[5]==0)
           {                    
            for(pm=5;pm>0;pm--)
             {
              spo[pm]=spo[pm-1];                           
             } 
            spo[0]=spo1;          
            spo2=spo[0];
          }
          if(spo[5]!=0)
           {
            spo[pp]=spo1;
            pp++;
            if(pp==6)
             {
               pp=0;
             }
            s_spo=0;
            for(pm2=0;pm2<6;pm2++)
             {
               s_spo+=spo[pm2];
             }             
            spo2=s_spo/6;               
           
          }
        //}                  
     }   
 }

                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -