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

📄 uitask.c

📁 这是一个PIC单片机的实时操作系统
💻 C
字号:
#ifndef _uitask_c
#define _uitask_c


#include"config.h"

const unsigned char HZ_HYSY[26] = {
	0XBB, 0XB6, 0XD3, 0XAD, 0XCA, 0XB9, 0XD3, 0XC3, 0XC3, 0XC5, 0XBD, 0XFB, 0XCA, 0XFD, 0XBE, 0XDD, 0XB4, 0XA6, 0XC0, 0XED, 0XCF, 0XB5, 0XCD, 0XB3, 0XA3, 0XA1
};
/* 汉字:工作菜单二 */
const unsigned char HZ_CDR[10] = {
	0XB9, 0XA4, 0XD7, 0XF7, 0XB2, 0XCB, 0XB5, 0XA5, 0XB6, 0XFE
};
/* 汉字:删卡请按1修复数据按2 */
const unsigned char HZ_SKQA[22] = {
	0XC9, 0XBE, 0XBF, 0XA8, 0XC7, 0XEB, 0XB0, 0XB4, 0XA3, 0XB1, 0XD0, 0XDE, 0XB8, 0XB4, 0XCA, 0XFD, 0XBE, 0XDD, 0XB0, 0XB4, 0XA3, 0XB2
};

/* 汉字:结束初始化 */
const unsigned char HZ_JSCSH[10] = {
	0XBD, 0XE1, 0XCA, 0XF8, 0XB3, 0XF5, 0XCA, 0XBC, 0XBB, 0XAF
};
/* 汉字:选择了04 */
const unsigned char HZ_SZL[10] = {
	0XD1, 0XA1, 0XD4, 0XF1, 0XC1, 0XCB, 0XA3, 0XB0, 0XA3, 0XB4
};

/* 汉字:请输入要删除的卡号! */
const unsigned char HZ_QSLYSDKH[20] = {
	0XC7, 0XEB, 0XCA, 0XE4, 0XC8, 0XEB, 0XD2, 0XAA, 0XC9, 0XBE, 0XB3, 0XFD, 0XB5, 0XC4, 0XBF, 0XA8, 0XBA, 0XC5, 0XA3, 0XA1
};

/* 汉字:删除卡号 */
const unsigned char HZ_SCKH[8] = {
	0XC9, 0XBE, 0XB3, 0XFD, 0XBF, 0XA8, 0XBA, 0XC5
};
/* 汉字:  */
const unsigned char SK[2] = {
	0XA1, 0XA0
};

/* 汉字:删除处理中 */
const unsigned char HZ_SCCLZ[10] = {
	0XC9, 0XBE, 0XB3, 0XFD, 0XB4, 0XA6, 0XC0, 0XED, 0XD6, 0XD0
};
/* 汉字:删除成功 */
const unsigned char HZ_SCCG[8] = {
	0XC9, 0XBE, 0XB3, 0XFD, 0XB3, 0XC9, 0XB9, 0XA6
};

/* 汉字:删除失败 */
const unsigned char HZ_SCSB[8] = {
	0XC9, 0XBE, 0XB3, 0XFD, 0XCA, 0XA7, 0XB0, 0XDC
};

/* 汉字:删除08按1,删除32按2 */
const unsigned char HZ_CCEES[26] = {
	0XC9, 0XBE, 0XB3, 0XFD, 0XA3, 0XB0, 0XA3, 0XB8, 0XB0, 0XB4, 0XA3, 0XB1, 0XA3, 0XAC, 0XC9, 0XBE, 0XB3, 0XFD, 0XA3, 0XB3, 0XA3, 0XB2, 0XB0, 0XB4, 0XA3, 0XB2
};


typedef union
{
	uint8 SYS_STATE_FLAG;
	SYS_STATE  	FLAG;
	
 }SYS_STATE_UNION;
 static  volatile SYS_STATE_UNION  sysstate;//系统状态

static	uint8		status=0;
static	uint8		newStatus;

uint8 MsgProcInt(msg)
{
  
  switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return 1;
     break;
	 
case  MES_KEY_DOWN:
	  return 1;
	  break;
	    case  KEY7:
		      return 7;
			  break;
	    case  KEY9:
		    return 9;
		  break; 
			
   }
  return 0; 

 }

//删除卡信息处理
//如果有数据的话,要把卡的数字要显示出来
uint8 MsgProDelCard(msg)
{
  switch(msg)
  	{                        //这里可以做不同的数据进行处理
       case  MES_KEY_DOWN:
            nop;
            nop;
	      //  LcdCount();
	      return SYS_FUC1 ;   
	      break; 
      }

}


