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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 一種基于AT89C51低頻信號源的設(shè)計

          一種基于AT89C51低頻信號源的設(shè)計

          作者: 時間:2009-08-06 來源:網(wǎng)絡 收藏

          正弦本身是非線性的,而其相位是線性的,如圖4所示。

          因此,每隔一段時間△t(時鐘周期),有對應的相位變化△p,即:

          p=ω△t=2πf△t

          從上式可以得到合成的頻率f為:

          3 系統(tǒng)硬件

          其系統(tǒng)硬件原理圖如圖5所示。

          3.1 單片機選擇

          本系統(tǒng)中使用單片機。電路板上的EA引腳可利用跳線接電源,也可接地。因此,在此管座上可以插,AT80C31等芯片。

          3.2 D/A轉(zhuǎn)換電路

          DAC0832與單片機的連接中對主要功能的處理方法如下:

          圖中DAC0832與的連接方式是單緩沖方式。這種單緩沖方式是DAC0832的兩個緩沖器同時受控,將CS與XFER相連受控于 AT89C51的P2.0信號,WR1和WR2相連受控于AT89C51的WR信號,由于P2.0連至DAC0832的CS,故該片的地址為FEFFH (無關(guān)位取“1”)。

          3.3 開關(guān)的功能和應用

          由于本中要用按鍵控制波形輸出,現(xiàn)將各按鍵說明如下:

          K0~K4分別與AT89C51的P1.0~P1.4相連,依次控制著鋸齒波、方波、三角波、梯形波、正弦波的產(chǎn)生。

          通過對51單片機進行D/A轉(zhuǎn)換接口擴展,通過對INT0端設(shè)置按鈕改變20H單元中的內(nèi)容以調(diào)整頻率,利用中斷與查詢相結(jié)合的方式進行波形選擇,具體可以通過對P1口來設(shè)置完成。例P1.0為鋸齒波信號選擇開關(guān),當加上電源后,自動復位電路開始工作,單片機開始工作。當K0鍵按下,即想要輸出鋸齒波時,P1.0為低電平,掃描程序調(diào)用鋸齒波子程序,產(chǎn)生的數(shù)字信號送DAC0832進行數(shù)模轉(zhuǎn)換,其輸出經(jīng)運算放大電路后輸出鋸齒波。

          4 軟件

          4.1 主程序流程圖

          程序流程圖如圖6所示。

          4.2 正弦波的流程圖及子程序

          4.2.1 流程圖

          流程圖如圖7所示。

          4.2.2 子程序

          5 結(jié) 語

          的設(shè)計是以MCS-51單片機和DAC0832為核心元件,結(jié)合較簡捷的外圍電路來構(gòu)建。它能產(chǎn)生三角波、正弦波等5種信號,本設(shè)計采用硬件和軟件相結(jié)合,電路較傳統(tǒng)的簡單且操作方便,具有一定的參考價值。


          上一頁 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); })();