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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 數(shù)字傳感器MPXY8020A與MSP430的接口設(shè)計

          數(shù)字傳感器MPXY8020A與MSP430的接口設(shè)計

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

          uchar i;
          P3DIR |=mpxy8020_clk+mpxy8020_dat;
          //CLK和DAT引腳為輸出
          Delay650us();
          P30UT&=~mpxy8020_clk; //CLK引腳清0
          for(i=0;i8;i++){
          if((_dataBIT7)=BIT7)f
          //高位在前
          P3OUT |=mpxy8020_dat; //OUT引腳置1
          else{
          P3OUT = ~mpxy8020_dat //OUT引腳清0
          }
          P3OUT |=mpxy8020_clk; //CLK引腳置1
          Dday20us(1);
          P30UT&=~mpxy8020_clk; //CLK引腳清0
          Delay20us(1)。
          _data=_data1;
          //左移1位
          }

          4. 2. 2溫度和氣壓數(shù)據(jù)的讀取

          獲取MPXY8020A氣壓和溫度數(shù)據(jù)的方法有逐次逼近法和報警值檢查法。逐次逼近法能夠獲得8位精度的轉(zhuǎn)換結(jié)果,但需要較長的轉(zhuǎn)換時間和消耗較多的電能。報警值檢查法是預(yù)先設(shè)置一個氣壓或溫度的報警值,然后監(jiān)測OUT引腳的電平來確定氣壓和溫度值是否超過報警值。這是一種低功耗模式,在不需要知道準(zhǔn)確的氣壓/溫度值時,可采用這種工作方式。本系統(tǒng)中采用的是逐次逼近法。

          MPXYS020A利用外部的F1232作為逐次逼近程序的控制器,F1232將猜測的極限值通過SPI串行地發(fā)送到的DAR(數(shù)/模轉(zhuǎn)換寄存器)。器件內(nèi)DAR將此猜測值變?yōu)槟M值,并與待測的氣壓值比較,通過OUT引腳給出比較后的結(jié)果。每次比較需用64個時鐘周期。例如:第1次猜測值為0x80,如果檢測OUT腳為高電平,則說明氣壓值大于0x80,F1232通過SPI再送人0xC0,檢測OUT引腳的狀態(tài),如果這次OUT引腳是低電平,說明氣壓在0x80和0xC0之間,重復(fù)這樣的過程,直到逼近近似值。整個過程類似對分搜索,首先,取全量程值的一半作為第1個猜測值,并送人數(shù)/模轉(zhuǎn)換寄存器,然后監(jiān)測傳感器OUT引腳的輸出狀態(tài)。若OUT引腳的輸出為“低”,說明猜測值太大或者和取樣值接近;若OUT引腳的輸出保持“高”,則說明猜測值太小。轉(zhuǎn)換結(jié)果寄存器作為一個變量由MSP430F135實時修改。如果猜測值太小,結(jié)果寄存器的最低位置“1”;如果猜測值太大,結(jié)果寄存器的最低位置“0”,使用新的猜測值繼續(xù)逼近,直到得到最終結(jié)果。

          用逐次逼近的方法讀取MPXY8020A溫度數(shù)據(jù)的程序代碼如下:
          void MPXY8020A_temperature_sample(void){
          uchar MPXY8020A_temp=0;
          P3D1R=~mpxy8020_ut; //INPUT
          MPXY8020A_temp=BIT7;//N始值為128,即位7=1
          MPXY8020A_standby_state(); //待機模式
          MPXY8020A__sendByte(MPXY8020A_Xemp);
          //發(fā)送極限值
          MPXYS020A_temperature_state(); //測量溫度模式
          MPXY8020A_output_state(); //讀數(shù)據(jù)模式
          if((P31N&mpxy8020_out)==mpxy8020_out){
          //比較OUT引腳是否為1
          MPXYS020A_temp |=BIT6; //位6=1
          }
          else{
          MPXY8020A_temp=~B1T7;//位7=0
          MPXY8020A_temp |=BIT6; //位6=1
          ://省略部分為從位6到位1的重復(fù)逼近的程序,其c
          //代碼與位7的相似
          MPXY8020A_standby_state(); //待機模式
          MPXY8020A_sendByte(MPXY8020A_temp);
          //發(fā)送極限值
          MPXY8020A_temperature_state(); //測量溫度模式
          MPXY8020A_output_state(); //讀數(shù)據(jù)模式
          if((P3IN&mpxy8020_out)==mpxy8020_out)
          //比較OUT引腳是否為1
          {}
          else{
          MPXY8020A_temp=~BITO;//位0=0
          }
          temperature=MPXY8020A_temp;
          //用全局變量儲存采樣值

          讀取MPXY8020A氣壓數(shù)據(jù)的函數(shù)代碼與讀取溫度的函數(shù)相似。限于篇幅,本文不再細述。

          4.2.3溫度和氣壓數(shù)據(jù)的轉(zhuǎn)換

          (1)溫度數(shù)據(jù)的轉(zhuǎn)換
          根據(jù)表3,可以把溫度采樣值轉(zhuǎn)換為實際溫度值。實際溫度值的單位為℃。眾所周知,單片機對浮點數(shù)的處理能力不強,因此,為了便于單片機進行運算和保留更高的準(zhǔn)確度,對轉(zhuǎn)換后的實際溫度值放大了100倍。例如,1501對應(yīng)于15.01℃。

          當(dāng)采樣溫度值小于-40℃對應(yīng)的值時,按0.8℃/位的變化率進行計算。溫度采樣值小于25℃對應(yīng)的采樣值時,以上限為基準(zhǔn)進行計算,因為其上限出現(xiàn)的機率更大,這樣得出的結(jié)果誤差會小些;當(dāng)采樣溫度值大于25℃對應(yīng)的采樣值時,以下限為基準(zhǔn)進行計算,因為下限出現(xiàn)的機率更大。比如,采樣值介于25℃對應(yīng)的采樣值和70℃對應(yīng)的采樣值之間,則以25℃為基準(zhǔn)。

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


          (2)氣壓數(shù)據(jù)的轉(zhuǎn)換
          MPXY8020A測量的氣壓范圍約為0~600 kPa,測得的值與氣壓之間的轉(zhuǎn)換關(guān)系由下式給出:P=2.5×Output±氣壓誤差式中,Output為測量得到的值(在0~255之間),氣壓誤差由MPXY8020A的數(shù)據(jù)手冊給出(將在下一節(jié)中討論);P為轉(zhuǎn)換后的氣壓值,單位為kPa。

          4.2.4氣壓數(shù)據(jù)的誤差處理

          MPXY8020A所測得的氣壓是存在誤差的,并且,在不同的溫度區(qū)間、不同的工作電壓、不同的氣壓的情況下,其誤差也不一樣。MPXY8020A的氣壓誤差由其數(shù)據(jù)手冊給出,表4列出其在250 kPa~450 kPa氣壓區(qū)間下的誤差值。

          由表4可以看出,陰影部分的誤差較小。當(dāng)電壓低于2.5 V或者溫度過低或者溫度過高的情況下,所測得的溫差比較大。為了減小測量誤差,MPXY8020A應(yīng)工作于2.5~3.3 V的電壓區(qū)間。

          由于各個傳感器的誤差不盡相同,因此,可以通過實際測量得出其具體的氣壓誤差,然后再在程序中加上或者減去這個誤差值,這樣所得出的氣壓值就更加接近真實值。此外,也可以通過分段多次測量的方法,得到更好的測量結(jié)果。


          結(jié) 論
          MPXY8020A為式氣壓和溫度傳感器,體積小、簡單、工作穩(wěn)定可靠、功耗??;適用于對體積要求比較高的氣壓和溫度測量系統(tǒng),尤其適用于無線汽車輪胎氣壓監(jiān)測系統(tǒng)。本已應(yīng)用于某無線汽車輪胎氣壓監(jiān)測系統(tǒng)中,經(jīng)實踐證明使用效果良好。

          分頻器相關(guān)文章:分頻器原理

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