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

📄 main.c

📁 0834实现数据的采集
💻 C
📖 第 1 页 / 共 3 页
字号:
                     }
                  buttonflag=1;

              }
           }
     }
}
//===================================================================
void PQiPaoSet()
{
    bit qipaodisplayflag;
	uchar   gewei;
	uchar   shiwei;
	uchar   baiwei;
	uchar   qipao1copy,qipao2copy;
    qipaodisplayflag=0;
	qipao1copy=0;
	qipao2copy=0;
   if(qipao>2)
        qipao=2;
    Displayonebmp3(4,200,26,20,Bmp007);//显示气泡灵敏度调节    
    Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
	Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
	Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
    Displayonebmp3(3,24,11,39,Bmp046); //显示”低“
	Displayonebmp3(3,24,11,108,Bmp047);//显示”中“
	Displayonebmp3(3,24,11,177,Bmp048);//显示”高“
	//------显示气泡值---------------------
	switch(qipao)                      
	{
	   case 0: DisplayOn(14,33,17,69);    break;
	   case 1: DisplayOn(14,102,20,138);  break;
	   case 2: DisplayOn(14,171,23,207);  break;
	   default:                           break;
	}
 
    while(1)
    {
        if(qipaodisplayflag==1)
		{
             GetsAdData();
			 if(qipao1copy!=Adqipao1)
			 {  
			      qipao1copy=Adqipao1;
			      gewei=Adqipao1%10;
			      shiwei=Adqipao1/10;
			      shiwei%=10;
			      baiwei=Adqipao1/100;
			      baiwei%=10;
		          Displayyedichar(8,58,baiwei);      //显示气泡值
		          Displayyedichar(8,70,shiwei);      //显示气泡值
		          Displayyedichar(8,82,gewei);       //显示气泡值
			  }
			  if(qipao2copy!=Adqipao2)
			 {
			      qipao2copy=Adqipao2;
			      gewei=Adqipao2%10;
			      shiwei=Adqipao2/10;
			      shiwei%=10;
			      baiwei=Adqipao2/100;
			      baiwei%=10;
		          Displayyedichar(8,154,baiwei);      //显示气泡值
		          Displayyedichar(8,166,shiwei);      //显示气泡值
		          Displayyedichar(8,178,gewei);       //显示气泡值
			  }
		 
		}
        

        CLRWDT;
        if(KeyOn)
          {
             KeyOn=0;                 //button flag clear zero
             if(buttonflag==0)
             {
                 sound=1;
                 if(KeyData==SELECT)  //如果为设置键则跳出设置
                 {
                   Display2(2);
                   break;
                  }
                    if(KeyData==ZHUHE)
                    {
                       qipaodisplayflag=1;    
                     }
                    //------参数调整-----------
                    if((KeyData==INC)|(KeyData==DEC))
                    {
                            Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
							Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
							Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
                         if(KeyData==INC)   //判断是否是增加键
                            qipao++;
                         if(KeyData==DEC)   //判断是否是减少键
                             qipao--;
						  if(qipao>250)
							   qipao=0;
						  if(qipao>2)
							   qipao=2;
						    Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
							Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
							Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
							switch(qipao)                      
							{
							   case 0: DisplayOn(14,33,17,69);    break;
							   case 1: DisplayOn(14,102,20,138);  break;
							   case 2: DisplayOn(14,171,23,207);  break;
							   default:                           break;
							}
                     }
                  buttonflag=1;

              }
           }
     }
}
//===================================================================
void  PYaLiSet()
{
    bit yalidisplayflag;
	uchar   gewei;
	uchar   shiwei;
	uchar   baiwei;
	uchar   yalicopy;
    yalidisplayflag=0;
	yalicopy=0;
    if(yali>3)
        yali=2;
	Displayonebmp3(4,198,26,21,Bmp013);//显示阻塞灵敏度调节
    Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
	Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
	Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
    Displayonebmp3(3,24,11,39,Bmp046); //显示”低“
	Displayonebmp3(3,24,11,108,Bmp047);//显示”中“
	Displayonebmp3(3,24,11,177,Bmp048);//显示”高“
 
  	switch(yali)                      
	{
	   case 0: DisplayOn(14,33,17,69);    break;
	   case 1: DisplayOn(14,102,20,138);  break;
	   case 2: DisplayOn(14,171,23,207);  break;
	   default:                           break;
	}

    while(1)
    {

	    if(yalidisplayflag==1)
		{
             GetsAdData();
			 if(yalicopy!=Adyali)
			 {  
			      yalicopy=Adyali;
			      gewei=Adyali%10;
			      shiwei=Adyali/10;
			      shiwei%=10;
			      baiwei=Adyali/100;
			      baiwei%=10;
		          Displayyedichar(8,102,baiwei);      //显示压力值
		          Displayyedichar(8,114,shiwei);      //显示压力值
		          Displayyedichar(8,126,gewei);       //显示压力值
			  }		 
		}
        CLRWDT;
        if(KeyOn)
          {
             KeyOn=0;                 //button flag clear zero
             if(buttonflag==0)
             {
                 sound=1;
                 if(KeyData==SELECT)  //如果为设置键则跳出设置
                 {
                   Display2(3);
                   break;
                  }
				  if(KeyData==ZHUHE)
                    {
                       yalidisplayflag=1;    
                     }
                    //------参数调整-----------
                    if((KeyData==INC)|(KeyData==DEC))
                    {
                             Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
							Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
							Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
                         if(KeyData==INC)   //判断是否是增加键
                            yali++;
                         if(KeyData==DEC)   //判断是否是减少键
                             yali--;
						  if(yali>250)
							   yali=0;
						  if(yali>2)
							   yali=2;
						    Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
							Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
							Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
							switch(yali)                      
							{
							   case 0: DisplayOn(14,33,17,69);    break;
							   case 1: DisplayOn(14,102,20,138);  break;
							   case 2: DisplayOn(14,171,23,207);  break;
							   default:                           break;
							}
                       
                     }
                  buttonflag=1;

              }
           }
     }
}

