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

📄 key.c

📁 电子时钟
💻 C
字号:
#include <reg51.h>
#include <init.h>
extern void Delay(unsigned char i);
extern void LCD_Write_Com(unsigned char com) ;
extern void LCD_Write_Dat(unsigned char dat) ;
extern unsigned char LCD_Read_Com(void);
unsigned char tr[]={0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,
                        0xc4,0xc5,0xc7,0xc8,0xca,0xcb};

/*************键盘查询扫描函数*************************/
unsigned char Key_Scan(void)
{
   unsigned char a,b,temp; 
   temp=0xff;
   KEY=0x0f;
 //  while(c--!=0)
 //  {
     if(KEY!=0x0f)
      {
	    Delay(20);
		if(KEY!=0x0f)
		   {
		    a=KEY;
		    KEY=0xf0;
		    b=KEY;
		    a=a|b;
			switch(a)
			 {
			  case 0xe7:temp='1';break;
			  case 0xd7:temp='2';break;
			  case 0xb7:temp='3';break;
			  case 0x77:temp='T';break;
			  case 0xeb:temp='4';break;
			  case 0xdb:temp='5';break;
			  case 0xbb:temp='6';break;
			  case 0x7b:temp='C';break;
			  case 0xed:temp='7';break;
			  case 0xdd:temp='8';break;
			  case 0xbd:temp='9';break;
			  case 0x7d:temp='W';break;
			  case 0xee:temp='0';break;
			  case 0xde:temp='L';break;
			  case 0xbe:temp='R';break;
			  case 0x7e:temp='B';break;
			  default:break;
		      }	 
	   	   }

	  }

//	  if (temp!=0xff) break;
 //  }
   return temp;
} 
/*
unsigned char Key_Scan(void)
{
   unsigned char a,b,temp; 
   temp=0xff;
   KEY=0x0f;
   b=0x7f;
     if((KEY&0x0f)!=0x0f)
      {
	    Delay(20);
		if((KEY&0x0f)!=0x0f)
		   {
		    for(a=0;a<4;a++)
			{
		     KEY=b;
			 if((KEY&0x0f)!=0x0f)
			    {
				   temp=KEY;
				   break;
				}
			 else 
			    b=(b>>1)|0x80;
		    }
			if(a>=4)
			  return 0xff;
		   	switch(temp)
			 {
			  case 0x77:temp='1';break;
			  case 0x7b:temp='2';break;
			  case 0x7d:temp='3';break;
			  case 0x7e:temp='T';break;
			  case 0xb7:temp='4';break;
			  case 0xbb:temp='5';break;
			  case 0xbd:temp='6';break;
			  case 0xbe:temp='C';break;
			  case 0xd7:temp='7';break;
			  case 0xdb:temp='8';break;
			  case 0xdd:temp='9';break;
			  case 0xde:temp='W';break;
			  case 0xe7:temp='0';break;
			  case 0xeb:temp='L';break;
			  case 0xed:temp='R';break;
			  case 0xee:temp='B';break;
			  default:break;
		      }	 
	   	   }

	  }
   return temp;
}*/
void Left(void)
{
  unsigned char i,j,tmp;
  j=LCD_Read_Com();
  i=0;
  while(j!=tr[i])
        i++;
  if(i==0)
     tmp=tr[13];
  else
     tmp=tr[--i];
  LCD_Write_Com(tmp);
}
void Right(void)
{
   unsigned char i,j,tmp;
   j=LCD_Read_Com();
   i=0;
   while(j!=tr[i])	  //先找出当前光标在什么位置
        i++;
   if(i==13)
      tmp=tr[0];
   else
    { 
	  i++;
      tmp=tr[i];
	}
   LCD_Write_Com(tmp);
//   LCD_Write_Com(0x0f);//开显示,开光标,闪烁
}

⌨️ 快捷键说明

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