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

📄 main.c

📁 我自己做的一个手柄机的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
  while(!TI);                                                               
   TI = 0;                                                                  
  }                                                                  
  SBUF = temp;
  while(!TI);
    TI = 0;
  SBUF = 59;
  while(!TI);
   TI = 0;
  SBUF = 13;
  while(!TI);
   TI = 0;

    kbBuff[0] = KB_VAL;
  if((RAM_PAGE == 0X05) && (X_AXIS > 106))
     {
	    RAM_PAGE = 0X02;
		clearPage(RAM_PAGE++);
		clearPage(RAM_PAGE++);
		clearPage(RAM_PAGE++);
	  RAM_PAGE = 0X02;
	  X_AXIS = 0X04;
	  }
    PAGE = RAM_PAGE;
    RAM_PAGE = dispBigFontStr(PAGE, X_AXIS, kbBuff);
   if((RAM_PAGE != PAGE) ||(X_AXIS > 106))
    {  
     X_AXIS =0x04;
	 RAM_PAGE += 3;
       clearPage(RAM_PAGE++);
	   clearPage(RAM_PAGE++);
	   clearPage(RAM_PAGE++);
	  RAM_PAGE -= 3;
    }
   else 
     X_AXIS += 12; 
  }


  
  
else{ 
   if((KB_VAL < 0X0C) && (!ATVTS_FLAG))

   {
    if(KEY_COUNT == 0)
	   clearScreen();
	   KEY_BUFF[KEY_COUNT++] = KB_VAL;
    }

 if(KB_VAL == CANCER)
   {  
     BUSY_FLAG = 0;
     loop = 0;
	 while((loop < 0x03) && (KB_VAL == CANCER))
	  {
	   loop ++;
	   KB_VAL = 0;
	   delayMs(1);
       KB_VAL = keyScan();                       // check again  and ath
	   KB_VAL = getKeyVal(KB_VAL);
        }

 if((KB_VAL == CANCER) && (loop >= 0x02))
   {
     REN = 0;
     sendAtCmd(ath);
     REN =1;
     KEY_COUNT = 0;   	  
     RAM_PAGE = 0x02;
     X_AXIS = 0x04;
     clearScreen();
     clearUartBuff();
     dispBYD();
     ATVTS_FLAG = 0;
    }
  else                           // delete
   {
   if(X_AXIS < 0X06)
    {
     RAM_PAGE -= 3;
     X_AXIS = 124;
    }
   else
      X_AXIS -= 12;
    //sendAtCmd(ath);
      KEY_COUNT--;	 
      clearFont(RAM_PAGE, X_AXIS);
     }
   }
 else 
   if(KB_VAL == ENTER) 
       
     {
	 BUSY_FLAG = 1;
    if((CALL_FLAG == CALL_OUT) && (KEY_COUNT != 0))           //有按键且为ENTER
	 {
     if(KEY_COUNT > KEY_BUFF_SIZE)
         KEY_COUNT = KEY_BUFF_SIZE;
    	  REN = 0;
    	 clearUartBuff();
    	 JUDGE_OK = 0;
	     JUDGE_ERROR = 0;
         SEND_COUNT = strlen(atd);
	     i = 0;
     while( i < SEND_COUNT)
      {
        SBUF = atd[i++];
    	while(!TI);
    	TI = 0;
       }
          i = 0;
	  while(i < KEY_COUNT)
	      {
		    SBUF = numLib[KEY_BUFF[i++]];
		    while(!TI);
		    TI = 0;

	       }
           SBUF = 59;
	   while(!TI);
	    TI = 0;
	   SBUF = 13;
	   while(!TI);
	    TI = 0;
 	   JUDGE_OK = 0;
	   clearUartBuff();
       TALK_FLAG = 1;
	   KEY_COUNT = 0;
	   REN = 1;
	   CALL();
	   delayS(1);
//	   delayMs(1);
//	   while(!REC_FLAG);

	   STATUS_OK = 0;
	   while(!STATUS_OK)
	    {
	     LIST_CNT = UART_COUNT;
		 LOCATION = Index_BF(UART_BUFF, LIST_CNT,NOCARRIR);
		 LOCATION = Index_BF(UART_BUFF, LIST_CNT, ERR);
		 if(LOCATION)
	    	{
			BUSY_FLAG = 0;
		    JUDGE_ERROR = 0;
			STATUS_OK = 1;
		    clearScreen();
       	    dispBYD();
            }
         else 
	         {
            	   LIST_CNT = UART_BUFF_SIZE;
		       //   while(JUDGE_OK == 0)
				   JUDGE_OK = Index_BF(UART_BUFF, LIST_CNT, call0);

	        	   REN = 0;
				   JUDGE_OK = UART_BUFF[++JUDGE_OK];
				   REN = 1;
				   if(JUDGE_OK == '1')
				  {
                   clearPage(0);
                   clearPage(1);
				   dispTalking();
		           STATUS_OK = 1;
				   ATVTS_FLAG = 1;
				  }
		     }
/*		if(JUDGE_ERROR)
           {
		  REN = 0;
		  JUDGE_ERROR = 0;
		  LOCATION = 0;
		  LOCATION = Index_BF(UART_BUFF, LIST_CNT, NOCARRIR);
	//	  for(ret=0;ret<UART_BUFF_SIZE;ret++)
	//	  if(REC_JUDGE_NO)
          if(LOCATION != 0)
	        {
			ATVTS_FLAG = 0;
		    STATUS_OK = 1;
            clearScreen();
		    dispBYD();
		    }
   	        LOCATION = 0;
	        LOCATION = Index_BF(UART_BUFF, LIST_CNT, ERR);
	     if(LOCATION)
		   {
		    ATVTS_FLAG = 1;
		    STATUS_OK = 1;
			clearScreen();
			dispBYD();
    	   }
		   REN = 1;
		 }*/
	 }
   }
   
 /*  else
    if(KB_VAL == NEXT)
	  {
	   if(X_AXIS > 107)
  	     {  
                 RAM_PAGE += 3;
        	   	 X_AXIS = 0X04;
	     }
	  else
                X_AXIS += 12;
	  }
*/
  else
       if(CALL_FLAG == CALL_IN)
	  {
	   sendAtCmd(ata);
	   clearPage(0);
	   clearPage(1);
	   dispTalking();
	   clearUartBuff();
	   CALL_FLAG = CALL_OUT;
	  // ATVTS_FLAG = 0;
	   RAM_PAGE = 0x02;
       X_AXIS = 0x04;
	  }

       KEY_COUNT = 0;   	  
  //     RAM_PAGE = 0x02;
  //     X_AXIS = 0x04;
   	 }

      else 
	    if(KB_VAL == 0X00)
           {
		    CALL_FLAG = CALL_OUT;
             kbBuff[0]= 0X00;
          if(X_AXIS > 0x77)
           {
            RAM_PAGE  += 3;
            X_AXIS = 0x04;
            }
            dispBigFont(RAM_PAGE, X_AXIS, table0);
            X_AXIS += 12;
	/*		if(ATVTS_FLAG)
			 {
			  sendAtCmd(vts);
			  kbBuff[0] = numLib[0];
		      sendAtCmd(kbBuff);
			  }*/
		   }
	 	 else 
	  if((KB_VAL > 0) && (KB_VAL < 0X0C))
	    {  
		      CALL_FLAG = CALL_OUT;
              REN = 0;
	          kbBuff[0] = KB_VAL;
            if((RAM_PAGE == 0X05) && (X_AXIS > 106))
			  {
			   RAM_PAGE =0X02;
			     clearPage(RAM_PAGE++);
				 clearPage(RAM_PAGE++);
				 clearPage(RAM_PAGE++);
			   RAM_PAGE = 0X02;
			   X_AXIS = 0X04;
			   }
             // PAGE = RAM_PAGE;
              PAGE = dispBigFontStr(RAM_PAGE, X_AXIS, kbBuff);
             if((PAGE != RAM_PAGE) ||(X_AXIS > 106))
                {  
                 X_AXIS = 0x04;
				 RAM_PAGE += 3;
                 clearPage(RAM_PAGE++);
				 clearPage(RAM_PAGE++);
				 clearPage(RAM_PAGE++);
				 RAM_PAGE -= 3;
                }
              else 
                X_AXIS += 12; 
                REN = 1;
   /*       	if(ATVTS_FLAG)
			 {
			  sendAtCmd(vts);
			  kbBuff[0] = numLib[KB_VAL];
			  sendAtCmd(kbBuff);// PutChar(KB_VAL);
			  }*/
         }
	  }
    } 
  }
}




