关于单片机蓝桥杯——按键与矩阵按键

    蓝桥杯的独立按键包含在矩阵按键里,由按键右侧的跳线帽决定。关于单片机蓝桥杯——按键与矩阵按键_第1张图片

            这是按键的原理图,一开始我以为是一个3*4的矩阵按键和四个独立按键,其实并不是这样,s4~s7这四个独立按键也是矩阵按键的一部分,它是一个4*4的矩阵。

            对于这个矩阵按键,我们需要注意:

1.原理图中标注的P3^6,P3^7口实际接的是P4^4,P4^2;

2.如果我们用的是这个头文件,我们要注意,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从逻辑上将挺蠢得,但是方便理解也不需要去算,毕竟蓝桥杯是限时的比赛,能越快做出来越好。

   


你可能感兴趣的:(蓝桥杯)