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

📄 main.c

📁 0834实现数据的采集
💻 C
📖 第 1 页 / 共 3 页
字号:
        clrcount=0;
//=======起动键判断==========================
      if(QuickRunFlag==1)
      {  //快速冲洗计时,0.6秒钟(0.1mL)
         quickruncount++;
         if(quickruncount>30)
         {
            quicktotalcount++;
            quicktotal=quicktotalcount/5;
            quickruncount=0;
            QuickRunFlag=0;      //冲洗时间到,清冲洗标志
          }
       }
       else
       {
          if(StartOnFlag==1)
          {  //有启动键按下,开始计时
             quickruncount++;
             if(quickruncount>80)    //判断上次按下起动键是否超过两秒
             {
                StartOnFlag=0;       //超过2秒,起动键标志无效,不能进行冲洗
                quickruncount=0;
              }
           }
        }
//========================================================
        KeySound(sound);             //按键声音判断

//===============KVO计时===================================
    if(KvoFlag==1)
    {
       Kvotime++;
       if(Kvotime>49)
      {
         Kvotime=0;
         Kvosecond++;
         if(Kvosecond>59)
         {
            Kvosecond=0;
            Kvominute++;
            if(Kvominute>59)
            {
               Kvominute=0;
               Kvohour++;
            }
		 }
	   }
	}
//===========气泡检测计时==========================
     if(QIPAO1FLAG==1)
	 {
	     qipao1flagcount++;
	     if(qipao1flagcount>15000)
		 QIPAO1FLAG=0;
         qipao1flagcount=0;
	 }
//===========电池欠压报警显示时间==================
	 if(batlowflag==1)
        batlowcount++;
	 if((Adbat<195)||(batlowflag==1))
		batlowglingcount++;
	 if(batlowflag1==1)
	    batlowtimecount++;