/***************************************************************************
                     串口中断程序
****************************************************************************/
            void SERIAL(void) interrupt 4 using 3

{
 UINT8 i , cnt;

if(RI)
 {
   cnt = SBUF;
   RI =0; 
   UART_BUFF[UART_COUNT++] = cnt;

  if('K' == cnt)
       JUDGE_OK = 1;

   i = UART_COUNT - 1;
 if((UART_BUFF[i] == 0X0A) && 
	(UART_BUFF[--i] == 0X0D) &&
	(UART_BUFF[--i] != 0x0D))
	{    
	 REC_FLAG =0x01;
     }

  if('G' == cnt)
     STATUS_FLAG = 1;

 
  if(('R' == cnt) || ('N' == cnt))
	 JUDGE_ERROR = 1;

  if(UART_COUNT > UART_BUFF_SIZE)
   {
    BUFF_FULL = 0;
    UART_COUNT = 0;
   }
  else
    BUFF_FULL = 1;
   }
}












void TIME0(void) interrupt 1 using 1
{
UINT8 temp = 0;
TR0 = 0;
TH0 = 0X3c;
TL0 = 0Xaf;
INT_NESTING++;
CHECK_SIGNAL++;
if(INT_NESTING >= 5)
 { 
 //temp = Index_BF(UART_BUFF, UART_COUNT, NOCARRIR); 
  if(temp)
    {
    clearScreen();
    }
    INT_NESTING = 0;
    STATUS_OK = 1;
  }
if(CHECK_SIGNAL >= 0Xffe)
   {
    CHECK_SIGNAL = 0;
	JUDGE_OK = 1;
    CHECK_SIGNAL_FLAG = 1;
   }
 TR0 = 1;
}

⌨️ 快捷键说明

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