提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、什么是矩阵键盘?
- 1.独立键盘
- 2.矩阵键盘
- 变化1
- 变化2
- 变化3
- 3. 通过变型,举一反三,就可以实现4*4的矩阵键盘扫描
- 二、使用步骤
- 2.读入数据
- 总结
前言
学了了独立键盘之后,发现使用一个按键就要浪费一个GPIO,有没有一种节约GPIO的方法,比如要用16个键盘,怎么样才能节省IO口
一、什么是矩阵键盘?
1.独立键盘
sbit key0= P1^0; //
if(key0==0)
{
delay(20);//按键消抖
if(key0==0)
{
led0=1; 亮
}
}
独立键盘,接一个按键,就会浪费一个IO口
独立键盘的程序非常好写,就在上面程序的基础上,添加引脚和判断
sbit key0= P1^0; //
sbit key1= P1^1; //
if(key0==0)
{
delay(20);//按键消抖
if(key0==0)
{
led0=1; 亮
}
}
if(key1==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮
}
}
2.矩阵键盘
就是由独立键盘组成的?
变化1
变化2
sbit key0= P1^0; //
sbit key1= P1^1; //
sbit key2= P1^2; //
sbit key3= P1^3; //
sbit lie0=P1^4;
while(1)
{
lie0=0;
if(key0==0)
{
delay(20);//按键消抖
if(key0==0)
{
led0=1; 亮
}
}
if(key1==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮
}
}
if(key0==0)
{
delay(20);//按键消抖
if(key2==0)
{
led0=1; 亮
}
}
if(key3==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮
}
}
}
变化3
sbit key0= P1^0; //
sbit key1= P1^1; //
sbit key2= P1^2; //
sbit key3= P1^3; //
sbit lie0=P1^4;
sbit lie1=P1^5;
while(1)
{
lie0=0;lie1=1;// 判断第一列
if(key0==0)
{
delay(20);//按键消抖
if(key0==0)
{
led0=1; 亮 //按键0
}
}
if(key1==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮1
}
}
if(key0==0)
{
delay(20);//按键消抖
if(key2==0)
{
led0=1; 亮2
}
}
if(key3==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮3
}
}
}
lie0=1;lie1=0;// 判断第一列
if(key0==0)
{
delay(20);//按键消抖
if(key0==0)
{
led0=1; 亮4
}
}
if(key1==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮5
}
}
if(key0==0)
{
delay(20);//按键消抖
if(key2==0)
{
led0=1; 亮6
}
}
if(key3==0)
{
delay(20);//按键消抖
if(key1==0)
{
led1=1; 亮7
}
}
}
3. 通过变型,举一反三,就可以实现4*4的矩阵键盘扫描
二、使用步骤
2.读入数据
总结
从独立键盘到矩阵键盘,由浅入深