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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應用 > 基于單片機和FPGA的人機交互系統(tǒng)的設(shè)計

          基于單片機和FPGA的人機交互系統(tǒng)的設(shè)計

          作者: 時間:2010-12-07 來源:網(wǎng)絡(luò) 收藏

          為使的資源可以得到最大的開發(fā),將的高端口,即P4~P7接入,并通過對外部設(shè)備進行訪問。在中通過Vel-ilog HDL語言編程實現(xiàn)了3-8譯碼器,從而實現(xiàn)了對地址總線的擴展。該3-8譯碼器對LCD以及鍵盤的鍵值讀取提供使能信號,如圖2所示。

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

          b.JPG


          2.2 T6963C及其接口設(shè)計
          T6963C液晶顯示控制器多用于小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。
          單片機對T6963C有2種訪問方式:直接訪問與間接訪問。直接訪問利用三總線以I/O設(shè)備訪問形式進行控制;間接訪問則由單片機提供并行接口,以程序控制時序的方式進行控制。為簡化程序,這里采用直接訪問方式。
          該LCM的FS1引腳用于控制顯示字符的字體。FS1為高時,LCD顯示6x8字符;FS1為低時,LCD顯示8x8字符。經(jīng)實踐,在顯示英文與數(shù)字 時,6x8字符更為美觀;在顯示中文字符時,8x8字符更為方便。一般系統(tǒng)采用將FS1接地或接高的方式來固定字體,而本系統(tǒng)采用P2.1對FS進行控 制,通過改變地址實現(xiàn)改變字體的功能,使得界面的顯示更靈活。
          2. 3 鍵盤電路設(shè)計
          鍵盤是常用的單片機輸入設(shè)備,分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用硬件譯碼器實現(xiàn),并產(chǎn)生鍵編號或鍵值的稱為編碼鍵盤;靠軟件識別的稱為 非編碼鍵盤。在單片機組成的測控系統(tǒng)及智能化儀器中使用最多的是非編碼鍵盤,本系統(tǒng)設(shè)計在FPGA中編程實現(xiàn)3x6鍵盤的行掃描。
          由于按鍵的機械特性,在閉合和斷開的瞬間會伴隨著一連串的抖動,鍵抖動會引起一次按鍵被誤讀多次,所以必須進行去抖處理,常用的方法為延時去抖動。 FPGA產(chǎn)生鍵值之后向單片機發(fā)送中斷,并等待單片機讀取鍵值。由于人腦反應時間相對較長,鍵盤中斷可以處于相對較低的優(yōu)先級,因此本文將鍵盤中斷接于外 部中斷7。

          3 軟件設(shè)計
          軟件設(shè)計遵循結(jié)構(gòu)化和層次化的設(shè)計原則。底層函數(shù)直接與硬件溝通,而上層函數(shù)直接通過調(diào)用底層函數(shù)來實現(xiàn)相應功能,從而使上層函數(shù)與硬件環(huán)境徹底分開。當硬件環(huán)境發(fā)生變化時,僅修改底層函數(shù)便能實現(xiàn)程序的移植。
          3.1 液晶驅(qū)動模塊的編程設(shè)計
          本模塊的底層函數(shù)需要實現(xiàn)寫控制字、寫參數(shù)、查忙等功能。由于采用直接訪問,寫控制字與寫參數(shù)的函數(shù)只需向控制口或數(shù)據(jù)口的地址送數(shù)即可。由于LCD是慢 速器件,因此在每次寫控制字及寫參數(shù)之前都需要進行查忙。T6963C的狀態(tài)字共有7位有效的狀態(tài)位,如表1所示。其中STA1~STA3最為常用,一般 情況下可以不需要對STA5~STA7進行杏忙的程序。

          c.JPG



          評論


          相關(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); })();