| P0高四位没加上拉电阻,不能输出0xf0 |
| 你这个程序不对,仔细检查一下吧 |
| 程序逻辑清晰,应该是“线与”功能出问题。你在列扫描时加个default 并+值,看一下是否一直是进default 。 |
| 不应该直接返回你要的值, 推荐是由扫描码返回目标码. |
|
你读到的按键或显示的按键值不对; 这个要看程序。有程序,一定会有人帮你的。 |
|
| 第三列最后一行13应为12 |
| 你看哈 void display(void) { char a=0; PGIO_KEY=0X0F; if(PGIO_KEY!=0x0f) {delay(1000); if(PGIO_KEY!=0x0f) { PGIO_KEY=0X0F; switch(PGIO_KEY) { case(0x07): Keyvalue=0;break; case(0x0b): Keyvalue=1;break; case(0x0d): Keyvalue=2;break; case(0x0e): Keyvalue=3;break; } PGIO_KEY=0xf0; switch(PGIO_KEY) { case(0x70): Keyvalue=Keyvalue;break; case(0xb0): Keyvalue=Keyvalue+4;break; case(0xd0): Keyvalue=Keyvalue+8;break; case(0xe0): Keyvalue=Keyvalue+12;break; } while((a<50)&&(PGIO_KEY!=0xF0)) delay(1000); a++; } } } |
|
例如:电脑用的键盘,它有100多个键,拆开看一下,它的连线总是电适合硬件位置的走线方便。 其实对于“A"这个键,不同的厂家它的硬件键值会因走线不同而不同,但键盘上的CPU会把它翻译成“A”的ASCII码送出去,这样无论是哪个厂家的键,就都可以通用了。 |
|
对于计算机来说,1也罢、2也罢、它都一样处理。何必介意键值是多少呢?随便是什么都可以。 要点是:对于你的硬件布置方便,排好后可以以序给键命名。程序要做的事:将你对键的命名与键值做个关联! |