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

📄 sc1.c

📁 关于RST12864显示程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                                                    char_temp='.';
                                                   break; 
                                              case KEY_SIGN:       //新增加用KEY_SIGN代替KEY_NS
                                                    char_temp='-';
                                                   break;     
                                            default:
                                                  break;
                                         } 
                           
   }

   void clr_act()
   {Write_data(0x20);
    Write_command(0x10);//光标左移一位
    Write_data(0x20);//需要删除的位置写一个空字符       
    Write_data(0x20);
    Write_command(0x10);
   }

void pol_getkey(void)
{
    
  /*  if(key== KEY_UP)
    {set_add_p();                                        
     lock1=1;
    }
    if(key== KEY_DOWN)
    {set_dec_p(); 
     //watch2();                                         
     lock1=1;
    }
    if(key== KEY_LEFT)
    {set_add_a(); 
    // watch2();                                         
     lock1=1;
    }
    if(key== KEY_RIGHT)
    {set_dec_a(); 
    // watch2();                                         
     lock1=1;
    }
    if(key== KEY_DOT)
    {set_dec_c();                                            
     lock1=1;
      if(go_flag==0) go_flag=1;
      else go_flag=0;
    }
    if(key== KEY_0)
    {set_add_c();                                             
     lock1=1;
     if(go_flag==0) go_flag=1;
      else go_flag=0;
    }
    if(key== KEY_MENU |key== KEY_CLR)
    {layer[1]=1;
     layer[2]=0;
    }   */
   P2OUT = 0x1E;/*/1st row*//*2.0置0,其余置1*/
    key_temp = (~P1IN) &0xf8;                 
    switch(key_temp&keya)
    {  
    case  0x80:
        key = KEY_3;
        break;
   case 0x40:
        key =KEY_0;
        break;
    case 0x20:
        key = KEY_MENU;
        break;
    case 0x10:
       
        key = KEY_UP;               
        break;
    case 0x08:
        key = KEY_STOP;               
        break;
     default:
        key = 100;
        break;
    }
    keya = (~key_temp)&(0xf8);
    if(key == 100)
    {    
        P2OUT =0x1D;/*/2st row*//*2.1置1*/
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keyb)
        {
            case 0x80:
                key = KEY_DOT;
                break;
            case 0x40:
                key = KEY_NS;          
                break;
            case 0x20:
                key = KEY_LEFT;
                break;
            case 0x10:
                key =KEY_DOWN;
                break;
             case 0x08:
                key =KEY_RIGHT;
                break;         
            default:
                key = 100;
                break;
        }
         keyb = (~key_temp)&(0xf8);
    }   
    if(key == 100)
    {
        P2OUT = 0x1B;/*/3st row*/
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keyc)
        {
            case 0x80:
                key = KEY_2;
                break;
            case 0x20:
                key = KEY_EDIT;
                break;
            case 0x10:
                key = KEY_CLR;
                break;                    
            default:
                key = 100;
                break;
        }	
        keyc = (~key_temp)&(0xf8);
    }       
    
    /* -------------------------------检测完毕-------------------------*/ 
      if(key!=100)
    {              
               
    if(key!=KEY_0 & key!=KEY_DOT & key!=KEY_2 & key!=KEY_3 & key!=100)
     in_flag=0;                                                 
    if(key== KEY_DOT)
    {set_dec_c();                                            
     lock1=1;
      if(go_flag==0) go_flag=1;
      else go_flag=0;
    }
    if(key== KEY_0)
    {set_add_c();                                             
     lock1=1;
     if(go_flag==0) go_flag=1;
      else go_flag=0;
    } 
    if(key== KEY_2)
    { set_dec_sc();
    lock1=1;}
    
     if(key== KEY_3)
     {set_add_sc();
     lock1=1;}
    
}
}

