有時8個按鍵不一定能滿足我們的需要,可能需要更多的按鍵,但是單片機的硬體資源有限,這時就需要使用矩陣按鍵。圖1 所示為矩陣鍵盤接線圖,從電路上可以看出,雖然同樣使用了8個埠,但是我們卻組成了4.4也就是16個按鍵。電路圖中,為了和原來板子的鍵盤介面兼容,我們還是使用了9腳插座,但是實際上使用了8個腳,最後一個接地的腳被懸空不用。 在使用中,我們將8255的PC口分成兩個部分:PC0~PC3為輸出,對應的鍵盤插座的1~4腳為輸出;8255的PC4~PC7為輸入,對應的鍵盤插座的5~8腳為輸入。編製程序的時候首先使鍵盤介面插座的1腳置於低電平,2、3、4為高電平。也就是將8255的PC口的PC0輸出0,PC1、 PC2、PC3輸出為1,這時我們讀PC4的值,如果全部為高,則說明按鍵AN1沒有按下,因為如果按鍵AN1按下,就必然使PC0的低電平傳到PC4腳上。 同樣,我們繼續保持PC0為低電平,再測試PC5腳,如果為低電平,則說明按鍵AN5按下,依次類推,我們通過對PC6、PC7的檢測就可以知道AN9、AN13是不是被按下。 如果我們將PC0置於高電平,PC1口置於高電平,重複上面的檢測,就可以查出AN2、AN6、AN10、AN14是不是按下了,用同樣的方法可以檢測出所有的按鍵的狀態來。 圖1 矩陣鍵盤接線圖
這種方法被稱為巡檢。在單片機中,巡檢是一種極為常見的方法。 |