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

📄 at89c51.c

📁 献给初学单片机的爱好者们
💻 C
字号:
#include<reg51.h>
unsigned char num;
void delay(void)
 { unsigned char i;
  for(i=0;i<200;i++)
  {}
 }
unsigned char keyscan(void)
{ unsigned char test,tmp;
  P1=0xf0;
  if((P1&0xf0)!=0xf0)
  {	delay();
    if((P1&0xf0)!=0xf0)
	{ test=0xfe;
	  while((test&0x10)!=0)
	  {	P1=test;
	    if((P1&0xf0)!=0xf0)
		{ tmp=(P1&0xf0)|0x0f;
		  return(~(test)+~(tmp));
		}
	else test=(test<<1)|0x01;
	  }
	}
  }
  return(0);
}
void readkey(unsigned char date)
 { switch(date)
  {	case 0X11: num=0;break;
    	case 0X21: num=1;break;
	case 0X41: num=2;break;
	case 0X81: num=3;break;
	case 0X12: num=4;break;
	case 0X22: num=5;break;
	case 0X42: num=6;break;
	case 0x82: num=7;break;
	case 0x14: num=8;break;
	case 0x24: num=9;break;
	case 0x44: num=10;break;
	case 0x84: num=11;break;
	case 0x18: num=12;break;
	case 0x0: num=15;break;
  }
 }
void main(void)
{ while(1)
  {unsigned char a;
  a=keyscan();
  readkey(a);
  P2=num;
  }
}

⌨️ 快捷键说明

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