在往期文章中,小編曾和大家共同分享過pic單片機I/O操作、pic單片機選型經驗以及pic單片機中斷模塊等內容。在本文中,小編將對pic單片機的4×4行列式鍵盤的工作原理加以介紹,以幫助大家增進對pic單片機鍵盤系統的了解,方便后期編程使用。
(1)單片機系統鍵盤原理
行列式鍵盤的接法比獨立式鍵盤的接法復雜,編程實現上也會比較復雜。但是,在占用相同的I/O端口的情況下,行列式鍵盤的接法會比獨立式接法允許的按鍵數量多,其原理圖如圖1所示。
圖1 4×4行列式鍵盤的原理圖
實際的工程中,可能會使用PIC16C5X這種通用的可編程的鍵盤、顯示接口器件,使用PIC16C5X單片器件就能夠完成鍵盤輸入和顯示控制兩種功能。
行列式鍵盤的工作方式是先用列線發送掃描字,然后讀取行線的狀態,查看是否有按鍵按下。鍵盤部分提供一種掃描的工作方式,可以和具有64個按鍵的矩陣鍵盤相連接,能對鍵盤不斷掃描、自動消抖、自動識別按下的鍵,并給出編碼,能對雙鍵或n個鍵同時按下的情況實行保護。
在顯示部分,它可以為發光二極管、熒光管及其他顯示器提供按掃描方式工作的顯示接口,而且為顯示器提供多路復用信號,可以顯示多達16位的字符或數字。
鍵盤中有無按鍵按下是由列線送入全掃描字、行線讀入行線狀態來判斷的,其方法是將列線的所有I/O線均置成低電平,然后將行線電平狀態讀入累加器A中,如果有鍵按下,總會有一根行線被拉至低電平,從而使行輸入不全為1。
鍵盤中哪一個鍵按下可由列線逐列置低電平后,檢查行輸入狀態來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態,如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點上的那個鍵。
(2)單片機鍵盤掃描法
掃描法是在判定有鍵按下后逐列果行(或列)的狀態出現非全1狀態,如果(或列)的狀態出現非全1狀態,這時0狀態的行、列交點的鍵就是所按下的鍵。
掃描法的特點是逐行(或逐列)掃描查詢,這時相應行(或列)應有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來確定哪個鍵按下的,圖1中行線上拉電阻接+5V,列線逐列掃描。
①逐行(或列)掃描查詢法。
確定矩陣式鍵盤上哪個鍵被按下時運用掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,過程如下。
· 判斷鍵盤中有無鍵按下,將全部行線Y0~Y3置低電平,然后檢測列線的狀態。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。
· 判斷閉合鍵所在的位置,在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態,若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。
②反轉法。
掃描法要逐列(行)掃描查詢,當按下的鍵在最后行(列),要經過多次掃描才能獲得鍵值/鍵號。而反轉法只要經過兩個步驟就可獲得鍵值,原理如圖2所示。
圖2 線反轉法原理
圖中硬件采用中斷方式工作,用一個8位I/O口構成4&TImes;4鍵盤。假定圖中虛線為所按下的鍵,其反轉法的步驟如下。
· 將D3~D0設為列輸入線,D7~D4設為行輸出線,并使I/O輸出信號D7~D4為0000。若有鍵按下,與門的輸出端變為低電平,向CPU申請中斷,表示鍵盤中有鍵按下。與此同時,D3~D0的數據輸入到內存中的某一單元中,其中0位對應的是被按下鍵的列位置。
· 將第一步中的傳送方向反轉過來,即將D7~D4設為輸入線,D3~D0設為輸出線。使I/O口輸出數據為N單元中的數(即D3~D0為按下鍵的列位置),然后讀入I/O口數據,并送入內存N+1單元中存放,該數據的D7~D4位中0電平對應的位是按下鍵的行位置。最后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來就是按下鍵的鍵值。
單片機應用系統中,任何I/O口或擴展I/O口均可構成行列式鍵盤。由于帶有行列式鍵盤的應用系統中通常都有顯示器,為節省I/O口線,往往把顯示器電路與行列式鍵盤做在一個接口電路中。
上一篇:PIC單片機以及51和AVR單片機的IO口操作方法解析
下一篇:pic單片機多路ad切換程序與循環程序設計
推薦閱讀
史海拾趣
隨著全球環保意識的不斷提高,Astec也開始關注綠色環保和可持續發展問題。公司積極采用環保材料和節能技術,推出了一系列綠色電源產品。同時,Astec還加大了對環保技術的研發力度,努力在保持產品性能的同時,降低生產過程中的能耗和排放。這些舉措不僅有助于公司應對環保法規的挑戰,還提升了公司的社會形象。
Astec America, Inc的創立可以追溯到上世紀80年代,當時創始人看到了電源技術的巨大潛力,并決定在這一領域進行深耕。公司初創時期,團隊主要專注于電源技術的研發,推出了一系列具有創新性的電源產品。這些產品不僅性能穩定、效率高,而且價格合理,很快就在市場上獲得了良好的口碑。
為了提高DSSC的轉換效率和長期穩定性,G24i積極尋求技術合作。公司與離子液體供應商BASF公司簽署了合作協議,共同開發性能更優的離子液體和電解液配方。此外,G24i還與國內外多家科研機構建立了緊密的合作關系,共同推進DSSC技術的研發和創新。這些合作不僅為G24i帶來了先進的技術支持,也促進了整個DSSC行業的快速發展。
進入80年代,隨著電子技術的不斷進步和應用領域的拓寬,Hokuriku Electric意識到單一產品線的局限性。于是,公司開始實施多元化產品戰略,相繼推出了傳感器、貼片保險絲、機械零件、電路基板等一系列新產品。這些產品不僅豐富了公司的產品線,還進一步鞏固了其在電子行業中的地位。通過多元化布局,Hokuriku Electric成功抵御了市場波動帶來的風險,實現了持續穩定的增長。
2011年,Bussmann的母公司Cooper集團被EATON集團收購,Bussmann隨之成為EATON旗下的一個產品系列。EATON集團作為一家多元化的動力管理企業,在電氣和航空航天領域有著深厚的積累。通過整合EATON集團的資源和技術優勢,Bussmann得以在更廣泛的領域開展業務,并進一步提升其在電路保護領域的競爭力。
在電子行業的早期,Ceratech Corporation公司以其對濾波器技術的深入研究和不斷創新而嶄露頭角。公司研發團隊不斷攻克技術難題,成功研發出一系列高性能的Ceratech濾波器,這些濾波器以其優異的性能和穩定性,迅速在市場中占據了一席之地。隨著技術的不斷積累和創新,Ceratech Corporation逐漸在濾波器領域樹立起了自己的品牌和技術優勢。
在高動態條件下,結合GEC公司的十二通道相關器GP2021,討論了CPS接收機的結構設計和研制高動態CPS接收機所涉及到的關鍵技術,以及DSP在接收機中的功能。 … 查看全部問答∨ |
|
這是一個教科書的實驗,本實驗將產生1KHZ信號持續0.1S,停0.1S,再產生1KHZ信號持續0.1S,停0.5S,然后從頭執行 #include <reg51.H> sbit buzzer=P3^3; void delay(int); void pulse_BZ(int,int,int); main() { &nbs ...… 查看全部問答∨ |
趨勢1:從并行測量發展到串行測量 趨勢2:混合信號示波器 趨勢3:功能強大的便攜式示波器/定制通用示波器 趨勢4:示波器正更多地用作自動檢驗工具,而非調試工具 趨勢5:更好的顯示器 大家都有什么看法呢? … 查看全部問答∨ |
最近想在6410上裸奔 但是看了好多裸奔代碼 都是沒有初始化DDR或者SDR 包括三星的官方裸奔功能測試包夜沒有 那我就納悶 NAND上面的8K以后的代碼怎么放到SDRAM或者DDR中運行呢 ...… 查看全部問答∨ |
我想在SmartDevice工程中使用WndProc 函數捕獲 ARM板上的幾個按鍵按下的消息, 但不知道為什么編譯時,老是提示“no suitable method found to override”的錯誤。 還有1個問題: ARM那個按鍵,在ARM板自帶的測試程序中 能檢測到這幾個鍵的按 ...… 查看全部問答∨ |
中*美*愛*梯*科*技, .NET外企軟件工程師班將于2007年9月10日開課, 開課第一周免費試聽, 歡迎大家踴躍報名參加! 中*美*愛*梯*科*技向學員鄭重承諾: 百分之百保證就業, 月薪3000——8000, 就不了業者退還全部學費! ...… 查看全部問答∨ |
|
本DIY產品將手工制作一個精美的盒子,在盒子上打孔刻出精美動物的形狀,把三彩燈放入盒子中,采用水銀開關觸發,搖一搖便發出三彩的光,把燈光照在墻上,將會看到動物的形狀,本產品生動形象有趣,帶給使用者快樂的使用過程,搖的速度不同效果會同 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 利用STM32MP1和STM32MP2在嵌入式 Linux 平臺上部署有效的安全保護機制
- 超小但強大:MCU 的小尺寸封裝和集成如何幫助優化空間受限的設計
- 德州儀器推出全球超小型 MCU,助力微型應用創新
- Microchip推出電動兩輪車(E2W)生態系統,加速電動出行創新
- 意法半導體推出STM32U3微控制器,面向遠程、智能和可持續應用,拓展超低功耗系列創新
- (一) ECloudIDE入門STM32-CubeMX工程創建與導入
- (二)ECloudIDE入門STM32-官方寄存器版例程使用
- Simulink STM32F407VGT6實現硬件在環
- openharmony:hilog_lite組件移植