嵌入式三级中的一个题目,麻烦大神看下?
“ 输入密码的键盘采用非标准键盘键盘接口设计成4x3的阵列,若设计师选用了GPE0~GPE3来输出键盘行扫描信号,选用GPD0~GPD2来输入键盘列信号,请补充完善下面的键盘扫描函数:
#define KEYOUTPUT(*(volatile INT8U *)0x56000044)//定义GPE数据端口
#define KEYIUTPUT(*(volatile INT8U *)0x56000034)//定义GPD数据端口
INT16U ScanKey()
{
INT16U key=0xFFFF;
INT6U i;
INT8 temp=0xFF,output;
rGPDCON=rGPDCON&0xFFFFFFC0;
rGPECON=(rGPECON&0xFFFFFF00)|0x00000055;
for(i=1;((i<=8&&(i>0));i<<=1))
{
output|=0xFF;
output&=(~i);
KEYOUTPUT=output;
temp=KEYIUTPUT;
if((temp&0x07)!=0x07);
{
key=(~i);
key<<=8;
key|=((temp&0x07)|0xF8);
return(key);
}
}
return 0xFFFF;
}
”若第三行第二列的键被按下,则返回值是多少? |
|