51單片機教程(四):獨立-矩陣鍵盤應用與設計

2020-12-27 OFweek維科網

  上講介紹並應用了單片機的串口通信,並給出了實例。從這一講開始將介紹單片機的外圍電路。這講向大家介紹單片機外接鍵盤電路,通過該講,讀者可以掌握單片機外接鍵盤的工作原理從而實現電路與程序設計。

 

  一、原理簡介

 

  鍵盤接口電路是單片機系統設計非常重要的一環,作為人機互動界面裡最常用的輸入設備。我們可以通過鍵盤輸入數據或命令來實現簡單的人機通信。在設計鍵盤電路與程序前,我們需要了解鍵盤和組成鍵盤的按鍵的一些知識。

  1. 按鍵的分類

  一般來說,按鍵按照結構原理可分為兩類,一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等;另一類是無觸點式開關按鍵,如電氣式按鍵,磁感應按鍵等。前者造價低,後者壽命長。目前,微機系統中最常見的是觸點式開關按鍵(如本學習板上所採用按鍵)。

  按鍵按照接口原理又可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區別是識別鍵符及給出相應鍵碼的方法。編碼鍵盤主要是用硬體來實現對鍵的識別,非編碼鍵盤主要是由軟體來實現鍵盤的識別。

  全編碼鍵盤由專門的晶片實現識鍵及輸出相應的編碼,一般還具有去抖動和多鍵、竄鍵等保護電路,這種鍵盤使用方便,硬體開銷大,一般的小型嵌入式應用系統較少採用。非編碼鍵盤按連接方式可分為獨立式和矩陣式兩種,其它工作都主要由軟體完成。由於其經濟實用,較多地應用於單片機系統中(本學習板也採用非編碼鍵盤)。

  2. 按鍵的輸入原理

  在單片機應用系統中,通常使用機械觸點式按鍵開關,其主要功能是把機械上的通斷轉換成為電氣上的邏輯關係。也就是說,它能提供標準的TTL 邏輯電平,以便與通用數字系統的邏輯電平相容。此外,除了復位按鍵有專門的復位電路及專一的復位功能外,其它按鍵都是以開關狀態來設置控制功能或輸入數據。當所設置的功能鍵或數字鍵按下時,計算機應用系統應完成該按鍵所設定的功能。因此,鍵信息輸入是與軟體結構密切相關的過程。 對於一組鍵或一個鍵盤,通過接口電路與單片機相連。單片機可以採用查詢或中斷方式了解有無按鍵輸入並檢查是哪一個按鍵按下,若有鍵按下則跳至相應的鍵盤處理程序處去執行,若無鍵按下則繼續執行其他程序。

  3. 按鍵的特點與去抖

  機械式按鍵再按下或釋放時,由於機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然後其觸點才穩定下來。其抖動過程如圖1(a) 所示,抖動時間的長短與開關的機械特性有關,一般為5 ~ 10 ms。從圖中可以看出,在觸點抖動期間檢測按鍵的通與斷狀態,可能導致判斷出錯。即按鍵一次按下或釋放被錯誤地認為是多次操作,這種情況是不允許出現的。為了克服按鍵觸點機械抖動所致的檢測誤判,必須採取去抖動措施,可從硬體、軟體兩方面予以考慮。一般來說,在鍵數較少時,可採用硬體去抖,而當鍵數較多時,採用軟體去抖。( 本學習板採用軟體去抖方式)。軟體去抖的流程圖如圖1(b) 所示。

 

  

  圖1

 

  從按鍵的去抖流程圖我們可以知道,檢測到有鍵按下時,應延時等待一段時間(可調用一個5ms~10ms的延遲子程序),然後再次判斷按鍵是否被按下,若此時判斷按鍵仍被按下,則認為按鍵有效,若此時判斷按鍵沒有被按下,說明為按鍵抖動或幹擾,應返回重新判斷。鍵盤真正被按下才可進行相應的處理程序,此時基本就算實現了按鍵輸入,進一步的話可以判斷按鍵是否釋放。

 

  二、電路詳解

 

  電路圖如圖2 所示。

 

  

  圖2

 

  從圖2 中可知獨立式按鍵採用每個按鍵單獨佔用一根I/O 口線結構。當按下和釋放按鍵時,輸入到單片機I/O 埠的電平是不一樣的,因此可以根據不同埠電平的變化判斷是否有按鍵按下以及是哪一個按鍵按下。從圖2(a) 中可以看出,按鍵和單片機引腳連接並加了上拉電阻,這樣當沒有按鍵按下的時候,I/O 輸入的電平是高電平,當有按鍵按下的時候,I/O 輸入的電平是低電平。

  雖然獨立式按鍵電路配置靈活,軟體結構簡單,但每個按鍵必須佔用一根I/O 口線,因此,在按鍵較多時,I/O 口線浪費較大。對於比較複雜的系統或按鍵比較多的場合,可以用到矩陣鍵盤,圖2(b) 中所示的為4×4的矩陣式鍵盤,其他矩陣式鍵盤的設計方法類似。

  4×4 的矩陣式鍵盤由4 根行線和4 根列線交叉構成,按鍵位於行列的交叉點上,這樣就構成了16 個按鍵。其中交叉點的行列線是不連接的,當按鍵按下的時候,此交叉點處的行線和列線導通。圖2(b) 行線通過上拉電阻接到VCC 上。當無鍵按下時,行線處於高電平狀態;當有鍵按下時,行、列線在交點導通,此時,行線電平將由與此行線相連的列線電平決定。這是識別按鍵是否按下的關鍵。然而,矩陣鍵盤中的每條行線與4 條列線相交,交點的按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,鍵分析時必須將行線、列線信號配合起來作適當處理,才能確定閉合鍵的位置。

  值得注意的是本文介紹的矩陣鍵盤,在傳統的矩陣鍵盤的輸出端加了一個四輸入與門晶片74HC21。當四路輸入有一個為低電平的時候,輸出為低電平。將74HC21 的輸出端接到單片機的外部中斷0(P32 管腳)上,這樣在實時性要求較高的情況下,設P00~P03 為全低等待按鍵觸發,當任何一個按鍵按下的情況下,系統都會進入中斷服務程序,提高了鍵盤響應時間,在系統實時性要求較高的情況下非常實用。

 

