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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機(jī)控制的數(shù)字移相器設(shè)計

          基于單片機(jī)控制的數(shù)字移相器設(shè)計

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

          1.2系統(tǒng)主電路

          本電路主要由AT89C51、鍵盤/顯示電路、模數(shù)轉(zhuǎn)換器AD574A、數(shù)模轉(zhuǎn)換器DAC0832、6116存儲器等構(gòu)成,具體電路如圖5所示(鍵盤/顯示電路和6116存儲器等圖中未畫出)。鍵盤主要用來實現(xiàn)移相的具體數(shù)值(度)的設(shè)置,功能鍵包括設(shè)置鍵、鍵(“↑”、“→”)、復(fù)位鍵、運(yùn)行鍵等五個鍵,最多可置720個0(720×0.5度=360度),因此可達(dá)到0~360度的相移。根據(jù)任意設(shè)定的相位數(shù)值,把相位及數(shù)據(jù)存儲到隊列(如圖4所示)中的相應(yīng)位置置0。顯示用四位數(shù)碼管實現(xiàn),最低位為小數(shù)位,其余3位為整數(shù)位,可顯示范圍為0.5~360度。

          A/D實現(xiàn)對波形數(shù)據(jù)(幅度)的采集、轉(zhuǎn)換。A/D每采集一個點(diǎn),就存入存儲器的隊列中。同樣D/A借助先從隊列中讀入一個數(shù)據(jù),再由倍頻信號fo來D/A輸出數(shù)據(jù)的時間間隔,D/A的第一周期輸出從“輸出1”口輸出,以后則從“輸出2”口輸出,對采集的720個數(shù)據(jù)循環(huán)輸出,因此達(dá)到了移相的目的。

          另外,因D/AC0832模/數(shù)芯片輸出的波形存在毛刺,需要進(jìn)行濾波,通過實驗,在其輸出端加一個1000p的電容就可以使這些毛剌基本消失,得到較平滑的波形。

          2系統(tǒng)軟件

          整個系統(tǒng)軟件的執(zhí)行過程為:首先,通過鍵盤設(shè)置移相的數(shù)值,同時在顯示器上顯示出移相的度數(shù);其次,啟動A/D把轉(zhuǎn)換結(jié)果存入隊列,在A/D的轉(zhuǎn)換過程中,D/A從隊列中讀出相應(yīng)數(shù)據(jù)后D/A輸出;第三,D/A不斷循環(huán)輸出,實現(xiàn)連續(xù)的移相后的工頻信號。系統(tǒng)軟件流程框圖如圖6所示。

          3結(jié)束語

          可對任意波形信號(如正弦波、三角げ?、锯乘Wā⒎講ǖ炔ㄐ)進(jìn)行任意相位的移相,具有測量精度高、跟蹤速度快的特點(diǎn),根據(jù)設(shè)定要求移相后所獲得的輸出波形與輸入信號波形的幅度、頻率逼近,即輸出移相后波形的失真度較小。

          參考文獻(xiàn)

          1何立民著.MCS-51系列單片機(jī)應(yīng)用系統(tǒng).北京:北京航空航天大學(xué)出版社,1990

          2萬心平,張厥盛,鄭繼禹著.鎖相技術(shù).西安:西安電子科技大學(xué)出版社,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); })();