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

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 如何用用DAC0832產(chǎn)生鋸齒波電路

          如何用用DAC0832產(chǎn)生鋸齒波電路

          作者: 時(shí)間:2012-01-06 來(lái)源:網(wǎng)絡(luò) 收藏

          用DAC0832產(chǎn)生鋸齒波電路 www.elecfans.com

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

          波電壓發(fā)生器
          在一些控制應(yīng)用中,需要有一個(gè)線(xiàn)性增長(zhǎng)的電壓(波)來(lái)控制檢測(cè)過(guò)程、移動(dòng)記錄筆或移動(dòng)電子束等。對(duì)此可通過(guò)在的輸出端接運(yùn)算放大器,由運(yùn)算放大器波來(lái)實(shí)現(xiàn),其連接圖如圖9.4所示。
          圖9.4 用鋸齒波

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

          圖9.5 D/A 轉(zhuǎn)換產(chǎn)生的鋸齒波

          幾點(diǎn)說(shuō)明:
          (1)程序每循環(huán)一次,A加1,因此實(shí)際上鋸齒波的上升邊是由256個(gè)小階梯構(gòu)成的,但由于階梯很小,所以宏觀上看就如圖中所畫(huà)的先行增長(zhǎng)鋸齒波。
          (2)可通過(guò)循環(huán)程序段的機(jī)器周期數(shù),計(jì)算出鋸齒波的周期。并可根據(jù)需要,通過(guò)延時(shí)的方法來(lái)改變波形周期。若要改變鋸齒波的頻率,可在AJMP MM指令前加入延遲程序即可。延時(shí)較短時(shí)可用NOP指令實(shí)現(xiàn)(本程序就是如此),需要延時(shí)較長(zhǎng)時(shí),可以使用一個(gè)延長(zhǎng)子程序。延遲時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。
          (3)通過(guò)A加1,可得到正向的鋸齒波,反之A減1可得到負(fù)向的鋸齒波。
          (4) 程序中A的變化范圍是0~255,因此得到的鋸齒波是滿(mǎn)幅度的。如要求得到非滿(mǎn)幅鋸齒波,可通過(guò)計(jì)算求的數(shù)字量的處置和終值,然后在程序中通過(guò)置初值和終值的方法實(shí)現(xiàn)。

          DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY




          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();