按鍵輸入課件_第1頁
按鍵輸入課件_第2頁
按鍵輸入課件_第3頁
按鍵輸入課件_第4頁
按鍵輸入課件_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、主講人:施保華AVR單片機C語言程序設(shè)計三峽大學電子設(shè)計及創(chuàng)新實驗室(32學時)第1頁,共30頁。在單片機嵌入式系統(tǒng)中,按鍵和鍵盤是一個基本和常用的接口,它是構(gòu)成人機對話通道的一種常用的方式。按鍵和鍵盤能實現(xiàn)向嵌入式系統(tǒng)輸入數(shù)據(jù)、傳輸命令等功能,是人工干預(yù)、設(shè)置和控制系統(tǒng)運行的主要手段。我們先討論簡單的單個按鍵的輸入。2第2頁,共30頁。3第3頁,共30頁。圖9-2 是簡單按鍵輸入接口硬件連接電路圖,圖中單片機的三個I/O 口PC7、PC6、PC5作為輸入口(輸入方式),分別與K3、K2、K1 三個按鍵連接。其中K2 是標準的連接方式,當沒有按下K2 時,PC6 的輸入為高電平,按下K2 輸入

2、為低電平。PC6 引腳上的電平值反映了按鍵的狀態(tài)。按鍵K1 是一種經(jīng)濟的接法,它充分利用了AVR 單片機I/O 口的內(nèi)部上拉特點。在K1的連接中,除了把PC5 定義為輸入方式時(DDRC.5=0),同時設(shè)置PC5 口的上拉電阻有效(PORTC.5=1),這樣當K1 處在斷開狀態(tài)時,PC5 引腳在內(nèi)部上拉電阻的作用下為穩(wěn)定的高電平(如果上拉電阻無效,則PC5 處在高阻輸入態(tài),PC5 的輸入易受到干擾,不穩(wěn)定),按下K1 輸入為低電平4第4頁,共30頁。與K2 連接方式比較,K1 連接電路中省掉了一個外部上拉電阻,而在K2的連接方法中,由于外部使用了上拉電阻,所以只要設(shè)置PC6 口為輸入方式即可,

3、該口內(nèi)部的上拉電阻有效與否則不必考慮了。而對于K3 的連接方式,我們不提倡使用,因當K3 按下閉合時,PC7 口直接與Vcc 接通了,有可能會造成大的短路電流流過PC7 引腳,從而把端口燒毀。因此電阻R2 不僅起到上拉的作用,還有限流的作用,通常在5K-50K 之間。5第5頁,共30頁。根據(jù)按鍵連接電路可知,按鍵狀態(tài)的確認就是判別按鍵是否閉合,反映在輸入口的電平就是和按鍵相連的I/O 引腳呈現(xiàn)出高電平或低電平。如果輸入高電平表示斷開的話,那么低電平則表示按鍵閉合,所以簡單的講,在程序中通過檢測引腳電平的高低,便可確認按鍵是否按下。但對于實際的按鍵確認并不是象上面描述的那么簡單。首先要考慮的是按

4、鍵消抖的問題。通常,按鍵的開關(guān)為機械彈性觸點開關(guān),它是利用機械觸點接觸和分離實現(xiàn)電路的通、斷。6第6頁,共30頁。由于機械觸點的彈性作用,加上人們按鍵時的力度、方向的不同,按鍵開關(guān)從按下到接觸穩(wěn)定要經(jīng)過數(shù)毫秒的彈跳抖動,既在按下的幾十毫秒時間里會連續(xù)產(chǎn)生多個脈沖。釋放按鍵時,電路也不會一下斷開,同樣會產(chǎn)生抖動(圖9-3)。這兩次抖動的時間分別為10-20ms 左右,而按鍵的穩(wěn)定閉合期通常大于0.3-0.5 秒。因此,為了確保MCU 對一次按鍵動作只確認一次,在確認按鍵是否閉合時,必須要進行消抖處理。否則,由于MCU 軟件執(zhí)行的速度很快,非??赡軐⒍秳赢a(chǎn)生的多個脈沖誤認為多次的按鍵。7第7頁,共

5、30頁。消除按鍵的抖動既可采用硬件方法,也可采用軟件的方法。使用硬件消抖的方式,需要在按鍵連接的硬件設(shè)計上增加硬件消抖電路,如采用R-S 觸發(fā)器或RC 積分電路等。采用硬件消抖方式增加了系統(tǒng)的成本,而利用軟件方式消抖則是比較經(jīng)濟的做法,但增加了軟件設(shè)計的復(fù)雜性。軟件方式消抖的基本原理是在軟件中對按鍵進行兩次測試確認,既在第一次檢測到按鍵按下后,間隔15ms 左右再次檢測該按鍵是否按下,只有在兩次都測到按鍵按下時才最終確認有鍵按下,從而消除了抖動的影響8第8頁,共30頁。在按鍵接口軟件中,除了要考慮按鍵消抖外,一般還要判別按鍵的釋放,只有檢測到按鍵釋放以后,才能確定為一次完整的按鍵動作完成。,在