uint8 MsgProcFuc(msg)
{
  
  switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return 1;
     break;
	 
case  SYS_KEY_DOWN:
	  nop;
	  nop;
	  switch(testkey)
	  	{
	    case  KEY1:
			  nop;
		     
                 //   LcdFuc2(20,&HZ_QSLYSDKH);
		    nop;
		      return  SYS_FUC5_EES ;
			  break;
	    case  KEY2:
			nop;
		    return SYS_FUC_EE;
	  	}	
		  break; 
			
   }
  return   SYS_FUC; 

}


 uint8 MsgProcFuc1(msg)  //
{
  
  switch(msg)
 {
  
 case  SYS_KEY_DOWN:
 	//  CLOSE_5S_TIMER(); 
         nop;
        nop;
	 LcdDisp(); 	
	 nop;
	  return  SYS_FUC1 ;//SYS_DELCARD
     break;
  	
   case    MES_COUNEND8 :
      nop;
   	  return    SYS_FUC2;
	  break;

//删除时间退出处理
    case  MES_5SEC_TIME:
        nop;
 	 nop;
       return   SYS_FUC1 ;
        break;    
	
    default: 
	 SYS_FUC1; 
  }

   return  SYS_FUC1;
  
 }


 uint8 MsgProcFuc2(msg) //删除卡号处理中
{
  
   switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return 1;
     break;

case   MES_DELCARD_SU:

     nop;
     return  SYS_FUC3_SUCESS;
     break;

case MES_DL_FU:
     	return SYS_FUC4_FULL;
     break;
default:   
	return  SYS_FUC2;

   }

}
 
 uint8 MsgProcFuc3(msg) // 
 	{
   switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return  SYS_FUC;
     break;
default:   
	return  SYS_FUC ;

	 
   	}
 }

 uint8 MsgProcFuc4(msg) // 
 	{
   switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return  SYS_FUC;
     break;
default:   
	return  SYS_FUC ;

	 
   	}
 }

uint8 MsgProcFuc5(msg)
{
  
  switch(msg)
 {
  
 case MES_SEC_TIME:
 	
       nop;
	   nop;
	  return 1;
     break;
	 
case  SYS_KEY_DOWN:
	  nop;
	  nop;
	  switch(testkey)
	  	{
	    case  KEY1:
			  nop;
		       EEType=EE8;
                 //   LcdFuc2(20,&HZ_QSLYSDKH);
		    nop;
		      return  SYS_FUC1 ;
			  break;
	    case  KEY2:
			nop;
	          EEType=EE32;
		    return SYS_FUC1;
	  	}	
		  break; 
			
   }
  return   SYS_FUC5_EES; 

}





void ConProFuc2(void) //删除卡号处理
{

    LcdFuc2(10,&HZ_SCCLZ);

    nop;
    if(BJ_EE_Card(8,BJCardBuf)==BJ_OK)
               MessagePush(MES_DELCARD_SU );
     else    MessagePush(MES_DL_FU);	   
   nop;
}
void ConProFuc3(void) //删除成功
{
      OPEN_1S_TIMER();
     nop;
  //    LcdDisp(); 
   DELOneCard(BJReAddr);
  LcdFuc2(8,&HZ_SCCG);
    nop;
    nop;
	

}
void ConProFuc4(void) //删除失败
{
  OPEN_1S_TIMER();
     nop;
  //    LcdDisp(); 	
  LcdFuc2(8,&HZ_SCSB);
    nop;
   nop;
	

}
void ConProFuc5(void) //选持删除08还是32
{
    //  OPEN_5S_TIMER();
      LcdFuc2(26,&HZ_CCEES);
}

void ConProFuc1(void)
{
    //  OPEN_5S_TIMER();
     nop;
  //    LcdDisp(); 	
  LcdFuc2(8,&HZ_SCKH);
   LCD_Write_Com(0x90);
  nop;
   *KeyB=testkey;
	

}


void ConProInt(void)
   {
    LcdFuc2(26,&HZ_HYSY);
    OPEN_1S_TIMER();
	
  }

void ConProFuc(void)
{
 LcdFuc2(22,&HZ_SKQA);
 // OPEN_1S_TIMER();
    
 
   }
void  ConProDelCard(void)
  {
  //  OPEN_1S_TIMER();
//   LcdFuc2(2,&SK);//空格
   

    }
 
void ConProFuc_EE(void)
{
  nop;
  nop;
 LcdFuc2(10,& HZ_SZL);
  nop;
  nop;
  OPEN_1S_TIMER();

   }

