ATmega8-Protues仿真之三 鍵盤掃描_第1頁
ATmega8-Protues仿真之三 鍵盤掃描_第2頁
ATmega8-Protues仿真之三 鍵盤掃描_第3頁
ATmega8-Protues仿真之三 鍵盤掃描_第4頁
ATmega8-Protues仿真之三 鍵盤掃描_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三講鍵盤掃描的學(xué)習(xí)提要:主要學(xué)習(xí)Atmega8通用數(shù)字I/O接口掃描鍵盤的應(yīng)用。前面我們學(xué)習(xí)了ATmega8的I/O口作為通用數(shù)字輸入/輸出口來用時對LED 數(shù)碼管控制的應(yīng)用,其實(shí)主要是作為輸出口的應(yīng)用。下面我們就來學(xué)習(xí)一下用作輸入口的應(yīng)用掃描鍵盤。3.1 按鍵的使用特點(diǎn):按鍵的應(yīng)用主要就是在按鍵閉合時改變電路的電平,但是一般情況下按鍵的開關(guān)都是機(jī)械彈性觸點(diǎn)開關(guān),它利用觸點(diǎn)的接觸和分離來實(shí)現(xiàn)電路的通斷,在按鍵按下和釋放時往往會產(chǎn)生抖動干擾,所以要想辦法消除抖動干擾。消除抖動干擾即可用硬件設(shè)計也可用軟件設(shè)計的方法。硬件消抖就要在硬件設(shè)計上增加消抖電路,如用R-S觸發(fā)器等,這樣就會增加系統(tǒng)成本。

2、軟件消抖就是要在軟件中對按鍵進(jìn)行二次測試確認(rèn),既當(dāng)?shù)谝淮螜z測到按鍵被按下后,間隔10毫秒左右再次檢測該按鍵是否被按下,只有兩次都冊到按鍵按下時才確認(rèn)該按鍵被按下了,從而消除抖動干擾。另外我們還要判別按鍵的釋放,為了設(shè)計方便,我們現(xiàn)不考慮長時間按下按鍵的情況,只簡單考慮檢測到按下和釋放才計作一次按鍵操作。3.2 單鍵盤掃描的應(yīng)用下面我們就用軟件消抖的方法來做個簡單的應(yīng)用,我們用PB口接一個LED 數(shù)碼管,用來顯示數(shù)據(jù),用PC0端口接一個按鍵電路,我先畫出電路: 我們要實(shí)現(xiàn)的功能是每按一次按鍵,LED數(shù)碼管顯示的數(shù)據(jù)加1,到9回0。怎么樣不是很復(fù)雜吧,是不是很快就可以些出來了呢?下面是我寫的,你也

3、參考一下吧: 上面的程序沒考慮按鍵長按的情況,如果象我們使用的鍵盤一樣,長時間按下一個按鍵,在屏幕上就不斷的打印該字符,在這個例子里就是長時間按下按鍵的話就對CountNum加一,而不是每次按下按鍵一次就加一一次,該怎么考慮呢,你可以試試能不能實(shí)現(xiàn)。3.3 矩陣按鍵(鍵盤掃描的應(yīng)用如果按鍵多的話,我們一般就要考慮節(jié)省I/O資源,通常會考慮采用矩陣式的接口。矩陣鍵盤由行和列組成,每個按鍵都有它的行值和列值,行值和列值的組合就是識別每個鍵盤的編碼。確定哪個按鍵的流程是:先在行和列的一個口中輸出高電平,在另一個行列口讀取一個掃描碼;然后在后一個行列口輸出高電平,在前一行列口讀取第二個掃描碼,然后查表

4、就可確定哪個按鍵被按下了。有了確定哪個按鍵的方法,就簡單多了。鍵盤的處理程序也就基本出來了,因為它個單按鍵的掃描程序是很類似的:先確定有無按鍵按下,然后確定是哪個按鍵,返回該鍵值或處理對應(yīng)的任務(wù)就可以了。當(dāng)然這里也要考慮抖動的消除,等待按鍵的斷開。下面我們就設(shè)計一個3X3的鍵盤來學(xué)習(xí)多按鍵的應(yīng)用。我先畫出電路圖,然后再描述要實(shí)現(xiàn)的功能: 我們要實(shí)現(xiàn)的目標(biāo)是每按下一個按鍵就要在LED數(shù)碼管中顯示出該按鍵對應(yīng)的值,按鍵斷開后顯示”-”,這個符號不在前面介紹的內(nèi)容中,你可以試著計算一下該值應(yīng)該是多少。好了,我給出一個參考: 資料整理自互聯(lián)網(wǎng),版權(quán)歸原作者! 歡迎訪問 www.XinShiL 新勢力單片機(jī)、嵌入式 Protues-ATmega8仿真 好了,我是在主函數(shù)中判斷是否有按鍵按下,然后消除抖動干擾的,然后用 ScanKey 函數(shù)的到按鍵值,顯示在 LED 數(shù)碼管中,最后等待按鍵釋放;ScanKey 的功能主要就是的到掃描碼確定是哪個按鍵,返回該按鍵的值。 除了像上面的對按鍵的接口不停的掃描,還可以使用定時掃描,例如用一個 定時器,每隔 10MS 對按鍵接口進(jìn)行掃描,看是否有按鍵按下;也可以使用中斷 的方式去掃描,當(dāng)按鍵按下時由硬件電路產(chǎn)生一個中斷,MCU 響應(yīng)該中斷,確 定哪個按鍵被按下,處理相應(yīng)函數(shù)。 這些內(nèi)容在后面講到時鐘和中

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論