|
发表于 2024-4-23 10:55:15
|
显示全部楼层
本帖最后由 梁工 于 2024-4-23 10:57 编辑
这个程序是我首先于2015年第一代学习板(IAP15W4K61S4)发布的程序。
其对应关系很简单(楼主的行列IO要换换一下,当时没留意改了):
u8 code T_KeyTable[16] = {0,1,2,0,3,0,0,0,4,0,0,0,0,0,0,0};
Y P00 P01 P02 P03
| | | |
X | | | |
P04 ---- K00 ---- K01 ---- K02 ---- K03 ----
| | | |
P05 ---- K04 ---- K05 ---- K06 ---- K07 ----
| | | |
P06 ---- K08 ---- K09 ---- K10 ---- K11 ----
| | | |
P07 ---- K12 ---- K13 ---- K14 ---- K15 ----
| | | |
P0=0xf0, 读入高4位, P0=0x0f,读入低4位,然后取反IO_KeyState变成正逻辑,即有按键对应的位为1,查表读数就是4个IO对应1~4。
如果有键按下,则高4位和低4位均有一位为1,比如按下K14,则读到 1000 0100,高4位查表得到4,低4位查表得到3,则键码=(4-1)*4+3=15,即K00~K15对应键码1~16。
|
|