keyboarprogram.txt

来自「一种实现4*4键盘功能的程序」· 文本 代码 · 共 135 行

TXT
135
字号


#include 
#include 

#define uint unsigned int
#define uchar unsigned char

sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;

uchar code ledcode[]={0x3f,0x06,0x5b,0x4f,
      0x66,0x6d,0x7d,0x07,
      0x7f,0x6f,0x77,0x7c,
      0x39,0x5e,0x7b,0x71,0x00,0x40};
bit key_flag=0;

void delay_10ms();
void keyscan();

void main()
{ 
 IE=0X00;
 
 while(1)
 { 
  keyscan();
 }//while

}//fun


void keyscan(void)
{
 //******************扫第1列************
   P14=0;
   if(P10==0)
   {
  delay_10ms();
    P0=ledcode[1];
  }
   if(P11==0)
   {delay_10ms();
   P0=ledcode[6];
 }

   if(P12==0)
   {delay_10ms();
   P0=ledcode[7];
 }
   if(P13==0)
   {delay_10ms();
   P0=ledcode[16];
 }
   P1=0xff;  
   //**************扫第2列******************
   P15=0;
     if(P10==0)
   {
  delay_10ms();
    P0=ledcode[2];
  }
   if(P11==0)
   {delay_10ms();
   P0=ledcode[5];
 }

   if(P12==0)
   {delay_10ms();
   P0=ledcode[8];
 }
   if(P13==0)
   {delay_10ms();
   P0=ledcode[0];
 }
   P1=0xff;     
   //***************扫第3列*********************
   P16=0;
      if(P10==0)
   {
  delay_10ms();
    P0=ledcode[3];
  }
   if(P11==0)
   {delay_10ms();
   P0=ledcode[4];
 }

   if(P12==0)
   {delay_10ms();
   P0=ledcode[9];
 }
   if(P13==0)
   {delay_10ms();
   P0=ledcode[16];
 }
   P1=0xff;                      
 //***************扫第4列************************
   P17=0;
      if(P10==0)
   {
  delay_10ms();
    P0=ledcode[10];
  }
   if(P11==0)
   {delay_10ms();
   P0=ledcode[11];
 }

   if(P12==0)
   {delay_10ms();
   P0=ledcode[12];
 }
   if(P13==0)
   {delay_10ms();
   P0=ledcode[13];
 }
   P1=0xff;  

}


void delay_10ms(void)
{
 uchar i,j;
 for(i=0;i<100;i++);
  for(j=0;j<80;j++);
}

⌨️ 快捷键说明

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