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

📄 jianpan.c

📁 AT89C51单片机的4*4键盘程序
💻 C
字号:
 #include <AT89X51.h> 
 unsigned char a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,},b[4],c=0x01;
 unsigned int jianzhi;
 void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
 void show(void)
{ 
unsigned int r;
 for(r=0;r<4;r++)
   {
    P2=(c<<r);
    P0=b[r];
    Delay1ms(1);
    
	}
}

 void key(void)
{
 unsigned int hengzhi,leizhi=0,n,r=0x01;

 if(P3_0==0)
 hengzhi=0;
 if(P3_1==0)
 hengzhi=1;
 if(P3_2==0)
 hengzhi=2;
 if(P3_3==0)
 hengzhi=3;
 for(n=0;n<4;n++)
 {
  P1=~(r<<n);
 if((P3_0&&P3_1&&P3_2&&P3_3)!=1)
  leizhi=n;
 }
	 
  jianzhi=hengzhi*4+leizhi;
 
 }

 void main(void) 
{
 while(1)
 {
 P1=0x00;
 jianche:
 while((P3_0&&P3_1&&P3_2&&P3_3)==1)
 {
  show();
 }
 Delay1ms(10);
 if((P3_0&&P3_1&&P3_2&&P3_3)==1)
 goto jianche;
  
  key();
  P1=0x00;
  while((P3_0&&P3_1&&P3_2&&P3_3)!=1)
   {
   show();
   }
  b[3]=b[2];
  b[2]=b[1];
  b[1]=b[0];
  b[0]=a[jianzhi]; 
  }
}


⌨️ 快捷键说明

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