void getkey(void)
{     _EINT();       
    IE1 &=~0x40;//关闭串口中断//
    ME1 &=~0x40; 
    P2OUT = 0x1E;/*/1st row*//*2.0置0,其余置1*/
    Delay(100);
   // Delay(20);
    key_temp = (~P1IN) &0xf8;                 
    switch(key_temp&keya)
    {             
    case  0x80:
        key = KEY_3;
        break;
    case 0x40:
        key =KEY_0;
        break;
    case 0x20:
        key = KEY_MENU;
        break;
    case 0x10:      
        key = KEY_UP;               
        break;
    case 0x08:
        key = KEY_STOP;               
        break;
     default:
        key = 100;
        break;
    }
    keya = (~key_temp)&(0xf8);
    if(key == 100)
    {    
        P2OUT =0x1D;/*/2st row*//*2.1置1*/
        Delay(20);
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keyb)
        {
            case 0x80:
                key = KEY_DOT;
                break;
            case 0x40:
                key = KEY_NS;          
                break;
            case 0x20:
                key = KEY_LEFT;
                break;
            case 0x10:
                key =KEY_DOWN;
                break;
             case 0x08:
                key =KEY_RIGHT;
                break;         
            default:
                key = 100;
                break;
        }
         keyb = (~key_temp)&(0xf8);
    }   
    if(key == 100)
    {
        P2OUT = 0x1B;/*/3st row*/
        Delay(20);
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keyc)
        {
            case 0x80:
                key = KEY_2;
                break;
            case  0x40:
                key = KEY_1;
                break;
            case 0x20:
                key = KEY_EDIT;
                break;
            case 0x10:
                key = KEY_CLR;
                break;
            case 0x08:
                key = KEY_ENTER;
                break;
          
            default:
                key = 100;
                break;
        }	
        keyc = (~key_temp)&(0xf8);
    }
    if(key == 100)
    {
        P2OUT = 0x17;/*/4st row*/
        Delay(20);
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keyd)
        {
            case 0x80:
                key = KEY_5;
                break;
            case 0x40:
                key = KEY_4;
                break;
            case 0x20:
                key = KEY_7;
                break;
            case 0x10:
                key = KEY_8;
                break;
             case 0x08:
                key = KEY_9;
                break;
          
            default:
                key = 100;
                break;
        }	
        keyd = (~key_temp)&(0xf8);
    }   
    if(key == 100)
    {
        P2OUT = 0x0F;/*/5st row*/
        Delay(20);
        key_temp = (~P1IN) &0xf8;
        switch(key_temp&keye)
        {
            case 0x80:
            key = KEY_6;
            break;                        
            default:
            key = 100;
            break;
        }	
        keye = (~key_temp)&(0xf8);
    } 
}

    /* -------------------------------检测完毕-------------------------*/ 

void key_fun(void)
{   if(key!=100)
    {              
                 if(((wait_kflag==1)|(wait_gflag==1)|(continue_flag==1))&(key==KEY_ENTER))
                {
                    set_go();
                    watch2();
                    set_go();
                    watch2();                
                    if(wait_gflag==1)                      
                    {all_show(wait,1,2);
                     wait_gflag=0;                     
                     }
                     if(wait_kflag==1)                      
                    {all_show(ini,1,2);
                     wait_kflag=0;                     
                     }
                    if (continue_flag==1)
                    {       
                            continue_flag=0;                        
                            clear();                            
                            all_show(wait,1,2);
                     }
                    goto end; 
                 }
                  if(key==KEY_STOP)
                    { pack_panel();
                      layer[4]=1;
                      layer[1]=0;
                      goto end;                  
                    }                                         
                    
                      if (key == KEY_MENU)
                      {
                            layer[1] = 1;
                            layer[2] = 0; 
                            layer[3] =0 ;                            
                            lock1=1;  
                           _DINT();                         
                           _EINT();
                            set_set();
                            set_set();
                            watch2();
                            
                            for( j=0;j<5;j++)
                            watch1();                                                            
                              
                                                    
                            goto end;  
                           
                      } 
                 
                     
                      if(layer[4]==1)
                      {if(key==KEY_1)//收藏
                          {set_pack(); 
                           watch2();
                           set_pack(); 
                           watch2(); 
                           x_flag=0;
                           y_flag=0;
                           
                           _DINT();
                           Delay(20);
                           _EINT();
                           
                         //  PIN_CLEAR();
                         //  clear();
                          // Write_command(0x30);
                          // charactertolcm(0x92,Ch_zzsc); 
                           all_show(zzsc,1,3);
                           layer[4]=0;
                           goto end;
                          }
                       if(key==KEY_2)//复位
                          {                           
                          // clear();
                           _DINT();                        
                           _EINT();
                         
                           all_show(zzfw,1,2);
                           set_restart(); 
                           watch2();  
                           Delay(10);

⌨️ 快捷键说明

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