//Logo Image
作者:蔡宗成(2002-04-25);推薦:徐業良(2002-04-26)

單晶片實習-矩陣鍵盤輸入

單晶片不僅可以輸出數位訊號以控制一些設備,也可接收外部訊號來執行相對應的動作或是輸入資料。一般使用按鈕開關或是Keyboard矩陣鍵盤作為輸入裝置,按鈕開關通常是在輸入訊號較少的情況,矩陣鍵盤則應用在較多的輸入訊號,卻只需要單晶片較少的接腳,是相當方便的輸入設備。本文介紹使用矩陣鍵盤輸入數字0~9,並顯示在七段顯示器上。

1.     矩陣鍵盤硬體簡介

1為常用的矩陣鍵盤外表與其內部電路圖,矩陣鍵盤可說是將多個按鈕開關以矩陣方式串接起來,有4×44×3等規格,此內部電路圖的設計方式可減少單晶片的接腳使用數目,判斷哪一個按鍵按下的方法便是分別送訊號至C1C2C3,並讀取R1R2R3R4。例如當使用者按下數字0時,C2R4會形成通路,按下數字5時,C2R2會形成通路,如此可偵測到按下的按鍵。

1. 矩陣鍵盤外表與內部電路

將矩陣鍵盤的C1~C3R1~R4接腳分別連接至單晶片的PortBCCS軟體提供4×3矩陣鍵盤驅動函數庫,與LCD顯示器控制方法類似,只要引用其函數庫,便可直接偵測矩陣鍵盤輸入訊號。

2. 矩陣鍵盤控制程式

2為矩陣鍵盤程式說明,引用CCS軟體所提供的驅動函數庫“kbd.c”,主程式裡,先定義一個kbin變數,用來存放矩陣鍵盤所按下的數字,kbd_init()為驅動函數庫kbd.c所設計的指令,用於初始化矩陣鍵盤接腳定義與設定;kbd_getc()也是驅動函數庫kbd.c所設計的指令,配合一個while迴圈,用以連續偵測鍵盤有無按下。

2. 矩陣鍵盤控制程式

在「單晶片實習-七段顯示器控制」一文中,介紹如何控制七段顯示器顯示0~9數字,本文則以矩陣鍵盤輸入數字,再由七段顯示器直接顯示,為了使主程式淺顯易讀,建立一七段顯示器副程式如圖3,與原本程式不同的地方是紅色方框內容,在矩陣鍵盤控制程式裡引用“tc_led7.c”驅動函數庫,此驅動函數庫必須放在CCS的搜尋路徑下,便可使用display_7led()指令控制七段顯示器顯示數字,但必須重新定義七段顯示器與單晶片的接腳,因為單晶片的PortB已被矩陣鍵盤所佔用,使用PortC來控制七段顯示器,所以必須更改為output_c()。此種作法可減少程式開發時間,增加模組化功能。

3. 七段顯示器控制副程式