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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MPX4105數(shù)字氣壓計設計

          基于MPX4105數(shù)字氣壓計設計

          作者: 時間:2016-11-18 來源:網絡 收藏
          單片機不僅可以用于溫度測量,也可以用來測量氣壓這類非電信號,就要用到氣壓傳感器。氣壓傳感器的原理是將氣壓信息轉換為電流或者電壓輸出,轉換后的電壓或者電流常為模擬信號,因此還必須進行A/D轉換,以滿足單片機的接口需要。在學習了溫度傳感器的是使用后,結合MPX4105氣壓傳感器,學習了數(shù)字氣壓機的設計。

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

          主要器件:

          1、AT89C52單片機芯片,采集、控制、處理傳感器的氣壓信息。

          2、MPX4105集成壓力傳感器。

          3、電壓/頻率轉換器為LM331高精度V/F轉換芯片。

          4、三端低電流線性穩(wěn)壓芯片MC78L05輸出穩(wěn)定的+5v電壓。

          試驗流程圖:

          試驗電路圖:

          試驗程序代碼:

          //DigAirPress.h程序

          #ifndef_DIGAIRPRESS_H//防止DigAirPress.h被重復引用

          #define_DIGAIRPRESS_H

          #include //引用標準庫的頭文件

          #include

          #include

          #include

          #define uchar unsigned char

          #define uint unsigned int

          #define K 2000// K為V/F轉換增益常數(shù)

          uchar PressVal;//氣壓值

          uchar count;//計數(shù)器

          #endif

          // DigAirPress.c程序

          #include "DigAirPress.h"

          void display();

          /*定時器0中斷*/

          void timer0() interrupt 1 using 1

          {

          uint x,y;

          uint fo;

          ET0 = 0;//關閉定時器0中斷

          count++;

          if (count == 10)// 500ms

          {

          TR1 = 0;//停止計數(shù)器1

          count = 0;

          x = TH1;

          y = TL1;

          /*計算頻率值,由于是500ms所以需乘以2 */

          fo = (x*256+y)*2;

          /*根據(jù)推算出來的公式P=20fo/K+9計算氣壓值*/

          PressVal = (uint)(20*(float)(fo)/K+9);

          /*顯示函數(shù),將計算出的PressVal值通過5位數(shù)碼管(4位數(shù)字和1位小數(shù)點)

          顯示出來,顯示精度為0.1,即保留小數(shù)點后一位。此函數(shù)本例中略去。*/

          display();

          /*計數(shù)器1清0 */

          TH1 = 0;

          TL1 = 0;

          }

          /*重置TH0和TL0 */

          TH0 = -50000/256;

          TL0 = -50000%256;

          ET0 = 1;//打開定時器0中斷

          TR1 = 1;//啟動計數(shù)器1

          return;

          }

          /*主程序*/

          void main(void)

          {

          EA = 1;

          ET0 = 1;//打開定時器0中斷

          /*設置T1為16位計數(shù)器,T0為16位定時器*/

          TMOD = 0x51;

          /*定時器0為50ms定時*/

          TH0 = -50000/256;

          TL0 = -50000%256;

          /*定時器1從0開始計數(shù)*/

          TH1 = 0;

          TL1 = 0;

          TR0 = 1;//啟動定時器0

          TR1 = 1;//啟動計數(shù)器1

          count = 0;

          /*開始無限循環(huán),等待中斷到來*/

          while (1);

          }

          void display(void)

          {

          //本例中略去

          }



          評論


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