11.23 鍵盤檢測之74hc165

對於多個按鍵的檢測,一般多采用矩陣鍵盤來進行檢測,但也會佔用單片機多個IO口。那麼,對於單片機IO端口有限的鍵盤檢測電路該如何解決呢?答案就是74HC165芯片。

鍵盤檢測之74hc165

74HC165是一款高速MOS集成芯片,它的功能主要是並行輸入,串行輸出。在實際鍵盤檢測電路中,單片機只需要三個引腳(連接至緩衝使能腳PL、時鐘腳CLK、串行輸出引腳Q7或者Q\\7\\)便可實現單個74HC165下8個鍵盤的檢測。同時,由於74HC165支持級聯,則通過級聯方式單片機只需要三個引腳便可檢測8個以上的按鍵動作。

鍵盤檢測之74hc165

74HC165腳位配置

鍵盤檢測之74hc165

74HC引腳功能描述

常規電路如下圖:

鍵盤檢測之74hc165

74HC165按鍵檢測電路

由電路圖可知,串口輸出使用的為反相口,因此按鍵未觸發是狀態為低電平,按鍵按下時,輸出狀態為高電平。需要注意的是串行輸出的順序-最先讀出H,最後讀出A。

簡單的寫一下,讀取程序:

 unsigned char KEY_GetVal(void) //返回值為char型,8位
{
unsigned char i;
unsigned char data;
CLK_PIN = 1;
PL_PIN = 0; //HC165讀按鍵
PL_PIN = 1; //暫停HC165讀按鍵
data = 0;
if(1==DATA_PIN)
{
data |= 0x01; //此時DATA_PIN為data的最高位。
}
for(i = 0;i < 7;i++) //需要移位7次,才能讀完
{
CLK_PIN = 0;
CLK_PIN = 1; //時鐘上升沿,HC165移位
data <<= 1; //data左移一位,為新來的數據空出最後一位
if(1==DATA_PIN) //讀入新來的數據到最後一位
{
data |= 0x01;
}
}
CLK_PIN = 0;
return(data); //經過7次循環後,D6,D5,D4,D3,D2,D1,D0被依次讀入data的7個位中

}


分享到:


相關文章: