📄 key.c
字号:
//-----------------------------------------------------------------
// 包含文件区
//-----------------------------------------------------------------
#include "2410addr.h"
//-----------------------------------------------------------------
// 函数定义区
//-----------------------------------------------------------------
/*****************************************************************
* 函数名 : Key_Test
* 功能 : 实现键盘扫描
******************************************************************/
void Key_Test(void)
{
int i,j;
Uart_Printf("\n\nPRESS ANY KEY ON ECPEND BOARD\n");
rGPFCON=rGPFCON&0x3f03;//pf1237=input
rGPBCON=rGPBCON|0x154000;
rGPBCON=rGPBCON&0x157fff;//pb789/10=output
while(1)
{
rGPBDAT=rGPBDAT&0x7f;//output=0
if(~(rGPFDAT|0xffffff71))
{{
switch(~(rGPFDAT|0xffffff71))
{
case 0x2 :{i=1;break;}
case 0x4 :{i=2;break;}
case 0x8 :{i=3;break;}
case 0x80:{i=4;break;}
}
}
rGPBDAT=rGPBDAT|0x80;
rGPBDAT=rGPBDAT&0x6ff;
rGPBDAT=rGPBDAT&0x5ff;
rGPBDAT=rGPBDAT&0x3ff;//pf10 9 8 7=0001
if(!(~(rGPFDAT|0xffffff71))){j=1;}
else
{ rGPBDAT=rGPBDAT&0x77f;
rGPBDAT=rGPBDAT|0x100;
rGPBDAT=rGPBDAT&0x5ff;
rGPBDAT=rGPBDAT&0x3ff;//pf10 9 8 7=0010
if(!(~(rGPFDAT|0xffffff71))){j=2;}
else
{rGPBDAT=rGPBDAT&0x77f;
rGPBDAT=rGPBDAT&0x6ff;
rGPBDAT=rGPBDAT|0x200;
rGPBDAT=rGPBDAT&0x3ff;//pf10 9 8 7=0100
if(!(~(rGPFDAT|0xffffff71))){j=3;}
else
{j=4;
rGPBDAT=rGPBDAT&0x77f;
rGPBDAT=rGPBDAT&0x6ff;
rGPBDAT=rGPBDAT&0x5ff;
rGPBDAT=rGPBDAT|0x400;//pf10 9 8 7=1000
}
}
}
Uart_Printf("THE KEY YOU PUSH IS %d row 第%d column\n",i,j);}
Delay(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -