现在网站上进行的评估开发板测评活动越来越多。当我们拿到评估板做开发测试的时候,有时候会因为评估开发板提供的按键比较少,做某些应用不方便。这个时候,希望简单扩展键盘接口,根据个人经验,我觉得有以下几个方法来实现:
1、自己焊一个键盘板子,每个按键占用一个IO口
这种方式最简单,编程也最容易。多用于IO端口够用场合。
2、焊一块矩阵扫描方式的键盘
这种方式需要专门画一个PCB板,行列交叉形成矩阵。占用的IO端口数为行数加列数。在编程时,要稍微麻烦一些。如果嫌麻烦,也可以从网上购得这样的按键开发板。不是很贵。
3、使用计算机键盘
我一般使用老式PS2接口的键盘,编程时不需要太复杂的协议。只要按照PS2接口的键盘通讯协议,就可以简单实现取得按键的处理。这种方式可以获得相当多的按键,站用的IO接口数也少,只要两个。以下是在51系列单片机中取得键码处理的程序片断。
`// 中断接收键盘数据,低电平触发
// 数据保存在keyval中
void kbinter(void) interrupt 2 {
EX1=0;
if((bitnum>0)&&(bitnum<9)) {
keyval=keyval>>1;
if(PS2DATA==1)
keyval=keyval|0x80;
}
bitnum++;
while(!PS2CLK);
if(bitnum>10) {
bitnum=0;
BF=1;
}
while(PS2CLK==0);
EX1=1;
}`
就是利用按键按下时产生的中断,连续发出Click脉冲,取得案件的键码。使用计算机键盘处理上虽然很简单,但有一个要求,就是必须是能提供5V电压的。如果你的开发板只有3.3V,那就没法使用了。
4、使用TM1638为核心的键盘板
TM1638是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用IC,可以实现键盘扫描以及数码管的驱动、显示,对于需要扩展键盘及增加简单显示的处理,非常方便。以TM1638为核心的键盘板通常需要3个IO端口。它的唯一一个缺点是:它只支持5V电压,不适用于工作电压为3.3的开发板。
5、使用TTP229为核心的键盘板
TTP229 是专为触摸板控制而设计的电容式感应电路。用它制作的触摸式的键盘,手感、灵敏度和寿命,要优于机械式按键。缺点就是容易误触发。这个IC的适用电压范围比较宽,为2.4V~5.5V。也就是说,给5V的开发板没有问题,给3.3V的开发板也没有问题。这也是我最喜欢用的一个键盘板。通讯也只需要占用两个IO口。
以上就是我的个人经验,希望可以帮到你。
|