就是扫描,两边都是IO口,拿4X4键盘来说,一排是行4个IO一排列4个IO,用程序一直扫面这个行选项或则列选项,列选项IO直接发送高电平
其实有两种
1. 单片机直接对矩阵编码来识别
2. 矩阵自己编码,单片机读取
1实现对单片机来说已经是一个比较大的工程了,
2则和读取一个GPIO没有太大的区别。
设想一下:首先是一个1x4的键盘,很简单,行输出一个1,看4个列上有谁变为1了,那就可以定位到哪一列上的按键被按下了。拓展开去,现在变成了2行:2x4矩阵,先给第一行上电,情况和1x4一样,接下来第二行上电,此时第一行掉电,还是和1x4一样的情况了。
矩阵键盘在同一时刻只有一行上电,通过检测哪一列按下,可以定位出某一个按键,以此实现功能。
具体的说就是扫描
先扫描行,得到一个坐标
再扫描列,得到另一个坐标
两个一起确定按键值
比如4*4
当按键一次时,每一行和每一列都只有一个IO是相通的,其他的IO都是互不相通的
那么当我依次给行1到4赋值,那么只要我在列中得到了那个赋值,就说明我按键列,并且能在矩阵中确定唯一的一个按键