国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

勇敢的芯伴你玩轉Altera FPGA連載71:矩陣按鍵掃描檢測

發布時間:2018-5-14 15:38    發布者:rousong1989
勇敢的芯伴你玩轉Altera FPGA連載71:矩陣按鍵掃描檢測
特權同學,版權所有
配套例程和更多資料下載鏈接:
http://pan.baidu.com/s/1i5LMUUD
         鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現,并產生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤。
在一般嵌入式應用中,用的最多的是非編碼鍵盤,也有用到編碼鍵盤的。非編碼鍵盤又分為獨立鍵盤和行列式(又稱為矩陣式)鍵盤。所謂獨立式鍵盤,即嵌入式CPU(或稱MCU)的一個GPIO口對應一個按鍵輸入,這個輸入值的高低狀態就是鍵值。矩陣鍵盤用于采集鍵值的GPIO是復用的,一般分為行和列采集,例如4*4矩陣鍵盤就只需要行列各4個按鍵就可以了,矩陣鍵盤的控制較獨立鍵盤要復雜得多,本實驗未涉及,所以對其原理不做詳細介紹。
         獨立按鍵一般有2組管腳,雖然市面上我們常常看到有4個管腳的按鍵,但它們一般是兩兩導通的,這2組管腳在按鍵未被按下時是斷開的,在按鍵被按下時則是導通的。基于此原理,我們一般會把按鍵的一個管腳接地,另一個管腳上拉到VCC,并且也連接到GPIO。這樣,在按鍵未被按下時,GPIO的連接狀態為上拉到VCC,則鍵值為1;按鍵被按下時,GPIO雖然還是上拉到VCC,但同時被導通的另一個管腳拉到地了,所以它的鍵值實際上是0。
我們的SF-CY4開發板上有一組4*4矩陣鍵盤。通過P12的PIN1-2短接時,其實S1/S2/S3/S4可以作為獨立按鍵使用,它的一端接地,另一端在上拉的同時連接到FPGA的I/O口。當I/O口的電平為高(1)時,說明按鍵沒有被按下,當I/O口的電平為低(0)時,說明按鍵被按下了。這是8.4節中我們的使用方法。在本實例中,我們不再只局限于獨立按鍵這么low的應用了,這里我們將要把所有16個按鍵都使用起來,實現我們真正的矩陣按鍵功能。要做矩陣按鍵,那么大家首先要確認把自己的SF-CY4開發板上插座P12的PIN2-3用跳線帽短接。矩陣按鍵的原理圖如圖8.85所示。
圖8.85 矩陣按鍵原理圖
         接續上面的原理圖,我們來看看矩陣按鍵的鍵值如何獲得。
         通常,我們將這個矩陣按鍵分為兩組信號,即列信號(包括BUT0/BUT1/BUT2/BUT3)和行信號(BUT4/BUT5/BUT6/BUT7)。列信號作為FPGA的輸入信號,行信號作為FPGA的輸出信號。
         若FPGA輸出的行信號為高電平時,無論是否有按鍵被按下,列信號輸入到FPGA的電平始終為高電平,這是無法實現任何的矩陣按鍵值采集的;若FPGA輸出的行信號為低電平時,沒有按鍵按下,那么列信號會保持高電平(因為有上拉),有鍵按下時,則由于按鍵將行、列信號短接,那么列信號的電平會由于行信號而被拉低,通過這種方式,我們就可以達到鍵值的檢測。
         但是,可能大家還有疑惑,4個行信號若同時拉低,那么任意一個4X4按鍵被按下,所有的列信號也都會拉低啊,這只能判斷是否有按鍵被按下,具體哪一個按鍵被按下就不得而知了。確實如此,解決辦法也很簡單,我們在同一時刻只能拉低4個行信號中的一個,那么它就將按鍵狀態定位到具體的行,這樣就如同獨立按鍵一樣可以直接定位到這一行按鍵中的哪個按鍵被按下了。在實現上,我們會讓4個行信號循環的拉低,同一時刻有且只有一個行信號輸出為低電平,這就是我們所說的“鍵盤掃描”原理。
         本實例實現矩陣按鍵值的采集(即判斷16個按鍵的哪個被按下了),然后通過數碼管顯示按鍵值(顯示值為16進制的0-F),數碼管最低位顯示最后一次的鍵值,高3位顯示之前的值,即每按下一次按鍵,數碼管的鍵值右移一位。
         如圖8.86所示,用8個信號檢測16個按鍵值,有點難度,不過原理上一節我們已經講過。從功能上,我們首先對4個作為輸入的列信號進行按鍵消抖處理,然后依次輸出不同的行信號值,以此找到有鍵按下時的特殊列信號值,這樣便能采集鍵值,送往數碼管顯示。
圖8.86 矩陣按鍵掃描實例功能框圖
         工程結構如圖8.87所示,cy4.v為頂層模塊,不做邏輯,只做信號接口定義和連接。anykeyscan.v模塊實現行信號輸出;sigkeyscan.v實現列信號的按鍵消抖和鍵值采集;seg7.v為數碼管驅動模塊。
圖8.87 矩陣按鍵掃描實例模塊層次

本文地址:http://m.4huy16.com/thread-525753-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會上海首站開幕
  • 常見深度學習模型介紹及應用培訓教程
  • 電動兩輪車設計生態系統
  • Microchip第22屆中國技術精英年會——采訪篇
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表