/********************************************************************
* 名称: PSetDataUp(uchar a)
* 功能: 各路参数调整
* 调用:
* 输入:  a为调整哪一路参数值
* 说明:
* 返回值:无
***********************************************************************/
void PSetDataUp(uchar a)
{
    LcmClear();
	CLRWDT;
  	extbmp(33,10,Bmp166);//显示警示标志
    Displayonebmp3(4,104,33,78,Bmp019);//显示调试状态
   	Displayonebmp3(4,178,4,31,Bmp036);//显示减少-0-增加
	Displayonebmp3(3,172,0,34,Bmp037);//显示请按+和-键调节!
	if((mode==1)&&(a==1))
	{
	  YeDiJingDuSet();
	 goto  PSetDataUpback;
	}
    //------对各参数值校正---------    
    CLRWDT;
    switch(a)
    {
	  case 1:   PJingDuSet(); break;  		 				 
      case 2:   PQiPaoSet();  break;                           
      case 3:   PYaLiSet();   break;
                            
      default:                break;
    }
   
	 PSetDataUpback:{};
}
//================参数校正函数==================
void ParameterSet()
{
    uchar PSetData;
    PSetData=1;
    Display2(1);
    while(1)
    {CLRWDT;
          if(clrcount>250)        //按住调试键超过5S退出调试状态
           {
               buttoncount=0;
			   JingDuSet();
               LcmClear();
               CLRWDT;	  
			   hourdata=hourdata2;
               minutedata=minutedata2;
               seconddata=seconddata2;
               cumulatedata=cumulatedata2;
               Display1(1);//显示待机
               Display3();//显示输液值
               WriteEeprom(&jingdudata,4,1);
			   //WriteEeprom(&jingducudata,5,1);
               WriteEeprom(&qipao,6,1);
               WriteEeprom(&yali,7,1);
               break;
            }

//===============按键判断============================
          if(KeyOn)
          {
             KeyOn=0;                        //button flag clear zero
             if(KeyRepeatFlag==0)
             {
                    sound=1;
                    KeyAgain();
             }

             if(buttonflag==0)
             {
                 switch(KeyData)
                 {
                     case SELECT:  PSetDataUp(PSetData);        break;
                     case INC:     buttonflag=1;PSetData--;     break;
                     case DEC:     buttonflag=1;PSetData++;     break;
                     case CLR:     clrflag=1;                   break;
                     default:      buttonflag=1;                break;
                 }
                 //---------圆点轮回显示-----------
                 if(PSetData>3)
                    PSetData=1;
                 if(PSetData==0)
                    PSetData=3;
                 if((KeyData==INC)||(KeyData==DEC))
                 {
	                 DisplayClear(3,20,25,25);  //清圆点
					 DisplayClear(3,20,20,25);  //清圆点
					 DisplayClear(3,20,15,25);  //清圆点
                 switch(PSetData)
                 {
                      case 1:  Displayonebmp(25,25,Bmp110);  break;
					  case 2:  Displayonebmp(20,25,Bmp110);  break;
					  case 3:  Displayonebmp(15,25,Bmp110);  break;
					  default:                               break;
                 }
                 }
             }
          }
     }//while
}


