<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 簡單的4×4行列式鍵盤控制電路設計

          簡單的4×4行列式鍵盤控制電路設計

          作者: 時間:2013-09-19 來源:網(wǎng)絡 收藏

          1.概述

          本文引用地址:http://www.ex-cimer.com/article/174677.htm

          鍵盤是一組按壓式開關(guān)的集合,是微機系統(tǒng)不可缺少的輸入設備,用于輸入數(shù)據(jù)和命令。鍵盤的每一個按鍵都被賦予一個代碼,稱為鍵碼。鍵盤系統(tǒng)的主要工作包括及時發(fā)現(xiàn)有鍵閉合,求閉合鍵的鍵碼。根據(jù)這一過程的不同,鍵盤可以分為兩種,即編碼鍵盤和非編碼鍵盤。編碼鍵盤是通過一個編碼電路來識別閉合鍵的鍵碼,非編碼鍵盤是通過軟件來識別鍵碼。由于非編碼鍵盤的硬件電路簡單,用戶可以方便地增減鍵的數(shù)量,因此在應用系統(tǒng)中,非編碼鍵盤得到廣泛的應用,有較好的應用價值。

          2.設計原理

          首先應該了解本次設計的基本要求和目的,再通過查找資料了解80C51的工作原理、結(jié)構(gòu)圖,數(shù)碼顯示管的結(jié)構(gòu)和工作原理。根據(jù)設計要求可以將P3口接4×4鍵盤,P0口接數(shù)碼顯示管,根據(jù)掃描原理進行行掃描,用CJNE指令判斷P3口的狀態(tài)。采用軟件延時去抖動,用MOVC A,@A+DPTR取鍵值。

          建立鍵值對應的顯示碼,通過查表指令實現(xiàn)鍵值的顯示。由此畫出設計流程圖和利用匯編語言進行編程。最后利用Proteus畫出電路圖進行仿真。其系統(tǒng)原理框圖如圖1所示。

          3.單元電路設計

          3.1 顯示電路

          按顯示方式分,用單片機驅(qū)動LED數(shù)碼管的方法有靜態(tài)顯示和動態(tài)(掃描)顯示兩種。

          靜態(tài)顯示就是顯示驅(qū)動電路具有輸出鎖存功能,單片機將所要顯示的數(shù)據(jù)送出后需要刷新,直到下一次顯示內(nèi)容需要更新時再傳送新的數(shù)據(jù),這種方法顯示穩(wěn)定,占用CPU時間少。本設計主要是用的動態(tài)顯示,它的特點正好與靜態(tài)顯示相反,需要CPU時刻對顯示器件進行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時間多,但動態(tài)顯示所需硬件少,電路相對簡單,能節(jié)省線路板空間。采用1位8段共陰極LED,P0口作為LED顯示碼輸出端,因為只采用1位數(shù)碼管,因此線選端直接接地。

          如圖2所示。

          3.2 鍵盤電路

          用AT89S51的并行口P3接4×4行列式鍵盤,以P3.0-P3.3作輸出線,以P3.4-P3.7作輸入線;在數(shù)碼管上顯示每個按鍵的“0-F”

          序號。對應的按鍵的序號排列如圖3所示。

          3.3 電路仿真

          采用Proteus仿真軟件進行仿真,在仿真之前先按照預設值好的電路圖進行連線,以及布局,最后確定線路已連接好,將匯編程序編譯生成。hex文件,加載到51芯片中,再運行開始仿真,電路仿真效果圖如圖4所示。

          4.結(jié)束語

          本設計是以單片機為核心的鍵盤系統(tǒng),對該系統(tǒng)的結(jié)構(gòu)原理進行了相應的描述。通過對鍵盤的操作在數(shù)碼管上顯示相應的按鍵字符,具有使用方便、操作簡單等特點。隨著單片機的日益發(fā)展,它必將更多的電子系統(tǒng)設計中得到更多的應用,為電子設計增加更多精彩。



          關(guān)鍵詞: 單片機 控制

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();