6、程序中一旦檢測到按鍵輸入口為低電平時(圖9-2),便采用(調(diào)用)軟件延時程序延時15ms。然后再次檢測按鍵輸入口,如果還是低電平則表示按鍵按下,轉(zhuǎn)入執(zhí)行按鍵處理程序。如果第二次檢測按鍵輸入口為高電平,則放棄本次按鍵的檢測,從頭開始一次新的按鍵檢測過程。9第9頁,共30頁。10.2 鍵盤接口原理1. 鍵盤輸入的特點鍵盤:一組按鍵開關(guān)的集合。 行線電壓信號通過鍵盤開關(guān)機械觸點的斷開、閉合,輸出波形如圖10-6。10第10頁,共30頁。2. 按鍵的確認 檢測行線電平 高電平:斷開;低電平:閉合,常用軟件來消除按鍵抖動。 基本思想:檢測到有鍵按下,鍵對應(yīng)的行線為低,軟件延時10ms后,行線如仍為低,則

7、確認該行有鍵按下。3.如何消除按鍵的抖動 當鍵松開時,行線變高,軟件延時10ms后,行線仍為高,說明按鍵已松開。采取以上措施,躲開了兩個抖動期t1和t3的影響。11第11頁,共30頁。10.2.2 鍵盤接口的工作原理獨立式按鍵接口和行列式鍵盤接口。1.獨立式鍵盤接口 各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可很容易判斷那個鍵被按下。此種接口適于鍵數(shù)較少或操作速度較高的場合。圖10-7(a)為中斷方式的獨立式鍵盤工作電路圖10-7(b)為查詢方式的獨立式鍵盤工作電路。12第12頁,共30頁。13第13頁,共30頁。2. 行列式(矩陣式)鍵盤接口 用于按鍵數(shù)目較多的場合,由行

8、線和列線組成,按鍵位于行、列的交叉點上。如圖10-10所示。 按鍵數(shù)目較多的場合,行列式鍵盤與獨立式鍵盤相比,要節(jié)省很多的I/O口線。14第14頁,共30頁。(1)行列式鍵盤工作原理 無鍵按下,該行線為高電平,當有鍵按下時,行線電平由列線的電平來決定。 由于行、列線為多鍵共用,各按鍵彼此將相互發(fā)生影響,必須將行、列線信號配合起來并作適當?shù)奶幚?,才能確定閉合鍵的位置。(2)按鍵的識別方法a. 掃描法 圖10-10(b)中3號鍵被按下為例,來說明此鍵時如何被識別出來的。15第15頁,共30頁。識別鍵盤有無鍵被按下的方法,分兩步進行:第1步:識別鍵盤有無鍵按下;第2步:如有鍵被按下,識別出具體的按鍵

9、。 把所有列線置0,檢查各行線電平是否有變化,如有變化,說明有鍵按下,如無變化,則無鍵按下。 上述方法稱為掃描法,即先把某一列置低電平,其余各列為高電平,檢查各行線電平的變化,如果某行線電平為低,可確定此行列交叉點處的按鍵被按下。 b. 線反轉(zhuǎn)法 只需兩步便能獲得此按鍵所在的行列值,線反轉(zhuǎn)法的原理如圖10-11。16第16頁,共30頁。17第17頁,共30頁。第1步:列線輸出為全低電平,則行線中電平由高變低的所在行為按鍵所在行。第2步:行線輸出為全低電平,則列線中電平由高變低所在列為按鍵所在列。 結(jié)合上述兩步,可確定按鍵所在行和列。(3)鍵盤的編碼 根據(jù)實際需要靈活編碼。10.2.3 鍵盤的工

10、作方式 單片機在忙于各項工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。18第18頁,共30頁。原則:即要保證能及時響應(yīng)按鍵操作,又不要過多占用CPU的工作時間。 通常,鍵盤工作方式有3種,即編程掃描、定時掃描和中斷掃描。1. 編程掃描方式 只有當單片機空閑時,才調(diào)用鍵盤掃描子程序,掃描鍵盤。工作過程:(1)在鍵盤掃描子程序中,先判斷有無鍵按下。方法:PA口8位輸出全0,讀PC口低4位狀態(tài),若PC0PC3為全1,則說明鍵盤無鍵按下;若不全為1,則說明鍵盤可能有鍵按下。19第19頁,共30頁。(2)用軟件來消除按鍵抖動的影響。如有鍵按下,則進行下一步。(3)求按下鍵的鍵號。(4)等待按鍵釋放后,再進行按鍵功能的處理操作。2. 定時掃描工作方式 利用單片機內(nèi)的定時器,產(chǎn)生10ms的定時中斷,對鍵盤進行掃描。3.中斷工作方式 只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序,如無鍵按下,單片機將不理睬鍵盤。 鍵盤所做的工作分為三個層次,如圖10-13。20第20頁,共30頁。第1層:單片機如何來監(jiān)視鍵盤的輸入。三種工作方 式:編程掃描定時掃描中斷掃描。第2層

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論