键盘扫描原理

阅读 / 问答 / 标签

4X4矩阵键盘扫描原理

我来帮你搞定!

非编码键盘扫描原理

嗯,想法很不错..我试着帮你解释下第一个吧..这应该是选用的线扫法(好像这么说的吧).比如说,键盘口为,P1在一开始输出,01111111B,再判断P1口值是否变化..若没变化再换成,10111111B,再判断P1口值是否变化..这样依次到,11101111B,在有变化时就可以得到把描码了..就像是你那个表中所示.的数值就经过这四次都可以得出其中一种....#include<reg51.h>#define uchar unsigned char#define KeyPad P0code uchar key_tab[17]= {0xed,0x7e,0x7d,0x7b, 0xbe,0xbd,0xbb,0xde, 0xdd,0xdb,0x77,0xb7, 0xee,0xd7,0xeb,0xe7,0XFF};code uchar key_show[]={1,2,3,0x0a,4,5,6,0x0b,7,8,9,0x0e,0x0c,0,0x0d,0x0f,0xff};uchar Keyscan(){uchar i=0x01,j,k;KeyPad=~i;j=~i;for (k=0;k<4;k++){ if(KeyPad==j) { i*=2; KeyPad=~i; j=~i; } else k=KeyPad;//取出扫描码.}i=0;if(k!=4){ while(key_tab[i++]!=0xff) { if(k==key_tab[i]) k=i; else k=16; }}return key_show[k];}以上是整个扫描键盘子程序..程序编译通过,不知道实际怎么样..其中未用中断..不过,方法是一样的...明白思想才是最重要的..祝你好运!^_^

单片机行列式键盘扫描原理?

行线与按键的一个引脚相连,列线与按键的另一个引脚相连。平时列线被置成低电平,没有按键被按下时,行线保持高电平,而有按键被按下时,行线被拉成低电平。这时候控制器知道有按键被按下,但只能判断出在哪一行,不能判断出在哪一列,因此接下来就要进行键盘扫描,以确定具体是哪个按键被按下。

单片机行列式键盘扫描原理?

单片机行列式键盘扫描原理如下:1、行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。2、延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。3、单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平。4、此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。扩展资料单片机学习方法1、基础理论知识学习基础理论知识包括模拟电路、数字电路和C语言知识。。在学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。2、单片机实践准备一台电脑、一块单片机开发板、一套视频教程、一本单片机教材和一本C语言教材。电脑是用来编写和编译程序,并将程序代码下载到单片机上;开发板来运行单片机程序,验证实际效果。

单片机行列式键盘扫描原理?

行线与按键的一个引脚相连,列线与按键的另一个引脚相连。平时列线被置成低电平,没有按键被按下时,行线保持高电平,而有按键被按下时,行线被拉成低电平。这时候控制器知道有按键被按下,但只能判断出在哪一行,不能判断出在哪一列,因此接下来就要进行键盘扫描,以确定具体是哪个按键被按下。