void DelProInt(void)
{

 LcdFuc2(10,&HZ_JSCSH);
 CLOSE_1S_TIMER();

  }
void DelProFuc(void)
{
// CLOSE_1S_TIMER();
 nop;
 nop;
  }
void DelProFuc_EE(void)
{
  CLOSE_1S_TIMER();
 nop;
 nop;
  }
void DelProFuc1(void)
{
 //  CLOSE_5S_TIMER();
 nop;
 nop;
 LcdCount=0;
  }
void DelProFuc2(void)
{
  //CLOSE_1S_TIMER();
 nop;
 nop;
  }
void DelProFuc3(void)
{
   CLOSE_1S_TIMER();
 nop;
 nop;
  }
void DelProFuc4(void)
{
  CLOSE_1S_TIMER();
 nop;
 nop;
  }

void DelProFuc5(void)
{
 // CLOSE_1S_TIMER();
 nop;
 nop;
  }


uint8 MSGTask(msg)
{
  uint8 temp ;
    nop;
  if (sysstate.SYS_STATE_FLAG== SYS_NULL)
    
   {  temp=MsgProcInt(msg);
     nop;
     nop;
  	return  temp;
   
  	}
  
  if(sysstate.SYS_STATE_FLAG==SYS_FUC)
  	{
  	 nop;
   temp=MsgProcFuc(msg);
	 nop;
	return temp;
		
     }
  if(sysstate.SYS_STATE_FLAG==SYS_FUC1 )
  	{
       nop;
	   temp=MsgProcFuc1(msg);
      	return temp;
        }
    if(sysstate.SYS_STATE_FLAG==SYS_DELCARD)
  	{ 
       nop;
	   temp=MsgProDelCard(msg);
       	return temp;
        }
     if(sysstate.SYS_STATE_FLAG==SYS_FUC2)
       	{
       nop;
	   temp=MsgProcFuc2(msg);
       	return temp;
        }
         if(sysstate.SYS_STATE_FLAG==SYS_FUC3_SUCESS)
       	{
       nop;
	   temp=MsgProcFuc3(msg);
       	return temp;
        }
        if(sysstate.SYS_STATE_FLAG==SYS_FUC4_FULL)
       	{
       nop;
	   temp=MsgProcFuc4(msg);
       	return temp;
        }
       if(sysstate.SYS_STATE_FLAG==SYS_FUC5_EES)
       	{

          temp=MsgProcFuc5(msg);
          return temp;
	   }
	 
	
  }



CONTask(uint8 newStatus)
{
   if(newStatus==SYS_NULL)
   	{
      ConProInt();
     }
    if(newStatus== SYS_FUC)
    {
       ConProFuc();
	  }
   if(newStatus==  SYS_FUC_EE)
   	{
    nop;
    nop;
    ConProFuc_EE();
     }
   if(newStatus== SYS_DELCARD)
   	{
   	ConProDelCard();
       }
   if(newStatus==SYS_FUC1 )
   	{
       ConProFuc1(); 
       }
      if(newStatus==SYS_FUC2)
   	{
       ConProFuc2(); 
       }
   if(newStatus==SYS_FUC3_SUCESS)
   	{
       ConProFuc3(); 
       }

   if(newStatus== SYS_FUC4_FULL)
   	{
       ConProFuc4(); 
       }
     if(newStatus==  SYS_FUC5_EES)
   	{
       ConProFuc5(); 
       }



 

 }


 DETask(status)
 	{
 	if(status==0 )
 	 	{
         DelProInt();   
	    }
	if(status==1 )
 	 	{
         DelProFuc();   
	    }	
	if(status==SYS_FUC1 )
	{
        
        DelProFuc1( );
	  }
     	if(status==SYS_FUC2)
	{
        
        DelProFuc2( );
	  }
	  if(status==SYS_FUC3_SUCESS)
	{
        
        DelProFuc3( );
	  }
    if(status==SYS_FUC4_FULL)
	{
        
        DelProFuc4( );
	  }

       if(status==SYS_FUC5_EES)
	{
        
        DelProFuc4( );
	  }

	
  nop;
  nop;
  nop;

     }
 
void Task(void)
{

	MESSAGE msg;
   if(!Message(&msg))
		return;
    nop;
  	
   newStatus=MSGTask(msg);
   sysstate.SYS_STATE_FLAG=newStatus; 
   nop;
   if(newStatus!=status)
   	{
   // MSGTask();
    nop;
    DETask(status);
	nop;
	nop;
    CONTask(newStatus);//
    status=newStatus;
  
   	}
}
#endif

⌨️ 快捷键说明

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