新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 跟我學(xué)51單片機(jī)(四):獨(dú)立-矩陣鍵盤(pán)應(yīng)用與設(shè)計(jì)

跟我學(xué)51單片機(jī)(四):獨(dú)立-矩陣鍵盤(pán)應(yīng)用與設(shè)計(jì)

作者: 時(shí)間:2013-02-06 來(lái)源:網(wǎng)絡(luò) 收藏

程序說(shuō)明:

 ?。?)定義管腳。

  (2)將掃描時(shí)用到的管腳四種輸出電平狀態(tài)定義成一個(gè)數(shù)組。

  (3)按鍵掃描程序。

  (4)定義兩個(gè)臨時(shí)變量key,i。

 ?。?)讓鍵盤(pán)管腳的高四位輸出高電平,第四位為低電平,為掃描按鍵準(zhǔn)備。

 ?。?)如果此時(shí)管腳狀態(tài)電平發(fā)生變化。

  (7)將之前定義的數(shù)組中的值賦予管腳,開(kāi)始逐次掃描。

 ?。?)延時(shí)一段時(shí)間,去抖。

 ?。?)輸出掃描按鍵的電平。

  (10)再延時(shí)一段時(shí)間。

  (11)如果此時(shí)按鍵管腳電平依舊不是輸出的默認(rèn)電平,表示有鍵按下。

  (12)延時(shí)一段時(shí)間,讓電平穩(wěn)定。

 ?。?3)讀取當(dāng)前按鍵管腳電平,即鍵值。

 ?。?4)等待按鍵抬起,死循環(huán),如果按鍵一直按下則一直等待。

 ?。?5)返回鍵值。

  四、調(diào)試要點(diǎn)與實(shí)驗(yàn)現(xiàn)象

  接好硬件,通過(guò)冷啟動(dòng)方式將程序所生成的。hex文件下載到單片機(jī)運(yùn)行后,打開(kāi)串口調(diào)試助手軟件,設(shè)置好波特率9600,復(fù)位單片機(jī),然后按下板上的4×4按鍵中的任意一個(gè),并注意觀串口調(diào)試助手上的顯示。(見(jiàn)圖3),可以觀察到在接收窗口有按鍵的數(shù)據(jù)顯示。

跟我學(xué)51單片機(jī)(四):獨(dú)立-矩陣鍵盤(pán)應(yīng)用與設(shè)計(jì)

圖3 按鍵通過(guò)串口調(diào)試助手顯示界面

  此外,在本文所附的實(shí)驗(yàn)程序中,其中與串口通信中調(diào)用了發(fā)送字符函數(shù)與發(fā)送字符串函數(shù)。在沒(méi)有仿真器和遇到需要顯示一些提示信息的時(shí)候,可以采用串口打印的方式,這樣不僅直觀方便而且不增加其他成本。

  五、總結(jié)

  本文介紹了單片機(jī)外接鍵盤(pán)的工作原理并給出了實(shí)例,通過(guò)該文,我們可以知道一個(gè)完善的鍵盤(pán)控制程序應(yīng)具備以下功能:

 ?。?) 檢測(cè)有無(wú)按鍵按下,并采取硬件或軟件措施,消除鍵盤(pán)按鍵機(jī)械觸點(diǎn)抖動(dòng)的影響。

 ?。?) 有可靠的邏輯處理辦法。每次只處理一個(gè)按鍵,其間對(duì)任何按鍵的操作對(duì)系統(tǒng)不產(chǎn)生影響,且無(wú)論一次按鍵時(shí)間有多長(zhǎng),系統(tǒng)僅執(zhí)行一次按鍵功能程序。

 ?。?) 準(zhǔn)確輸出按鍵值(或鍵號(hào)),以滿足按鍵功能要求。對(duì)于而言,必須將行線、列線信號(hào)配合起來(lái)作適當(dāng)處理,才能確定閉合鍵的位置。

  此外,按鍵的掃描方式有多種,本文中所述的是程序掃描方式,另外常見(jiàn)的還有定時(shí)掃描方式和中斷掃描方式,這些方式均可以在本學(xué)習(xí)板上實(shí)現(xiàn),因此希望讀者結(jié)合前幾講的知識(shí),自行進(jìn)行程序的編寫(xiě)與調(diào)試。下講將講述單片機(jī)動(dòng)態(tài)驅(qū)動(dòng)數(shù)碼管原理與實(shí)例,敬請(qǐng)期待。

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


51單片機(jī)相關(guān)文章:51單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理



上一頁(yè) 1 2 3 4 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