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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 采用MCS-51單片機(jī)實現(xiàn)CPFSK調(diào)制

          采用MCS-51單片機(jī)實現(xiàn)CPFSK調(diào)制

          作者: 時間:2009-04-09 來源:網(wǎng)絡(luò) 收藏

          如果波形是單一頻率的,程序可以非常簡單,只要編制順序程序就可以了。如果波形的頻率是變化的,就需要根據(jù)串行數(shù)據(jù)“0”或“1”的變化來改變每個時段的延時時間。在中,串行數(shù)據(jù)流是由軟件設(shè)置,硬件自動產(chǎn)生,由TXD自動發(fā)出的。TXD的高低電平變化可以通過的程序測得。根據(jù)這一特性,可以通過不斷檢測TXD的高低電平變化來決定每個時段的延時時間。程序流程如圖5所示。

          從流程圖5可以看出,在每個相位中,將Px.x置“1”或置“0”后都要判斷TXD的電平,以確定相應(yīng)延時的數(shù)。在某個相位TXD電平開始改變時,程序就從這個相位改變脈沖的延時時間,而程序中相位執(zhí)行的次序并不改變。所以在TXD的電平改變時,兩種頻率的正弦波信號在同一個相位上交接。因此,F(xiàn)SK調(diào)制相位是連續(xù)的,見圖6。

          編程時必須注意,程序不論走哪條分支,所用的數(shù)都必須跟蹤計算,最終所用的數(shù)必須符合表2的要求。另外,在進(jìn)行FSK調(diào)制前應(yīng)該增加一定長度的980Hz 的載波信號(PWM980)作為前導(dǎo)碼信號。在數(shù)據(jù)發(fā)送完之后還應(yīng)該增加一定長度的PWM980作為停止位,因為單片機(jī)的TI標(biāo)志出現(xiàn)在數(shù)據(jù)幀停止位的前沿。

          4 波形的優(yōu)化

            圖4中B端的波形也就是帶有鋸齒的正弦波,是PWM調(diào)制經(jīng)一階濾波后產(chǎn)生的波形。該波形已具有了正弦波的大致形狀,但鋸齒也很明顯,它和圖2的階梯波有些相似。通過前面的分析和表1的比較知道,增加PWM調(diào)制的時段分割數(shù)可以提高正弦波的波形精確度。

            對于時段分割應(yīng)該選擇一個適當(dāng)?shù)臄?shù)字。分割太粗,波形的失真就會嚴(yán)重,給濾波帶來困難;分割過細(xì)會增加程序所占的空間。另一方面,時段的分割也不可能無限加大,因為軟件延時時,延時時間的最高分辨率為1個機(jī)器周期。從表2也可以看到,在第4和第6時段出現(xiàn)了最小脈寬為1個機(jī)器周期的情況,而在第5時段甚至出現(xiàn)了只有高電平?jīng)]有低電平的現(xiàn)象。如果繼續(xù)細(xì)分時段,將會出現(xiàn)更多的只有一種電平的脈寬而另一種電平脈寬長度為0的現(xiàn)象。按上述等分時段的方法,如果不提高單片機(jī)的晶振頻率,20個時段的分割已達(dá)到極限。所以不能單純地細(xì)分時段的方法來提高波形的精度。

            從圖4中帶有鋸齒的正弦波可以看出,鋸齒的大小在整個波形上不是處處相等的,波峰左側(cè)的鋸齒要比右側(cè)的鋸齒小得多。

            從圖2的階梯波形可以看出,當(dāng)階梯波的精度最高時,應(yīng)該是電壓的步長或時間的步長之一為最小,而不是電壓步長與時間步長之和為最小,當(dāng)然更不能是電壓或時間的任何步長為0。同樣,用脈寬波表示正弦波時,精度最高的表示方法應(yīng)該是“0、1”之一的脈寬為最小,而不一定是“0、1”脈寬之和為最小,也不能是“0、1”之一的脈寬為0。



          評論


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