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

📄 4x4.c

📁 PIC单片机4*4键盘扫描C语言程序
💻 C
字号:
#include <pic.h>
char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char m;
__CONFIG(0x1832);
delay()
{int j;
 for(j=50;j>0;j--);	
}
delay1()
{unsigned int j;
 for(j=5000;j--;);	
}
keyscan()
{char temp,key;
 PORTC=0XFE;
 asm("nop");
 temp=PORTC;
 temp=temp&0xf0;
 if(temp!=0xf0)
  {if(temp==0xe0)
       key=13;
   if(temp==0xd0)
       key=17;
   if(temp==0xb0)
       key=21;
   if(temp==0x70)
       key=25;  
  
  }
 else
   {PORTC=0xfd;
    asm("nop");
    temp=PORTC;
    temp=temp&0xf0;
    if(temp!=0xf0)
     {if(temp==0xe0)
          key=12;
      if(temp==0xd0)
	key=16;
      if(temp==0xb0)
          key=20;
      if(temp==0x70)
	key=24;  
      }
      
    else
    { PORTC=0xfb;
      asm("nop");
      temp=PORTC;
      temp=temp&0xf0;
   
      if(temp!=0xf0)
        {if(temp==0xe0)
	  key=11;
         if(temp==0xd0)
	  key=15;
         if(temp==0xb0)
	  key=19;
         if(temp==0x70)
	  key=23;  
       }
       
      else
       {PORTC=0XF7;
        asm("nop");
        temp=PORTC;
        temp=temp&0xf0;
        if(temp!=0xf0)
         {if(temp==0xe0)
	  key=10;
          if(temp==0xd0)
	  key=14;
          if(temp==0xb0)
	  key=18;
          if(temp==0x70)
	  key=22;  
         }
         
        else
          key=m;	  
	  
	  
   }
	    
	   	  
	  
   }
   }
 	
return key;	
}
initport()
{ADCON1=0x7f;
 PORTA=0X3F;
 TRISC=0xf0;
 TRISD=0x00;
 TRISA=0x00;
 PORTD=0XFF;
 INTCON=0x00;	
}
disp(s)
{char s0,s1;
 s0=s%10;
 s1=s/10;
 PORTD=tab[s0];
 PORTA=0X1F;
 delay();
 PORTD=tab[s1];
 PORTA=0X2F;
 delay();

}
main()
{
 initport();
 while(1)
 {m=keyscan();	 
  disp(m);
  }
}

⌨️ 快捷键说明

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