今天学习了一下4*4矩阵键盘,原理:
四行线,四列线,实时进行扫描
先把四列线全部置1,对于行线先对第一行置0(选通),若列线有低电位,则可以确定在哪一列,逐行扫描
这样就同时确定了按在了具体的哪一行哪一列。
uchar code table[]={ //数码管显示0-F的编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};
uint8 code table[]= { //0~F外加小数点和空输出的数码管编码
0x3f , 0x06 , 0x5b , 0x4f , // 0 1 2 3
0x66 , 0x6d , 0x7d , 0x07 , // 4 5 6 7
0x7f , 0x6f , 0x77 , 0x7c , // 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , // C D E F
0x80 , 0x00 ,0x40 // . 空 负号 空时是第0x11号也就是第17号元素
};
四行线,四列线,实时进行扫描
先把四列线全部置1,对于行线先对第一行置0(选通),若列线有低电位,则可以确定在哪一列,逐行扫描
这样就同时确定了按在了具体的哪一行哪一列。
uchar code table[]={ //数码管显示0-F的编码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};
uint8 code table[]= { //0~F外加小数点和空输出的数码管编码
0x3f , 0x06 , 0x5b , 0x4f , // 0 1 2 3
0x66 , 0x6d , 0x7d , 0x07 , // 4 5 6 7
0x7f , 0x6f , 0x77 , 0x7c , // 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , // C D E F
0x80 , 0x00 ,0x40 // . 空 负号 空时是第0x11号也就是第17号元素
};
在线仿真器:仿真芯片SST89E516
动态检测: