新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 跟我學51單片機(四):獨立-矩陣鍵盤應用與設計

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

        作者: 時間:2013-02-06 來源:網絡 收藏
          上講介紹并應用了單片機的串口通信,并給出了實例。從這一講開始將介紹單片機的外圍電路。這講向大家介紹單片機外接鍵盤電路,通過該講,讀者可以掌握單片機外接鍵盤的工作原理從而實現電路與程序設計。

          一、原理簡介

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

          1. 按鍵的分類

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

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

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

          2. 按鍵的輸入原理

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

          3. 按鍵的特點與去抖

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

        圖1

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

        萬能遙控器相關文章:萬能遙控器代碼


        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新化县| 新宁县| 遵化市| 泾川县| 登封市| 湟中县| 新闻| 余姚市| 赣州市| 长沙市| 佛坪县| 沙湾县| 合作市| 塔城市| 黔西| 舒兰市| 孟连| 罗甸县| 英德市| 浠水县| 承德市| 孝义市| 资阳市| 兴国县| 浪卡子县| 遵义县| 柳河县| 山阳县| 金华市| 东乌珠穆沁旗| 玉屏| 金堂县| 湾仔区| 广昌县| 璧山县| 榆中县| 贵德县| 正定县| 阿克| 武安市| 志丹县|