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

          新聞中心

          EEPW首頁 > 消費(fèi)電子 > 將AT89C52用作多功能外圍器件使用

          將AT89C52用作多功能外圍器件使用

          ——
          作者:過幼南 時(shí)間:2007-09-04 來源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

            摘要:介紹利用AT89C52單片機(jī)作為多功能可編程接口的方法。該接口具有1個(gè)鍵盤/顯示接口,2個(gè)16位定時(shí)/計(jì)數(shù)器和1個(gè)全雙工異步口。其模塊化的設(shè)計(jì),可以給用戶使用帶來許多方便。

              關(guān)鍵詞:

            AT89C52(簡(jiǎn)稱89C52)的廣泛使用,使單片機(jī)的價(jià)格大大下降。目前,89C52的市場(chǎng)零售價(jià)已經(jīng)低于8255、8279、8253、8250等專用接口芯片中的任何一種;而89C52的功能實(shí)際上遠(yuǎn)遠(yuǎn)超過以上芯片。因此,如把89C52作為接口芯片使用,在經(jīng)濟(jì)上是合算的。在本人設(shè)計(jì)的系統(tǒng)中,將89C52設(shè)計(jì)為多功能可編程接口,其相關(guān)程序固化在片內(nèi)的Flash ROM中。該芯片(以下簡(jiǎn)稱)具有如下功能:①有1個(gè)專用的鍵盤/顯示接口;②有1個(gè)全雙工異步接口;③有2個(gè)16位定時(shí)/計(jì)數(shù)器。這樣,1個(gè)89C52芯片,承擔(dān)了3個(gè)專用接口芯片的工作;不僅使成本大大下降,而且優(yōu)化了硬件結(jié)構(gòu)和軟件設(shè)計(jì),給用戶帶來許多方便。

          1 硬件結(jié)構(gòu)

            把89C52當(dāng)作接口使用,接口自身必須盡可能地少占用硬件資源,與主系統(tǒng)之間的連接線也應(yīng)盡可能少,這樣才能少占主機(jī)引腳,把更多的資源留給系統(tǒng)。本設(shè)計(jì)中,主機(jī)與之間采用串行通信。主機(jī)與多功能接口之間有四根連接線:CE、CLK、DAT、INTR。CE用于作片選信號(hào)輸入端。此引腳為低電平時(shí),主機(jī)能與多功能接口進(jìn)行數(shù)據(jù)傳送。CLK為時(shí)鐘輸入端,當(dāng)主機(jī)向多功能接口發(fā)送指令時(shí),此引腳電平上升表示數(shù)據(jù)有效。DAT為串行數(shù)據(jù)輸入/輸出端。INTR為多功能接口輸出端。當(dāng)多功能接口內(nèi)的數(shù)據(jù)準(zhǔn)備好時(shí),由INTR向主機(jī)發(fā)低電平,通知主機(jī),數(shù)據(jù)已準(zhǔn)備就緒,可以進(jìn)行讀操作。該信號(hào)可供主機(jī)查詢,也可用作發(fā)向主機(jī)的中斷請(qǐng)求信號(hào)。

            89C52的P0、P1、P2口用作鍵盤/顯示接口。用程序掃描的方法進(jìn)行鍵盤輸入和顯示輸出。P0口作為字段口,P1口作為鍵盤的列輸入口,P2作為顯示器的字位口以及鍵盤的行掃描輸出口。由于顯示器字位口電流較大,P2口需進(jìn)行電流驅(qū)動(dòng)。該多功能接口最多可連接8個(gè)LED顯示器和1個(gè)8



          評(píng)論


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