矩阵键盘
矩阵键盘用来控制功能的选择
按键的返回值又分为物理键值和逻辑键值,物理键值是按键实际的01代码,而逻辑键值是01代码翻译而来的十进制数。
key.c
#include "myhead.h"
unsigned char key_scan(void)//返回按键的物理键值
{
unsigned char keyvalue;
KEYPORT = 0xf0;
if(0xf0 != KEYPORT)//有按键按下
{
delay_ms(10);
if(0xf0 != KEYPORT)//确实有按键按下
{
KEYPORT = 0xfe;
if(0xfe != KEYPORT)
{
keyvalue = KEYPORT;
keyvalue &= 0xf0;
keyvalue += 0x0e;
while(0xfe != KEYPORT);
//有按键抬起
delay_ms(10);
while(0xfe != KEYPORT);
//确实有按键抬起
return keyvalue;
}
KEYPORT = 0xfd;
if(0xfd != KEYPORT)
{
keyvalue = KE