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

📄 keyprocess.c

📁 这是一个用于视频切换的控制程序,采用AT89C51芯片,KEIL 51开发
💻 C
字号:

#include"reg52.h"
#include"main.h"

bit fgkey=0;
bit fgkey_on=0;
bit fgauto;
bit fgkey10=0;
bit fgledflash=0;

unsigned char data auto_counter;
unsigned      int ledflash_counter=0;
unsigned char data keydata1;
unsigned char data keydata2;
unsigned char data keybuffer;
unsigned char scankeycounter;
extern unsigned int  TimeCounter;
extern unsigned char data ledbuffer_h;
extern unsigned char data ledbuffer_l;
extern keydata;
extern unsigned char keyscan(void);
extern void delay1ms(unsigned char count);
extern void  x24c02_write(unsigned char address,unsigned char info);

void keyprocess(void)
{
 
 keyscan(); 
 keydata=keyscan();

 if(keybuffer != keydata)
  {
   keybuffer = keydata;
   scankeycounter = 20;
  }
 
  else if(scankeycounter!=0)
 {
   scankeycounter--;
   delay1ms(1);
 }

  else if (keybuffer!=no_key)
  {
   if(!fgkey_on)
   {
   fgkey_on=1;
   switch (keybuffer)
    {
	 case key1:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key1;
		  keydata2=0;
          ledbuffer_h=0;
          ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key1;
          ledbuffer_h=keydata1;
          ledbuffer_l=keydata2;
          
          }
	      break;
	 case key2:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key2;
		  keydata2=0;
          ledbuffer_h=0;
          ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key2;
          ledbuffer_h=ledbuffer_l;
          ledbuffer_l=keydata2;
          }
	      break;
	 case key3:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
		  keydata2=0;
          keydata1=key3;
          ledbuffer_h=0;
          ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key3;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
	      break;
	 case key4:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key4;
		  keydata2=0;
		  ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key4;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
	      break;
	 case key5:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key5;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key5;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
          break;
 	 case key6:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key6;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key6;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
          break;
 	 case key7:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key7;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key7;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
          break;
 	 case key8:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key8;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key8;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
          break;
 	 case key9:
	      fgledflash=1;
          if(!fgkey)
          {
          fgkey=1;
          keydata1=key9;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=key9;
          ledbuffer_h=ledbuffer_l;
		  ledbuffer_l=keydata2;
          }
          break;
 	 case key10:                                 //"0" key
         fgledflash=1;
         if(!fgkey)
          {
          fgkey=1;
          keydata1=0;
		  keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=keydata1;
          }

          else
          {
		  fgkey=0;
          keydata2=0;
          ledbuffer_h =ledbuffer_l;
		  ledbuffer_l = keydata2;
          }
          break;
 	 case key11:                                  //cancel key
          fgledflash=0;
		  ledflash_counter=0;
	      keydata1=0;
          keydata2=0;
          ledbuffer_h=0;
		  ledbuffer_l=0;
		  if(!fgauto)
		  {
		  P0=0 | 0xf8;
		  INH_1=0;
		  INH_2=0;
		  }
          fgkey=0;
        
          break;
 	 case key12:
          fgledflash=0;  //enter key
		  ledflash_counter=0;
          if(!fgauto)
          {
           if(ledbuffer_h==0)                      
             {
              if(ledbuffer_l<9)
               {
			    if((ledbuffer_l-1)==0xff)
				P0=0 | 0xf8;
				else
			    P0=(ledbuffer_l-1) | 0xf8;
                INH_1=0;
                INH_2=1;
               }
              else
               {
                P0=0 | 0xf8;
                INH_1=1;
                INH_2=0;
               }
              }
            else if(ledbuffer_h==1) 
             {
			  if(ledbuffer_l<7)
              P0=(ledbuffer_l+1) | 0xf8;
              else
			  P0=0x07 | 0xf8;
              INH_1=1;
              INH_2=0;
             }
		   else
		     {
			  P0=0x07 | 0xf8;
			  INH_1=1;
			  INH_2=0;
			 }
            fgkey=0;
			keybuffer=no_key;
           }
          else
           
           {
            auto_counter = ledbuffer_h*10 + ledbuffer_l;
            TimeCounter=auto_counter*20;
            x24c02_write(0x00,auto_counter);
            ledbuffer_h=0;
            ledbuffer_l=1;
			P0=0 | 0xf8;
			INH_1=0;
			INH_2=1;
            fgkey=0;
			keybuffer=no_key;
           } 
            
          break;
 	 default:
	      break;
	}
   }

   else
   ;
  
  }
  
  else 
  {
  keybuffer = no_key;
  fgkey_on=0;
  
  }
 }




























⌨️ 快捷键说明

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