51单片机 矩阵

发布于:2025-03-10 ⋅ 阅读:(17) ⋅ 点赞:(0)

unsigned char key()
{
    unsigned char keyNum;
    P1=0xFF;
    P1_7=0;
    if(P1_3==0){Delay(20);while(P1_3==0);Delay(20);keyNum=1;}
    if(P1_2==0){Delay(20);while(P1_2==0);Delay(20);keyNum=2;}
    if(P1_1==0){Delay(20);while(P1_1==0);Delay(20);keyNum=3;}
    if(P1_0==0){Delay(20);while(P1_0==0);Delay(20);keyNum=4;}
    
    P1_6=0;
    if(P1_3==0){Delay(20);while(P1_3==0);Delay(20);keyNum=5;}
    if(P1_2==0){Delay(20);while(P1_2==0);Delay(20);keyNum=6;}
    if(P1_1==0){Delay(20);while(P1_1==0);Delay(20);keyNum=7;}
    if(P1_0==0){Delay(20);while(P1_0==0);Delay(20);keyNum=8;}
        
    P1_5=0;
    if(P1_3==0){Delay(20);while(P1_3==0);Delay(20);keyNum=9;}
    if(P1_2==0){Delay(20);while(P1_2==0);Delay(20);keyNum=10;}
    if(P1_1==0){Delay(20);while(P1_1==0);Delay(20);keyNum=11;}
    if(P1_0==0){Delay(20);while(P1_0==0);Delay(20);keyNum=12;}
        
    P1_4=0;
    if(P1_3==0){Delay(20);while(P1_3==0);Delay(20);keyNum=13;}
    if(P1_2==0){Delay(20);while(P1_2==0);Delay(20);keyNum=14;}
    if(P1_1==0){Delay(20);while(P1_1==0);Delay(20);keyNum=15;}
    if(P1_0==0){Delay(20);while(P1_0==0);Delay(20);keyNum=16;}
        
    return keyNum;
}