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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機的風速風向檢測系統(tǒng)設計

          基于單片機的風速風向檢測系統(tǒng)設計

          作者: 時間:2011-03-01 來源:網(wǎng)絡 收藏

            3.3 通信模塊

            本系統(tǒng)提供了兩種通信方式, 一種是RS485 通信,采用M A X 4 8 5 E 收發(fā)器, 接口電路如圖3 中所示。另一種是采用短距離無線方式傳輸, 因為很多情況下, 風速風向觀測點距離數(shù)據(jù)處理中心并不遠, 采用無線傳輸可以節(jié)省鋪線成本并提高應用的靈活性。短距離無線傳輸采用的是華奧通H A C - U M 數(shù)傳模塊, 傳輸距離可達1 0 0 0 米, 數(shù)據(jù)輸入接M A X 4 8 5 的A 、B 端輸出, 并由LPC921 提供休眠控制,電源則共用系統(tǒng)電源模塊的3.3 V 或5 V 電源。

            4 軟件設計

            4.1 風速測量程序設計

            由測風資料可知,V= 0.1 F,其中F為輸入到的脈沖頻率。將T1做為定時器, 將T0作為計數(shù)器。T1與T0同時工作, 如果T1定時1秒, 則T0計數(shù)值即為此刻風速的10倍。由此可知最終的風速測量精度為0.1 m /s。LPC921 的兩個定時計數(shù)器共有5 種工作模式,本系統(tǒng)選擇模式1,即T0,T1 均為16 位定時器/ 計數(shù)器,THn 和TLn 級聯(lián),無預分頻器。

            系統(tǒng)選用7.373MHz 外部晶振, 在不預分頻情況下, 定時計數(shù)器工作頻率為:7.373/2MHz。16 位的定時器在初值為0 的情況下, 溢出一次共計時次數(shù)為6 5 5 3 5(0xFFFFH),共計時時間為17.777ms,所以在定時器中斷56 次之后共計延時約1 秒。

            風速測量子程序流程圖如圖4 所示。

          風速測量子程序流程圖

          圖4 風速測量子程序流程圖

            4.2 風向測量程序設計

            風向測量先測得7 位格雷碼的輸入, 通過7 位輸入值計算出格雷碼, 再通過格雷碼換算成二進制碼, 最后通過查表法得出風向角度。

            格雷碼(Gray code),又叫循環(huán)二進制碼或反射二進制碼。格雷碼屬于可靠性編碼, 是一種錯誤最小化的編碼方式, 因為, 自然二進制碼可以直接由數(shù)/ 模轉換器轉換成模擬信號, 但某些情況, 例如從十進制的3 轉換成4 時二進制碼的每一位都要變, 使數(shù)字電路產(chǎn)生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點, 它是一種數(shù)字排序系統(tǒng), 其中的所有相鄰整數(shù)在它們的數(shù)字表示中只有一個數(shù)字不同。它在任意兩個相鄰的數(shù)之間轉換時, 只有一個數(shù)位發(fā)生變化。它大大地減少了由一個狀態(tài)到下一個狀態(tài)時邏輯的混淆。



          關鍵詞: 單片機 傳感器

          評論


          相關推薦

          技術專區(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); })();