按照通信協議,用一個字節來表示8個按鍵的狀態,第一個按鍵按下則用0x01表示,第二個按鍵按下則用0x02表示,以此類推,一位代表一個按鍵狀態。
但爲了便於電路板Layout走線,8位並行輸入的高低位顛倒,如下圖。
爲了符合協議,在程序中對字節做了倒序處理,即將0xabcdefgh轉換爲0xhgfedcba,代碼實現如下:
uint8_t byte_change(uint8_t data)
{
uint8_t i = 0;
uint8_t temp = 0;
for (i = 0; i < 8; i ++)
{
temp = temp << 1;
temp |= (data >> i) & 0x01;
}
return temp;
}