蓝桥杯的独立按键包含在矩阵按键里,由按键右侧的跳线帽决定。
这是按键的原理图,一开始我以为是一个3*4的矩阵按键和四个独立按键,其实并不是这样,s4~s7这四个独立按键也是矩阵按键的一部分,它是一个4*4的矩阵。
对于这个矩阵按键,我们需要注意:
1.原理图中标注的P3^6,P3^7口实际接的是P4^4,P4^2;
2.如果我们用的是<reg52.h>这个头文件,我们要注意,52是没有P4口的,因此我们要自己定义P4口:
sfr P4=0xc0;
然后,对于这个矩阵按键,有一种看起来很蠢但是很好理解的方法,就是把它当做独立按键来用。
我们可以先将i/o定义好;
sbit R1=P3^0; sbit R2=P3^1; sbit R3=P3^2; sbit R4=P3^3; sbit C1=P4^4; sbit C2=P4^2; sbit C3=P3^5;
sbit C4=P3^4;
然后把R1置0,R2,R3,R4,C1,C2,C3, C4 置1;这样,我们就把第一排的4个按键当成了4个独立按键,当第一排的按键被按下时,对应的C1,C2, C3, C4将会置低。
R1=0; R2=R3=R4=1; C1=C2=C3=C4=1; if(C1==0) { while(C1==0); n=0; } if(C2==0) { while(C2==0); n=1; } if(C3==0) { while(C3==0); n=2; } if(C4==0) { while(C4==0); n=3;
}
其余3排复制稍加修改就好了。虽然emmmmm从逻辑上将挺蠢得,但是方便理解也不需要去算,毕竟蓝桥杯是限时的比赛,能越快做出来越好。
|