一種新型三端輕觸開關(guān)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及到一種電路輕觸開關(guān),用這種輕觸開關(guān)構(gòu)成的矩陣鍵盤的檢測變得非常簡單,另外,單片機(jī)只需要通過一個中斷源和若干個普通1 口與矩陣鍵盤相連就可以以中斷的方式完成矩陣鍵盤檢測。
【背景技術(shù)】
[0002]鍵盤是微型計算機(jī)系統(tǒng)最基本最常見的輸入設(shè)備,一般鍵盤由多個輕觸開關(guān)構(gòu)成。根據(jù)輕觸開關(guān)的排列方式,鍵盤可以分為線性鍵盤和矩陣鍵盤。在按鍵多的場合,我們常采用矩陣鍵盤,矩陣鍵盤將輕觸開關(guān)排成η行m列,每個按鍵占據(jù)行列的一個交點(diǎn),這樣需要連線的數(shù)目就是n+m,這樣便可檢測n*m個輕觸開關(guān)。而傳統(tǒng)的輕觸開關(guān)為兩端式,當(dāng)我們摁住開關(guān)時,這兩端導(dǎo)通,自然狀態(tài)下兩端為開路,不導(dǎo)通。這種兩端輕觸開關(guān)構(gòu)成的矩陣鍵盤的譯鍵方法常有行掃描法和線反轉(zhuǎn)法,以行掃描法來說,行掃描法需要依次置低矩陣鍵盤行線上的電平,再讀取端口的值以得到被按下按鍵的編碼,這種檢測方法在程序上較為繁瑣,不夠簡單,需要經(jīng)過幾個步驟才能識別出被按下的輕觸開關(guān)。另外,這些方法需要處理器以查詢的方式對按鍵掃描檢測,這就要求處理器不斷讀取1的電平狀態(tài),這種按鍵檢測的方式在實時系統(tǒng)中往往是不適宜的,而且以查詢的工作方式檢測按鍵就導(dǎo)致(PU無法工作在低功耗模式,會提高整個系統(tǒng)的功耗。如果要用中斷的方式檢測矩陣鍵盤,則需要將行(列)線連接到具有中斷能力的1 口,而對于某些低端的處理器外部中斷資源是很少的,無法提供足夠的具有中斷能力的1 口。由傳統(tǒng)兩端輕觸開關(guān)構(gòu)成的矩陣鍵盤有這兩大缺點(diǎn):檢測不夠簡單和無法工作以中斷的工作方式完成檢測。而這兩大缺點(diǎn)是由傳統(tǒng)兩端輕觸開關(guān)的特性所決定的,為了解決克服這些缺點(diǎn),本發(fā)明從輕觸開關(guān)的結(jié)構(gòu)上提出了一種新的思路。
【發(fā)明內(nèi)容】
[0003]為了簡化矩陣鍵盤的檢測,并使單片機(jī)只需要通過一個中斷源和若干個普通1口與矩陣鍵盤相連就可以以中斷的方式完成矩陣鍵盤檢測。
[0004]本發(fā)明采用的技術(shù)方案是:一種新型三端輕觸開關(guān),其特征是:由三個接觸端構(gòu)成,自然狀態(tài)下,這三個端兩兩開路,摁住開關(guān)時,這三個端兩兩短路。
[0005]鍵盤連接方式:三端輕觸開關(guān)的三個端是相同的,為便于表述,將三端輕觸開關(guān)的三個端分別編號為0、1、2,對于m*n個輕觸開關(guān),將其排列成m行η列,每一行η個三端輕觸開關(guān)的I端由行線相連,各行分別記為R0W_l~R0W_m,每一列的m個三端輕觸開關(guān)的O端由列線相連,各列分別記為LINE_l~LINE_n,所有m*n個輕觸開關(guān)的2端連接到一起記為COM端,所有三端輕觸開關(guān)構(gòu)成了 m行η列的矩陣鍵盤。
[0006]查詢工作方式:行線R0W_l~R0W_m分別與單片機(jī)1 口相連相連,列線LINE_l~LINE_n分別與單片機(jī)1 口相連,COM端接地;單片機(jī)通過讀取矩陣鍵盤相連的1口的值得到行線和列線上的電平狀態(tài),每一個按鍵被按下都對應(yīng)唯一的行線和列線上的一個電平狀態(tài),所以就可以通過單片機(jī)讀取行線和列線上的電平狀態(tài)來識別出被按下的按鍵,這就實現(xiàn)了單片機(jī)以查詢的工作方式檢測整個矩陣鍵盤。
[0007]中斷工作方式1:行線ROW_l~ROW_m分別與單片機(jī)1 口相連相連,列線LINE_l~LINE_n分別與單片機(jī)1 口相連,將COM端接到單片機(jī)的外部中斷引腳,接下來以中斷的方式檢測整個矩陣鍵盤,將外部中斷設(shè)置為下降沿觸發(fā),與行線列線相連的1 口設(shè)置為推挽輸出模式并全部輸出低電平,這樣,只要有任意一個按鍵被按下,COM端電平便會被拉低,中斷觸發(fā),進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中,首先將中斷引腳設(shè)置為輸出模式并輸出低電平,再將與行線列線相連的1 口設(shè)置為上拉輸入模式,單片機(jī)再讀取行線列線的值,通過讀取行線列線的電平狀態(tài)便可以識別出被按下的按鍵,等待按鍵釋放,識別完成后再將外部中斷設(shè)置為下降沿觸發(fā),與行線列線相連的1 口設(shè)置為推挽輸出模式并全部輸出低電平,單片機(jī)繼續(xù)等待中斷的來臨,這就實現(xiàn)了單片機(jī)以中斷的工作方式檢測整個矩陣鍵盤。
[0008]中斷工作方式2:行線R0W_l~R0W_m分別與單片機(jī)1 口相連相連,列線LINE_l~LINE_n分別與單片機(jī)1 口相連,每根行線和每根列線都分別連接一個電阻,所有電阻的另一端連接到高電平;所有行線或者所有列線或者所有行線和列線連接到一個與門電路的輸入端,與門電路的輸出端連接到單片機(jī)的外部中斷引腳,將外部中斷設(shè)置為下降沿觸發(fā)^fCOM端接到低電平;任意一個按鍵被按下,其中一根行線和一根列線的電平被拉低,與門電路輸出端輸出一個低電平,中斷觸發(fā),進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中,利用中斷服務(wù)程序讀取輸入的鍵的位置。
[0009]本發(fā)明的有益效果是:這種結(jié)構(gòu)的輕觸開關(guān)構(gòu)成的矩陣鍵盤的檢測變得和線性鍵盤一樣簡單,并單片機(jī)只需要通過一個中斷源和若干個普通1 口與矩陣鍵盤相連就可以以中斷的方式完成矩陣鍵盤檢測。用中斷的方式檢測矩陣鍵盤不僅提高了整個單片機(jī)系統(tǒng)的實時性,提高了效率,還允許系統(tǒng)在休眠模式下工作,有按鍵按下時才觸發(fā)中斷喚醒CPU,這樣做也降低了系統(tǒng)的功耗,節(jié)約能源,同時能夠鍵盤的使用壽命。
【附圖說明】
[0010]原理圖1是三端輕觸開關(guān)的基本結(jié)構(gòu),有0,1,2三個端,每個端引出引腳;
原理圖2給出了一種由傳統(tǒng)兩端輕觸開關(guān)構(gòu)成的4*4矩陣鍵盤的連接方法;
原理圖3給出了一種由新型三端輕觸開關(guān)構(gòu)成的4*4矩陣鍵盤以查詢方式工作的連接方法;
原理圖4給出了一種由新型三端輕觸開關(guān)構(gòu)成的4*4矩陣鍵盤以中斷方式工作的連接方法。
【具體實施方式】
[0011]原理圖2給出了一種由傳統(tǒng)兩端輕觸開關(guān)構(gòu)成的4*4矩陣鍵盤的連接方法和實現(xiàn)鍵盤檢測的方法,根據(jù)原理圖2,行線R0W_1~R0W_4分別與單片機(jī)ΡΓ0~ΡΓ3 (表示Pl端口的0~3位,有的教材或者編程語言表示為P1.0-Ρ1.3,本處的表示方法也是常見的標(biāo)示符號之一,下同;同時,在單片機(jī)中有的端口是雙向口,或者稱為準(zhǔn)雙向口,即能夠輸出信息、也能輸入信息,此處的Pl具有雙向口功能)相連并將ΡΓ0~ΡΓ3設(shè)置為推挽輸出模式,列線LINE_1~LINE_4分別與單片機(jī)ΡΓ4~Ρ1~7相連并將ΡΓ4~Ρ1~7設(shè)置為上拉輸入模式(懸空時引腳為高電平),采用行掃描法檢測矩陣鍵盤,依次將ΡΓ0~ΡΓ3單獨(dú)置為低電平,每設(shè)置一次低電平、都要讀取ΡΓ4~ΡΓ7檢測各列線的狀態(tài),來判斷是哪個按鍵按下(由于單片機(jī)的掃描速度遠(yuǎn)遠(yuǎn)快于人的輸入速度,現(xiàn)在單片機(jī)的頻率能夠達(dá)到300MHz,假定掃描需要100個周期,大約在微秒數(shù)量級,而人的輸入速度在0.1秒的數(shù)量級,因此,相對于人的輸入速度,掃描所需的時間能夠忽略)。具體實現(xiàn)方案:首先將ΡΓ0輸出低電平,其余三條行線(ΡΓ1、ΡΓ2、ΡΓ3)置為高電平,此時可以檢測第一行按鍵的狀態(tài),若keyl被按下則LINE_4線電平被拉低,其余列線為高電平,若key2被按下則LINE_3線電平被拉低,其余列線為高電平,依此類推key3、key4,這樣通過讀取列線的電平的狀態(tài)就可以得到第一行按鍵的狀態(tài)。接著檢測第二行的按鍵,將ΡΓ1輸出低電平,其余三條行線(ΡΓΟ、ΡΓ2、ΡΓ3)置為高電平,此時可以檢測第二行按鍵的狀態(tài),若key5被按下則LINE_4線電平被拉低,其余列線為高電平,若key6被按下