相關焦點

  • 51單片機學習之5-獨立按鍵和矩陣鍵盤
    非編碼鍵盤分:獨立式非編碼鍵盤(獨立按鍵)、行列式非編碼鍵盤(4*4陣列鍵盤)獨立鍵盤的電路圖。因為51單片機的IO口不是雙向口而是準雙向口,要讓IO口具備輸入功能,必須將IO口置1,置1之後當按鍵按下時IO口的電平會被拉低,即被置0。當檢測到IO口為0時即可判斷該按鍵已經按下。
  • 暢學三合一51單片機實戰教程
    本教程的亮點就是在分析初學者認知規律的基礎上,結合國內重點大學一線教師的教學經驗以及借鑑國外經典教材的寫作手法,對51單片機的應用基礎知識進行系統而翔實的介紹。本課程打破了單片機教學的傳統模式,採取實例模塊製作的方法,從該模塊需用到的單片機理論知識,再加上該模塊用到的「器件介紹」環節,外圍電路設計講解部分以及要實現該模塊的軟體功能-編程詳解,巧妙地將單片機原理與應用、外圍電路設計、單片機C語言編程的知識點融入各個模塊項目中,不僅開闢了單片機應用的視野,又充實了對單片機從基礎到應用所需要的知識。
  • 51單片機系列連載8—獨立鍵盤與矩陣鍵盤
    在前面我們講的都是向單片機中向外輸出數據,今天我們開始介紹一下如何向單片機裡面輸入數據,也就是鍵盤。本文引用地址:http://www.eepw.com.cn/article/201611/322440.htm鍵盤有兩種,獨立式鍵盤與行列式矩陣鍵盤。
  • 單片機4×4矩陣鍵盤設計方案
    連接4×4矩陣鍵盤,並以單片機的P3.0-P3.3各管腳作輸入線,以單片機的P3.4-P3.7各管腳作輸出線,在數碼管上顯示每個按鍵 「0-F」的序號。  圖14.2 4×4矩陣式鍵盤識別電路原理圖  3、電路硬體說明  (1)在「單片機系統」區域中,把單片機的P3.0-P3.7埠通過8聯撥動撥碼開關JP3
  • 單片機 4*4 矩陣鍵盤應用
    在單片機按鍵使用過程中,當鍵盤中按鍵數量較多時 為了減少埠的佔用通常將按鍵排列成矩陣 形式如下圖所示,在矩陣式鍵盤中 每條水平線和垂直線在交叉處不直接連通而是通過一個按鍵加以連接,到底這樣做是出意何種目的呢?
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    從經濟實用的角度出發,採用STC89C52單片機設計出一種具有密碼設置、報警和防止多次試探密碼功能的電子密碼鎖,通過Protues軟體成功地進行了仿真。  1、系統工作原理  本系統以STC89C52單片機為核心,使用4X4矩陣鍵盤作為數據輸人方式,驅動1602顯示器提示程序運行過程和*的步驟。
  • 51單片機輕鬆入門與實踐 — 暢學單片機
    本教程的亮點就是在分析初學者認知規律的基礎上,結合國內重點大學一線教師的教學經驗以及借鑑國外經典教材的寫作手法,對51單片機的應用基礎知識進行系統而翔實的介紹。課程詳情:      本課程主要通過典型實例的形式,以51單片機的系統設計為主線,結合軟體和硬體,由淺入深、通俗易懂地介紹了51單片機應用系統開發的流程、方法、技巧和設計思想。
  • 51單片機教程
    導讀:51單片機是最早應用的單片機,到現在為止也有很多都在用,優點,性價比非常高,簡單易學,在中國的市場佔有率還是蠻高的。目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。小到電話,玩具,手機,各類刷卡機,電腦鍵盤,彩電,冰箱,空調,電磁爐,大到汽車,工業自動控制,機器人,飛彈導航裝置,你可以用51單片機用它來做個鬧鐘,電飯煲定時控制器,電子門鎖,IC卡讀取識別器。電飯煲定時控制器如圖本文引用地址:http://www.eepw.com.cn/article/272993.htm
  • 單片機視頻教程
    :http://www.eepw.com.cn/article/274018.htm一、單片機視頻教程- -銳志51單片機開發板  銳志51單片機開發板視頻教程網址為:http://v.eepw.com.cn/video/playlist/id/4269  是廣大電子愛好者自學51單片機的好去處
  • 基於51單片機的電子音樂盒的課程設計
    1.設計目的和要求1.1 設計目的(1) 通過設計,查閱相關資料,掌握如何利用單片機設計產品,同時了解與單片機有關的軟體模擬器的使用及取字模塊軟體的使用方法。(2) 通過本課程設計鞏固並擴展單片機課程的基本概念、基本理論、分析方法和實現方法。
  • 基於AT89C51單片機的十進位計算器系統設計
    AT89C51 單片機進行的十進位計算器系統設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除4 位無符號數字的簡單四則運算,並在LED 上相應的顯示結果。硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。  引言  本系統採用AT89C51 單片機作為控制器,用來實現實現四位數的「+」,「-」,「*」,「/」運算,運算結果通過數碼管顯示,並具有有清零功能。
  • Windows CE.Net下矩陣鍵盤開發設計詳解
    Windows CE.Net下矩陣鍵盤開發設計詳解 引言 隨著現代科技日新月異的發展,作為新興產業的嵌入式移動信息設備的應用越來越廣
  • ADC0809和51單片機的多路數據採集系統設計方案
    終端鍵盤控制採用儘可能少的鍵來實現控制功能,為了防止鍵盤不用時的誤操作,設計時還設置了鎖鍵功能,在鍵盤的輸入消抖方面,則採用軟體消抖方法來降低硬體開銷,提高系統的抗幹擾能力。軟體設計方面則採用功能模塊化的設計思想;鍵盤模數轉換等採用中斷方式來實現,從而大大提高了單片機的效率以及實時處理能力。
  • 基於單片機的多功能搶答器設計
    本文採用AT89C51為核心,結合鍵盤、數碼管、蜂鳴器等外圍設備,設計了具有搶答、計時、時間調整、蜂鳴器報警等功能的4路搶答器。  總體設計  設計需求  按照設計需求,本系統具有以下幾個主要功能:(1)搶答器可同時供4名選手或四支參賽隊伍使用;(2)搶答或回答時間主持人可自行設置;(3)能夠顯示搶答或答題時間的倒計時;(4)在有人犯規時可以顯示選手號、閃爍顯示以及蜂鳴器報警;(5)答題時間還剩5s時,蜂鳴器報警提示。
  • 如何使用MSP430單片機實現簡易計算器的設計
    本文介紹了一種基於MSP430單片機的簡易電子計算器設計。基於MSP430單片機的簡易電子計算器設計具有體積小、便於攜帶、應用方便、組成元器件少、製造成本低等優點。MSP430單片機具有的超低功耗、硬體浮點數運算等功能使得簡易電子計算器設計簡單、計算能力強,有著廣闊的發展前景。
  • 51單片機+PID算法水溫控制系統設計
    該水溫控制系統主要由AT89S52單片機控制系統、溫度採樣轉換器、溫度控制電路。鍵盤顯示電路等四部分組成,總體框圖如上。由於採用的模擬控制方式,系統受環境影響較大,不能實現複雜的控制算法使控制精度做得較高,而且不能用於顯示和鍵盤設定。    方案2:採用單片機AT89S52為核心。採用數字溫度傳感器DS18B20採集溫度變化信號,將其轉換成數位訊號並通過單片機處理後去控制溫度,使其達到穩定。
  • 基於MSP430單片機編程器的設計
    1.引言 單片機開發與應用已滲入我們生活中各個方面,其中一個應用就是對內存較小的晶片大批量燒錄,就有了性能穩定的高速編程器誕生以滿足各大廠商實現大量晶片燒錄的目標。目前市場上運用最廣泛的編程器是基於89C51的,但其功能過於單一,不能滿足日益發展的市場需求。
  • 基於C語言STC89C52單片機電子密碼鎖的設計與仿真
    電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的密碼鎖常使用彙編語言編寫程序,顯示器多數用數碼管。而本文所介紹的電子密碼鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能;同時採用顯示清楚,功率消耗小而且壽命長的1602液晶顯示器,顯示更加直觀,使用更加方便。
  • 基於單片機的多功能數字鐘系統設計與分析
    文中在對本系統的各個模塊的方案進行論證與實際應用相比較的基礎上,最終方案選用AT89C52作為主控制系統來控制時鐘的準時運轉,採用獨立式按鍵控制本設計系統將要實現的全部功能,選用LCD液晶動態掃描來顯示時間。並對系統的硬體設計與實現進行分析,同時,對系統的軟體設計進行分析。
  • 《電子發燒友網51單片機設計方案TOP10》
    主機硬體系統由AT89C51單片機、數碼顯示、RS 232數據通信等電路組成。其主機系統電路原理圖如圖2所示。這裡的顯示電路為2位,如果呼叫方大於100個,可進行擴展,顯示方式採用軟體控制。   對目前所有兼容lntel 8031指令系統的單片機,統l稱為51單片機。Intel的8031單片機是51單片機的始祖。8031單片機是目前應用最廣泛的8位單片機之一。