关于单片机蓝桥杯——按键与矩阵按键
2018-03-13 19:51
381 查看
蓝桥杯的独立按键包含在矩阵按键里,由按键右侧的跳线帽决定。
这是按键的原理图,一开始我以为是一个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从逻辑上将挺蠢得,但是方便理解也不需要去算,毕竟蓝桥杯是限时的比赛,能越快做出来越好。
这是按键的原理图,一开始我以为是一个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从逻辑上将挺蠢得,但是方便理解也不需要去算,毕竟蓝桥杯是限时的比赛,能越快做出来越好。
相关文章推荐
- 【蓝桥杯单片机组】| DS1302(官方驱动)+ 矩阵按键 + 数码管(改,解决数码管跳动的问题)
- 蓝桥杯单片机独立按键和矩阵按键
- 蓝桥杯——矩阵按键行列扫描
- 关于单片机蓝桥杯——ds1302
- 关于单片机蓝桥杯——EEPROM
- 关于蓝桥杯STC15单片机的18B20程序
- 关于单片机蓝桥杯
- 关于CT107D开发板矩阵按键前两列不工作问题的研究
- 单片机(四)__矩阵按键
- 【C51】单片机独立按键与矩阵按键
- 关于单片机按键问题总结
- 【C51】单片机独立按键与矩阵按键
- 8.7 单片机矩阵按键的扫描
- 关于独立按键与矩阵按键的程序(51单片机)
- 关于单片机按键问题总结
- 关于单片机按键问题总结
- 关于矩阵按键
- 51单片机编程_矩阵按键控制_0x04
- 蓝桥杯_算法训练_矩阵乘法
- 关于斐波那契数列的一点规律 --14年蓝桥杯试题