// 普通按键,行4*(列3+地1)
// 1.ROW行线设置为输入上拉(下降沿中断),COL列线输出低+地;
// 2.ROW行线产生中断,则说明有按键按下,启动定时器20ms做去抖动处理;
// 3.定时器中检测对应的ROW行线输入电平,如果仍为低则认为有效按下,否则认为抖动;
// 4.COL列线设置为输入上拉,ROW行线输出低;
// 5.检测COL列线是否被拉低,如果有任意列线为低,则确定按下按键为对应的列;
// 6.如果三个列线都没有被拉低,则确定按下按键为地列线;
// 普通按键,行4*(列3+地1)
// 1.ROW行线设置为输入上拉(下降沿中断),COL列线输出低+地;
// 2.ROW行线产生中断,则说明有按键按下,启动定时器20ms做去抖动处理;
// 3.定时器中检测对应的ROW行线输入电平,如果仍为低则认为有效按下,否则认为抖动;
// 4.COL列线设置为输入上拉,ROW行线输出低;
// 5.检测COL列线是否被拉低,如果有任意列线为低,则确定按下按键为对应的列;
// 6.如果三个列线都没有被拉低,则确定按下按键为地列线;