单片机多按键的更优方式――红外按键
在电路设计中,我们经常会用到按键,而说到按键,我们最常用的按键方式有独立按键和矩阵按键两种,如下图所示: 而之所以有矩阵按键的出现,是因为当用到较多按键时,矩阵按键会占用较少的IO口,或者说占用相同的IO口,对矩阵按键的方式来说,能使用的按键数会更多。如上图所示,假如同样占用单片机的8个IO口作为按键输入脚时,独立按键方式只能用8个按键,而矩阵按键可以用16个按键,翻了一倍。今天所要说的红外按键,要比矩阵按键方式所能使用的按键数更多,同样占用单片机的8个IO口可以使用的按键数为2^8-1=255个,翻了近16倍,这是因为红外按键的可控按键数与IO口的关系是成指数上升的。不仅如此,使用红外按键还有一个好处就是:不用焊硬件电路的按键了,也省去了硬件按键的空间,让PCB板可以做的更精简一些。 以下介绍红外按键的控制原理: 如上图所示,以17键的遥控器来举例,我们按顺序给按键编号,那么数字键1-9刚好与编号相对应,其余编号如遥控器2所示,下来只需要将这17个数字转化为5位2进制数就好,例如:1号按键就是00001再取反得到11110,那么红外输出对应端口为VCC 11110 GND(1:高电平;0:低电平),没有按键按下时输出为VCC 11111 GND(这便是按键数最后要减1的原因,因为没有按键按下也是一种状态),按键的状态表如下: 输出电平中1为高电平,0为低电平;LED显示中0代表灭,1代表亮。其中数码管显示部分可以在程序中自行更改。 红外按键数显测试原理图及PCB如下:
原文件可在附件中下载。 红外按键数显测试实物图如下: 红外按键的优点: 1无线,按键可移动,无需焊接硬件按键,节省主控板空间。 2接收部分为电信号,非机械信号,无消抖亦可。 3更优逻辑方式输入按键信号,可控按键数是按键接口引脚数的指数倍(2^n-1),所以同样的按键数占用的接口引脚较少。 4继承传统的独立按键和矩阵按键方式,接收简洁,无需解码。
|