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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 單緩沖方式的接口與應用

          單緩沖方式的接口與應用

          作者: 時間:2010-02-28 來源:網(wǎng)絡 收藏

          1.單連接
          所謂單就是使DAC0832的兩個輸入寄存器中有一個(多位DAC寄存器)處于直通,而另一個處于受控鎖存方式。
          方式連接 如圖9.3所示。
          為使DAC寄存器處于直通方式,應使WR2 =0和XFER=0。為此可把這兩個信號固定接地,或如電路中把WR2與WR1相連,把XFER與CS相連。
          為使輸入寄存器處于受控鎖存方式,應把WR1接80C51的WR,ILE接高電平。此外還應把CS接高位地址線或地址譯碼輸出,以便于對輸入寄存器進行選擇。

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

          圖9.3 DAC0832單緩沖方式

          2.單緩沖方式舉例
          【例9.1】鋸齒波電壓發(fā)生器
          在一些控制中,需要有一個線性增長的電壓(鋸齒波)來控制檢測過程、移動記錄筆或移動電子束等。對此可通過在DAC0832的輸出端接運算放大器,由運算放大器產生鋸齒波來實現(xiàn),其電路連接圖如圖9.4所示。
          圖9.4 用DAC0832產生鋸齒波電路

          圖中的DAC0832工作于單緩沖方式,其中輸入寄存器受控,而DAC寄存器直通。假定輸入寄存器地址為7FFFH,產生鋸齒波的程序清單如下:
          MOV A, #00H ;取下限值
          MOV DPTR,#7FFFH;指向0832口地址
          MM: MOVX @DPTR,A;輸出
          INC A;延時
          NOP
          NOP
          NOP
          SJMP MM;反復
          執(zhí)行上述程序就可得到如圖9.5所示的鋸齒波。

          圖9.5 D/A 轉換產生的鋸齒波

          幾點說明:
          (1)程序每循環(huán)一次,A加1,因此實際上鋸齒波的上升邊是由256個小階梯構成的,但由于階梯很小,所以宏觀上看就如圖中所畫的先行增長鋸齒波。

          (2)可通過循環(huán)程序段的機器周期數(shù),計算出鋸齒波的周期。并可根據(jù)需要,通過延時的方法來改變波形周期。若要改變鋸齒波的頻率,可在AJMP MM指令前加入延遲程序即可。延時較短時可用NOP指令實現(xiàn)(本程序就是如此),需要延時較長時,可以使用一個延長子程序。延遲時間不同,波形周期不同,鋸齒波的斜率就不同。
          (3)通過A加1,可得到正向的鋸齒波,反之A減1可得到負向的鋸齒波。
          (4) 程序中A的變化范圍是0~255,因此得到的鋸齒波是滿幅度的。如要求得到非滿幅鋸齒波,可通過計算求的數(shù)字量的處置和終值,然后在程序中通過置初值和終值的方法實現(xiàn)。



          關鍵詞: 應用 接口 方式 緩沖

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();