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

📄 key_big.c

📁 键盘程序1
💻 C
📖 第 1 页 / 共 2 页
字号:
   return 0xff;
   
}
/*********************************************************************
                                   
*********************************************************************/
 #define MAXNUM 10
 uint16 num[MAXNUM];
  fp32  XY;
fp32 ZLG7289_PressKey(void)
{// add user source code 
    uint8 i=0,k,n = 0,m,c,d;
    XY = 0;
    while(1){
        k = ZLG7289_Key();
      
        switch(k){
        
        case 0x08:
                  
                 num[i] = 1;
                 if(i==0){                        // 1 
                     
                     ZLG7289_Download(0,7,0,1);    
                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,1);
                   }
                   ZLG7289_ShortDelay(2000000);
                  i++;
                
                  break;
        
        case 0x10:num[i] = 4;
                  if(i==0){                        //4                      
                     ZLG7289_Download(0,7,0,4);
                                     }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,4);                     
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;
                  break;
  
        case 0x18:num[i] = 7;
                  if(i==0){                      //7 
                     
                     ZLG7289_Download(0,7,0,7);
                   }
                
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,7);
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;
                  break;
 
        case 0x01:num[i] = 0;
                  if(i==0){                       //0 
                                                   //如果还没有键按下,则按下0时显示0
                     ZLG7289_Download(0,7,0,0);
                  }
                  else {                     //如果0在小数点之后或者0不是第一个按下得键则可以显示多个0             
                     
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,0);
    
                  }
                  ZLG7289_ShortDelay(2000000);   
                  i++;
                  break;
   
        case 0x09:num[i] = 2;
                  if(i==0){                      //2
                     
                     ZLG7289_Download(0,7,0,2);

                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,2);
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;
                  break;
 
        case 0x11:num[i] = 5;
                  if(i==0){                      //5 
                     
                     ZLG7289_Download(0,7,0,5);
                     
                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,5);
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;    
                  break;
       
        case 0x19:num[i] = 8;
                  if(i==0){                      //8
                     
                     ZLG7289_Download(0,7,0,8);
                     ZLG7289_ShortDelay(2000000);

                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,8);
                     ZLG7289_ShortDelay(2000000);
                  }
                  i++;
                  break;
       //小数点处理
        case 0x00:
                  if(n == 0)
                  {
                   num[i] = 10;
                   ZLG7289_Download(0,7,1,num[i-1]);
                   i++;                //标记小数点是否被按下
                   n = 1;
                  }                     
                  ZLG7289_ShortDelay(2000000);                  
                   
                             
                   break;
        case 0x0A:num[i] = 3;
                  if(i==0){                        //3
                     
                     ZLG7289_Download(0,7,0,3);
                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,3);
                     
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;               
                  break;
        case 0x12:num[i] = 6;
                  if(i==0){                        //6 
                     
                     ZLG7289_Download(0,7,0,6);
                    
                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,6);
                     
                  }
                  ZLG7289_ShortDelay(2000000);
                  i++;
                  break;
        case 0x1A:num[i] = 9;
                  if(i==0){                          //9
                     
                     ZLG7289_Download(0,7,0,9);
                  }
                  else{
                     ZLG7289_cmd(0xA0);
                     ZLG7289_Download(0,7,0,9);
                    

                  }
                   ZLG7289_ShortDelay(2000000);
                  i++;
                  break;
      
         
        case 0x02:if(num[i-1] == 10 ) 
                   {
                     n = 0;
                     ZLG7289_Download(0,7,0,num[i-2]);
                   }
                   else
                   {
                       ZLG7289_SHR();
                   }
                   ZLG7289_ShortDelay(2000000);
                   i--;
                   num[i] = 0;                 
                   
                   break;//make sure the input data
        case 0x03: ZLG7289_Reset();
                    for(i=0;i<MAXNUM;i++)	 //Reset
                  {
					 num[i] = 0; 
					 XY = 0;                   		    
                  }
                   ZLG7289_ShortDelay(500000);
                   i = 0;
                   n = 0;
                  
                   break;
        case 0x0B:
                   for(m = 0;m < MAXNUM ; m++)
                   {
                      if(num[m] == 0x0A)
                      d = m;
                   
                   }                
                   for(c = 0;c < i; c++)
                   {
                     if(d == 0)
                     {
                        XY += num[c]*pow(10,(i- 1- c));
                     }
                     else if( c < d )
                     {
                       XY += num[c]*pow(10,(i- 2- c)); 
                     }
                     else if( (c >= d) && (d!=0))
                     {
                       XY += num[c+1]*pow(10,(i- 2- c));
                     }      

                   }
                  if(d!=0)
                   {    
                    XY = XY / pow(10,(i-1- d));
                   }
                    for(i=0;i<MAXNUM;i++)	 //Reset
                  {
					 num[i] = 0;
                  }
                  i = 0;
                  n = 0;
                  ZLG7289_Reset();
                  ZLG7289_ShortDelay(500000);
                  return XY;
                   break;
                                            
        default :  break;
         
         
        } 
    }
  
}


char Data[10] ;
void ShowData(uint32 MyData)
{
  ZLG7289_Reset();
  Data[0] = MyData /1000;
  ZLG7289_Download(0,7,0,Data[0] );
  Data[1] = MyData % 1000 /100;
  ZLG7289_cmd(0xA0);
  ZLG7289_Download(0,7,0,Data[1]);
  Data[2] = '.';
  ZLG7289_Download(0,7,1,Data[1]);
  Data[3] = MyData % 1000 % 100 /10;
  ZLG7289_cmd(0xA0);
  ZLG7289_Download(0,7,0,Data[3]);
  Data[4] = MyData % 1000 % 100 %10;
  ZLG7289_cmd(0xA0);
  ZLG7289_Download(0,7,0,Data[4]);
}







⌨️ 快捷键说明

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