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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機控制系統(tǒng)中實現(xiàn)DMA數(shù)據(jù)傳送的方法

          單片機控制系統(tǒng)中實現(xiàn)DMA數(shù)據(jù)傳送的方法

          作者: 時間:2012-02-16 來源:網(wǎng)絡(luò) 收藏

          3.2.1 初始化

          開機后,首先要對8155和8237初始化。

          8155初始化。8155只有1個狀態(tài)寄存器,通過對地址3F00H賦值,即可設(shè)定PB口和PC口為輸出口,用于為6264提供地址;PA口為雙向輸入輸出口,作為6264的口,存時,3F00H的值為0DH;取時,3F00H的值為0CH。

          8237初始化。將8155的PC5位置0,2片4066組成的門控電路使8237處于非狀態(tài)。此時,8237的端口讀寫控制線與的讀寫線分別接通。通過對地址5F00H~5FFFH(8237的內(nèi)部寄存器端口地址)的設(shè)定,完成8237的初始化。

          針對的特點,通常初始化8237的內(nèi)容包括:
          (1)決定的工作通道;
          (2)數(shù)據(jù)按成組方式;
          (3)確定訪存首地址及地址的增減變化;
          (4)字節(jié)數(shù);
          (5)確定請求信號和應(yīng)答信號的有效電平;
          (6)屏蔽。

          3.2.2 

          系統(tǒng)完成初始化之后即進入正常工作狀態(tài)。若有DMA請求,即可進行DMA傳送過程。

          (1)8237接收到DMA請求信號DREQ后,輸出“總線”請求信號HOLD,引起單片機中斷,中斷響應(yīng)程序包括:解除8237的屏蔽功能;保持P2.6、P2.5置0,使能6264、8237;
            P2.7置1,使8155空閑;6264脫離單片機控制。

          8155的PC5由0變1;門控電路使8237的存儲器讀寫線與6264的讀寫線接通,完成DMA通道的連接。同時,8155的PC5作為CPU對DMA請求的回應(yīng),啟動了DMA傳送過程。

          (2)8237輸出DACK回答信號,開始DMA傳送。

          (3)傳送結(jié)束,8237輸出信號,單片機檢測到2次中斷的發(fā)生,使8155的PC5置0,恢復的原有工作狀態(tài)。同時為下次DMA傳送作好了準備,并通知外設(shè)本次DMA傳送結(jié)束。

          4 結(jié) 論

          通過存儲器擴展,在僅占用單片機幾十個存儲空間和一個中斷源的情況下,了單片機控制系統(tǒng)的數(shù)據(jù)DMA傳送,保證了單片機能在DMA傳送期間的正常工作。實踐證明,該系統(tǒng)可方便用于信號的高速采集,并可作為單片機控制系統(tǒng)與軟盤驅(qū)動器的接口。

          [參考文獻]
          [1] 朱長清.單片機與CRT顯示器的接口[J].電子技術(shù),2000(2).
          [2] 閻慧娟,張金烈.微型計算機接口技術(shù)[M].中國人事出版社,1994.
          [3] 何立民.單片機應(yīng)用系統(tǒng)設(shè)計[M].北京航空航天大學出版社,1990.
          [4] 趙依軍,胡戎.單片微機接口技術(shù)[M].人民郵電出版社,1989.


          上一頁 1 2 下一頁

          評論


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