/********************************************************************
* 名称: void ClrKey();
* 功能: 短按总输液量清零,长按5秒后进入参数设置
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************bbb************/
void ClrKey()
{

    buttonflag=1;
    while(buttonflag==1)
    {
          CLRWDT;
          if(KeyData==CLR)
          {
           hourdata2=hourdata;
           minutedata2=minutedata;
           seconddata2=seconddata;
           cumulatedata2=cumulatedata;
           second1=0;
           minute1=0;
           hour1=0;
           hourdata=0;
           minutedata=0;
           seconddata=0;
           cumulatedata=0;
           second1=0;
           minute1=0;
           hour1=0;

             if(buttoncount>250)
             {
               buttoncount=0;
               ParameterSet();  //参数校正函数
			   
			   break;		  
			  }
	       }
     }			  
   	KeyOn=0;
    JingDuSet();  	   
    Display1(1);
	if(selectdata!=3)
    Display3();		
  
}
/**********************************************************************
* 名称: void StartKey();
* 功能: 运行键处理程序
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void  StartKey()
{

    if(StartFlag==0)
    {
	 qipaofirstvalue1=Adqipao1;
     qipaofirstvalue2=Adqipao2;
      if(shudu.b!=0)
      {
	  STOPFLAG=0;
	  LEDSUBFF=GLED1;
	  LEDSUBFF|=STOPLEDOFF;
	  HC164(LEDSUBFF);
      KvoFlag=0;          //
      StartFlag=1;
	  if(selectdata==3)
	  {
	     DisplayClear(15,240,2,0);
		 selectdata=4;
	  }
	  CLRWDT;
      Display1(3);
	  CLRWDT;
	  cumulate=cumulatedata;
  	  second=seconddata;
	  minute=minutedata;
	  hour=hourdata;
	  Display3();
	  CLRWDT;
      }

    }
    else
    {
	  
    if(shudu.b<11)
	   {
           if(StartOnFlag==1) //短时内是否有启动键按下标志
           {
             QuickRunFlag=1; //冲洗标志置1
             StartOnFlag=0;
             quickruncount=0;//清计数器,防止第二次按冲洗无效(间隔时间短)
             goto  startback;
           }
		}
      }
     StartOnFlag=1;
startback:
    {;}
}
/********************************************************************
* 名称: void StopKey();
* 功能: 运行键处理程序
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void  StopKey()
{
    
    if(StartFlag==1)
    {
      StartFlag=0;
      Display1(1);
	  
    }	
    cumulatedata=cumulate;	
	seconddata=second;	
	minutedata=minute;	
	hourdata=hour;
	second1=0;
	minute1=0;
	hour1=0;
	EX1=1;               //开外部中断1
	Ex0Count=0;
    led=0;               //指示灯从第一个开始亮   
    KvoFlag=0;
	StopMotor();         //切断电机供电电路
    if(warnflag==1)
    {
	   warndata=0;
       LcmClear();
	   CLRWDT;
       Display1(1);
       Display3();
       warnflag=0;       //消报警界面
	   MovFlag=0;
    }
	STOPFLAG=1;
	LEDSUBFF=GFLED;
   	LEDSUBFF&=STOPLEDON;
    HC164(LEDSUBFF);
	yaliseton=0;
	yedicountl=0;
    yedicounth=0;
	QIPAO1FLAG=1;
	qipao2hiflag=0;
	qipao2hicount=0;
}


void  InccKey()
{
     buttonflag=1;
    while(buttonflag==1)//等待按键释放
    {
          CLRWDT;
		  if(YEDIFlag==1)
		  {
		          if(KeyData==INCC)
		          {
		             /*if(buttoncount>250)
		             {
		               buttoncount=0;
		               YYYFLAG=!YYYFLAG;
		                if(YYYFLAG==1)
		                 extbmp(33,92,Bmp173);	  //显示营养液输液
						else
						 extbmp(33,92,Bmp105);	  //显示"滴数式输液

⌨️ 快捷键说明

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