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

📄 keyboard.c

📁 。 。 。 。 。 。 。 。 。 。 。 。。 。 。
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
//数码管显示段表
uchar code codetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//键盘扫描段表
uchar code duancode[]={0X7E,0XBE,0XdE,0xEE,0X7d,0XBd,0Xdd,0XEd,0X7B,0XBB,0XdB,0XEB,0X77,0XB7,0XD7,0XE7};
//键盘扫描位码
uchar code bitcode[4]={0xfe,0xfd,0xfb,0xf7};
//延迟
void delay(uchar n)
{
uchar i,j;
for(j=n;j>0;--j)
   for(i=255;i>0;--i)
   ;
}

//键盘扫描
uchar keyscan(void)
{
   uchar key;
   P1=0xf0;
   if(P1!=0xF0)
    {
   delay(50);
   if(P1!=0xF0)						//按下第一列键					
   {        
     P1=0x7f;
     if(P1!=0x7f)
     {
        switch(P1)
		{
			case 0x7e:key=0;break;
			case 0x7d:key=4;break;
			case 0x7b:key=8;break;
			case 0x77:key=12;break; 
		}
	 }

	 P1=0xbf;						//按下第二列键
     if(P1!=0xbf)
     {
        switch(P1)
		{
			case 0x7e:key=1;break;
			case 0x7d:key=5;break;
			case 0x7b:key=9;break;
			case 0x77:key=13;break;
		}
	 }

     P1=0xdf;						//按下第三列键
     if(P1!=0xdf)
     {
        switch(P1)
		{
			case 0x7e:key=2;break;
			case 0x7d:key=6;break;
			case 0x7b:key=10;break;
			case 0x77:key=14;break; 
		}
	 }

     P1=0xef;						//按下第四列键
     if(P1!=0xef)
     {
        switch(P1)
		{
			case 0x7e:key=3;break;
			case 0x7d:key=7;break;
			case 0x7b:key=11;break;
			case 0x77:key=15;break; 
		}
	 }
   }

  }
return 0;
}
//得到键盘号
uchar getkey(uchar key)
{
     uchar i,temp;
     temp=key;
     for(i=0;i<=15;i++)
{
      if(temp==duancode[i])
    return(i);
     }          
    
}

//主函数
main()
{
   uchar i,key=0;
   SCON=0x50;
   TMOD=0x20;
   TH1=0xfd;
   TL1=0xfd;
   TR1=1;
   IE=1;
   ES=1;
   while(1)						//窜口通信
   {
    key=keyscan();
    if(key)
    { 
     i=getkey(key);
     SBUF=i;
     while(TI!=1);
     P2=codetab[i];
     TI=0;
        
        
    }
   
    if(RI==1)
    {
     while(RI!=1);
     P0=codetab[SBUF];
     RI=0;
    
    } 
   }
}

⌨️ 快捷键说明

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