嵌入式三級中的一個題目,麻煩大神看下?
“ 輸入密碼的鍵盤采用非標準鍵盤鍵盤接口設計成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;
}
”若第三行第二列的鍵被按下,則返回值是多少? |
|