//===========故障报警指示灯闪=====================
     if(warnflag==1)
     {
        ledcount++;
        if(ledcount>20)
        {
           ledcount=0;
		   MovFlag=1;          
        }  //if(ledcount>20)
     }     //if(warnflag==1)

}    
/********************************************************************
* 名称: void PowerKey();
* 功能: 打开或关闭电源
* 调用:
* 输入:
* 说明: 电源按键处理程序
* 返回值:
***********************************************************************/
void PowerKey()
{
     if(StartFlag==0)
     {
       TurnOffSystem();
     }
}
/********************************************************************
* 名称: void selectKey();
* 功能: 选择键,在流速和流量数据之间切换
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/

void IncSet()
{

   if(selectdata==1)
   {
       if(mode==1)
		  {
		     if(dropfactdata<150)
			   dropfactdata++;
		  }
       else
	   {
            if(shudu.b<1000)
               shudu.b++;
	   }
   }

   if(selectdata==2)
   {
     if(zhonglian.b<9999)
     zhonglian.b++;
   }
}
void InccSet()
{
	   if(selectdata==1)
	   {
	      if(mode==1)
		  {
		     if(dropfactdata<141)
			   dropfactdata+=10;
		  }
		  else
		  {
	         if(shudu.b<991)
	         shudu.b+=10;
		  }
	   }
	   if(selectdata==2)
	   {
	     if(zhonglian.b<9990)
	     zhonglian.b+=10;
	   }
}
void DecSet()
{
   if(selectdata==1)
   {
         if(mode==1)
		  {
		     if(dropfactdata>1)
			   dropfactdata--;
		  }
          else
  		  {
		     if(shudu.b>1)
		     shudu.b--;
	       }
   }
   if(selectdata==2)
   {
     if(zhonglian.b>0)
     zhonglian.b--;
   }
}
void DeccSet()
{
   if(selectdata==1)
   {

       if(mode==1)
		  {
		     if(dropfactdata>10)
			   dropfactdata-=10;
		  }
       else
	   {
	          if(shudu.b>10)
	          shudu.b-=10;
       }
   }
   if(selectdata==2)
   {
     if(zhonglian.b>9)
     zhonglian.b-=10;
   }
}
/********************************************************************
* 名称: void SelectKey();sss
* 功能: 输液速度及预置量选择键
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void  SelectKey()
{
    uchar shanshuoflag,i;
    Display1(2);                    //
	DisplayClear(15,240,2,0);
	for(i=5;i<235;i++)
      LcdDrawPoint(128,i,1);
    extbmp(4,25,Bmp119);            //显示设置提示
    selectdata=1;                   //输液、预输液量选择寄存器
    glintreg=1;                     //数值闪烁
    while(1)
    {
      CLRWDT;
      if(glintreg==1)
      {
         glintreg=0;
         if(shanshuoflag)
         {
            if(selectdata==1)
			{
			   if(mode==1)
			      DisGlint(1,dropfactdata);
               else
                  DisGlint(1,shudu.b);    //
			}
            if(selectdata==2)
            DisGlint(2,zhonglian.b);
            shanshuoflag=0;
          }
          else
          {
            if(selectdata==1)
			{
			     if(mode==1)
			      DisGlint(1,clrdata);
				 else
                 DisGlint(1,clrdata);     //刷新显示屏数据
			}
            if(selectdata==2)
            DisGlint(2,clrdata);
            shanshuoflag=1;
           }
       }

      if(selectdata>2)
      {
	    JingDuSet();
        Display1(1);                 //显示本机进入待机状态
        extbmp(3,25,Bmp171); 
       // if(mode==1)
	//		DisGlint(1,dropfactdata);
      //  else
        //    DisGlint(1,shudu.b);    //
       // DisGlint(2,zhonglian.b);     //刷新显示屏数据             
        break;
      }
      else
       {
          if(KeyOn)
          {
                KeyOn=0;                //button flag clear zero
                if(KeyRepeatFlag==0)
                {
                        sound=1;
                        KeyAgain();
                 }
                if(buttonquickflag==1)  //判断是否进入快进、退状态
                {
                      if(buttonquickcount>4) //20ms*5=0.1S 加减1
                      {
                         buttonquickcount=0;
                         switch(KeyData)
                         {
                            case SELECT:  selectdata++;
                                          if(mode==1)
			                                  DisGlint(1,dropfactdata);
                                          else
                                              DisGlint(1,shudu.b);    //
                                                        break;  //预输液量闪烁
                            case INC:     IncSet();     break;
                            case INCC:    InccSet();    break;
                            case DEC:     DecSet();     break;
                            case DECC:    DeccSet();    break;
                            default:                    break;
                          }
                           if(selectdata==1)
			               {
			                   if(mode==1)
			                       DisGlint(1,dropfactdata);
				               else
                                  DisGlint(1,shudu.b);    //     //刷新显示屏数据
			               }
                           if(selectdata==2)
                           DisGlint(2,zhonglian.b);
                       }
                  }

                  else                         //1
                  {
                     if(buttonflag==1)         //2
                     {
                        if(buttoncount>75)     //3
                        {
                            buttoncount=0;
                            buttonquickflag=1;
                        }
                      }
                      else                     //4
                        {
                           switch(KeyData)
                           {
                              case SELECT:  selectdata++;
                                           if(mode==1)
			                                  DisGlint(1,dropfactdata);
                                          else
                                              DisGlint(1,shudu.b);    //
                                            break;              //预输液量闪烁
                              case INC:    buttonflag=1; IncSet();  break;
                              case INCC:   buttonflag=1; InccSet(); break;
                              case DEC:    buttonflag=1; DecSet();  break;
                              case DECC:   buttonflag=1; DeccSet(); break;
                              default:                    break;
                            }
                             if(selectdata==1)
			               {
			                   if(mode==1)
			                       DisGlint(1,dropfactdata);
				               else
                                  DisGlint(1,shudu.b);    //     //刷新显示屏数据
			               }
                             if(selectdata==2)
                             DisGlint(2,zhonglian.b);
                             //==========================
                             if(KeyData==SELECT)
                             {
                                 if(selectdata==2)
								 {
								   extbmp(7,65,Bmp172);//显示“设置预输液量"
								 }
                             }
                         }//4

                     } //1
               }
            }
        }
}
/********************************************************************
* 名称: void PIncSet();
* 功能: 调整校正参数,选择相应的参数值加一
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
//个位值加一
void PIncSet()
{
      if(jingdudata<12)
       jingdudata++;
   switch(jingdudata)
   {
    
    case 0:    DisplayCanShu(canshuadrh,canshuadr,7);         break;
    case 1:    DisplayCanShu(canshuadrh,canshuadr+18*1,8);    break;
    case 2:    DisplayCanShu(canshuadrh,canshuadr+18*2,9);    break;
    case 3:    DisplayCanShu(canshuadrh,canshuadr+18*3,10);   break;
   	case 4:    DisplayCanShu(canshuadrh,canshuadr+18*4,11);   break;
    case 5:    DisplayCanShu(canshuadrh,canshuadr+18*5,12);   break;
    case 6:    DisplayCanShu(canshuadrh,canshuadr+18*6,13);   break;
    case 7:    DisplayCanShu(canshuadrh,canshuadr+18*7,12);   break;
    case 8:    DisplayCanShu(canshuadrh,canshuadr+18*8,11);   break;
    case 9:    DisplayCanShu(canshuadrh,canshuadr+18*9,10);   break;
    case 10:   DisplayCanShu(canshuadrh,canshuadr+18*10,9);   break;
    case 11:   DisplayCanShu(canshuadrh,canshuadr+18*11,8);   break;
    case 12:   DisplayCanShu(canshuadrh,canshuadr+18*12,7);   break;
     default:                                          break;
   }
}

//======个位值减一=======
void PDecSet()
{

       if(jingdudata>0)
       jingdudata--;
   switch(jingdudata)
   {
    case 0:    DisplayCanShu(canshuadrh,canshuadr,7);         break;
    case 1:    DisplayCanShu(canshuadrh,canshuadr+18*1,8);    break;
    case 2:    DisplayCanShu(canshuadrh,canshuadr+18*2,9);    break;
    case 3:    DisplayCanShu(canshuadrh,canshuadr+18*3,10);   break;
   	case 4:    DisplayCanShu(canshuadrh,canshuadr+18*4,11);   break;
    case 5:    DisplayCanShu(canshuadrh,canshuadr+18*5,12);   break;
    case 6:    DisplayCanShu(canshuadrh,canshuadr+18*6,13);   break;
    case 7:    DisplayCanShu(canshuadrh,canshuadr+18*7,12);   break;
    case 8:    DisplayCanShu(canshuadrh,canshuadr+18*8,11);   break;
    case 9:    DisplayCanShu(canshuadrh,canshuadr+18*9,10);   break;
    case 10:   DisplayCanShu(canshuadrh,canshuadr+18*10,9);   break;
    case 11:   DisplayCanShu(canshuadrh,canshuadr+18*11,8);   break;
    case 12:   DisplayCanShu(canshuadrh,canshuadr+18*12,7);   break;
     default:                                               break;
   }
}
void PFace(uchar b)
{
    switch(b)
   {

    case 0:    DisplayCanShu(canshuadrh,canshuadr,7);         break;
    case 1:    DisplayCanShu(canshuadrh,canshuadr+18*1,8);    break;
    case 2:    DisplayCanShu(canshuadrh,canshuadr+18*2,9);    break;
    case 3:    DisplayCanShu(canshuadrh,canshuadr+18*3,10);   break;
   	case 4:    DisplayCanShu(canshuadrh,canshuadr+18*4,11);   break;
    case 5:    DisplayCanShu(canshuadrh,canshuadr+18*5,12);   break;
    case 6:    DisplayCanShu(canshuadrh,canshuadr+18*6,13);   break;
    case 7:    DisplayCanShu(canshuadrh,canshuadr+18*7,12);   break;
    case 8:    DisplayCanShu(canshuadrh,canshuadr+18*8,11);   break;
    case 9:    DisplayCanShu(canshuadrh,canshuadr+18*9,10);   break;
    case 10:   DisplayCanShu(canshuadrh,canshuadr+18*10,9);   break;
    case 11:   DisplayCanShu(canshuadrh,canshuadr+18*11,8);   break;
    case 12:   DisplayCanShu(canshuadrh,canshuadr+18*12,7);   break;
    default:                                                  break;
   }
}
//===================================================================
void  PJingDuSet()
{
    bit jingdudisplayflag;
    jingdudisplayflag=0;
    if(jingdudata>12)
	    jingdudata=6;
    Displayonebmp3(4,171,26,34,Bmp035);//显示输液精度调节
    DisplayCanShu(canshuadrh,canshuadr,0);
    DisplayCanShu(canshuadrh,canshuadr+18*1,1);
    DisplayCanShu(canshuadrh,canshuadr+18*2,2);
    DisplayCanShu(canshuadrh,canshuadr+18*3,3);
    DisplayCanShu(canshuadrh,canshuadr+18*4,4);
    DisplayCanShu(canshuadrh,canshuadr+18*5,5);
    DisplayCanShu(canshuadrh,canshuadr+18*6,6);
    DisplayCanShu(canshuadrh,canshuadr+18*7,5);
    DisplayCanShu(canshuadrh,canshuadr+18*8,4);
    DisplayCanShu(canshuadrh,canshuadr+18*9,3);
    DisplayCanShu(canshuadrh,canshuadr+18*10,2);
    DisplayCanShu(canshuadrh,canshuadr+18*11,1);
    DisplayCanShu(canshuadrh,canshuadr+18*12,0);
 
  PFace(jingdudata);//显示相应反黑显示的调节杆
    while(1)
    {

	    if(jingdudisplayflag==1)
		{
		           
			      Displayyedichar(8,78,date[0]);      //显示编号
                  Displayyedichar(8,90,date[1]);      //显示编号
		          Displayyedichar(8,102,date[2]);      //显示日期
		          Displayyedichar(8,114,date[3]);      //显示日期
		          Displayyedichar(8,126,date[4]);      //显示日期
				  Displayyedichar(8,138,date[5]);      //显示日期
                  Displayyedichar(8,150,date[6]);      //显示编号
                  
		          
		}
        CLRWDT;
        if(KeyOn)
          {
             KeyOn=0;                 //button flag clear zero
             if(buttonflag==0)
             {
                 sound=1;
                 if(KeyData==SELECT)  //如果为设置键则跳出设置
                 {
                   Display2(1);
                   break;
                  }
				  if(KeyData==ZHUHE)
                    {
                       jingdudisplayflag=1;    
                     }
                    //------参数调整-----------
                    if((KeyData==INC)|(KeyData==DEC))
                    {
                            DisplayCanShu(canshuadrh,canshuadr,0);
    						DisplayCanShu(canshuadrh,canshuadr+18*1,1);
    						DisplayCanShu(canshuadrh,canshuadr+18*2,2);
    						DisplayCanShu(canshuadrh,canshuadr+18*3,3);
  							DisplayCanShu(canshuadrh,canshuadr+18*4,4);
    						DisplayCanShu(canshuadrh,canshuadr+18*5,5);
    						DisplayCanShu(canshuadrh,canshuadr+18*6,6);
   							DisplayCanShu(canshuadrh,canshuadr+18*7,5);
    						DisplayCanShu(canshuadrh,canshuadr+18*8,4);
    						DisplayCanShu(canshuadrh,canshuadr+18*9,3);
    						DisplayCanShu(canshuadrh,canshuadr+18*10,2);
    						DisplayCanShu(canshuadrh,canshuadr+18*11,1);
    						DisplayCanShu(canshuadrh,canshuadr+18*12,0);
                         if(KeyData==INC)   //判断是否是增加键
                          PIncSet();
                         else   //判断是否是减少键
                          PDecSet();

⌨️ 快捷键说明

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