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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430單片機(jī)比較器A模塊

          MSP430單片機(jī)比較器A模塊

          作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          首先,整個(gè)比較器A的工作必需由CAON位置為1時(shí)才能工作的,此位屬CACTL1控制寄存器。單片機(jī)上電時(shí)此位是為0的,也就是說比較器是不工作的。
          以下大概講述幾個(gè)部分電路的功能和一些相關(guān)信息。

          模擬輸入電路:
          外部模擬引腳信號CA0,CA1(正負(fù)端)可以分別由P2CA0,P2CA1位控制開或關(guān)。經(jīng)過軟件的設(shè)置可以分別與內(nèi)部的幾個(gè)基準(zhǔn)電壓進(jìn)行比較(0.5VCC,0.25VCC,三極管門值電壓)或外部其中的電壓進(jìn)行比較。

          應(yīng)用的硬件比較可以分為以下三種組合:
          兩個(gè)外部引腳輸入信號進(jìn)行比較
          其中一個(gè)外部引腳信號與內(nèi)部的0.5VCC或0.25VCC比較
          其中一個(gè)外部引腳信號與內(nèi)部基準(zhǔn)電壓比較

          參考電壓發(fā)生器
          參考電壓電路是可以由CARSEL,CARERF0,CARERF1位來控制電壓的產(chǎn)生。通過軟件設(shè)置可以選擇幾種電壓輸出到比較器的輸入中作為比較,當(dāng)然此參考電壓也可以通過單片機(jī)的引腳往外部提供參考電壓之用。

          比較器A核心
          比較器CAON位控制開關(guān),CAEX位控制位控制方向。

          低通慮波器
          低通慮波器只需一個(gè)CAF位來控制此慮波器的功能開與關(guān)。此慮波器功能是用于消除比較器輸出信號的毛剌,以保證信號的質(zhì)量和中斷請求的可靠性。

          中斷請求
          比較器A模塊是具有中斷功能的,如比較器功能CAIE中斷允許開了,在CAIF信號產(chǎn)生時(shí)將生產(chǎn)中斷(當(dāng)然GIE要為1時(shí))。比較器A模塊是具有中斷獨(dú)立向量的,是一個(gè)單獨(dú)的中斷,CUP接受請求后會硬件自動清除中斷標(biāo)志位CAIFG。


          比較器模塊相關(guān)寄存器說明
          CACTL1 比較器控制寄存器1


          CAEX: 控制內(nèi)部比較器A的輸入信號和輸出信號的方向

          CARSEL:控制內(nèi)部參考電壓加到比較器A的正輸入端還是負(fù)輸入端
          由結(jié)構(gòu)圖可以看出,CAEX,CARSEL在不同設(shè)置時(shí),比較器A輸入端的所加的參考電壓是有不同的.
          請參考以下列表:
          -----------------------------------
          CARSEL CAEX 參考電壓接入端
          0 0 內(nèi)部參考源加到比較器的正端
          0 1 內(nèi)部參考源加到比較器的負(fù)端
          1 0 內(nèi)部參考源加到比較器的負(fù)端
          1 1 內(nèi)部參考源加到比較器的正端
          CAREF1, CAREF0 選擇參考源:
          0 使用外部參考
          1 選擇0.25VCC為參考電壓
          2 選擇0.5VCC為參考電壓
          3 選擇二極管電壓為參考電壓,須參見具體IC的資料

          CAON: 控制比較器A的打開與關(guān)閉
          0 關(guān)閉比較器工作
          1 打開比較器工作

          CAIES: 中斷邊沿觸發(fā)模式選擇
          0 上升沿使中斷標(biāo)志CAIFG置位
          1 下降沿使中斷標(biāo)志CAIFG置位

          CAIE:比較器中斷允許
          0 禁止中斷
          1 允許中斷

          CAIFG: 比較器中斷標(biāo)志
          0 沒有中斷請求
          1 有中斷請求標(biāo)志信號



          CACTL2 比較器控制寄存器2


          P2CA1:控制輸入端CA1
           0 外部引腳信號不與比較器A連接
           1 外部引腳信號與比較器A連接

          P2CA0:控制輸入端CA0
           0 外部引腳信號不與比較器A連接
           1 外部引腳信號與比較器A連接

          CAF: 選擇比較器輸出端是否經(jīng)過RC低通濾波器
           0 開通RC低通濾波器
           1 直通信號

          CAOUT: 比較器A輸出的信號
           0 CA0小于CA1
           1 CA0大于CA1


          CAPD 端口禁止寄存器
            比較器A模塊的輸入輸出與IO口共用引腳,可以控制IO端口輸入緩沖器的通斷開關(guān).CAPD控制位初始化為0,則端口輸入緩沖器有效.當(dāng)相應(yīng)位為1時(shí),端口輸入緩沖器無效。

          程序范例:
          #include <msp430x11x1.h>
          void main (void)
           {
            WDTCTL = WDTPW WDTHOLD;     // 停止WDT
            CAPD |= 0x08;           // 斷開與IO端口輸入
            CACTL2 = P2CA0;          // 設(shè)置P2.3為 comp
            CCTL0 = CCIE;           // CCR0 允許中斷
            TACTL = TASSEL_2 ID_3 MC_2;  // SMCLK/8,計(jì)數(shù)模
            _EINT();             // 開總中斷

           while (1) // 循環(huán)
           {
            CACTL1 = 0x00;          // 沒有參考電壓
            _BIS_SR(LPM0_bits);        // 進(jìn)入LPM0
            CACTL1 = CAREF0 CAON;      // 0.25*Vcc=P2.3, 比較器開
            _BIS_SR(LPM0_bits);        // 再次進(jìn)入LPM0
            CACTL1 = CAREF1 CAON;      // 0.5*Vcc=P2.3, 比較器開
            _BIS_SR(LPM0_bits);        // 再次進(jìn)入 LPM0
            CACTL1 = CAREF1 CAREF0 CAON;  // 0.55V on P2.3,比較器開
            _BIS_SR(LPM0_bits);        // 再次進(jìn)入LPM0
           }
          }

          // Timer A0 interrupt service routine
          #pragma vector=TIMERA0_VECTOR
          __interrupt void Timer_A (void)
          {
           _BIC_SR_IRQ(LPM0_bits);       //退出LMP0模式
          }


          關(guān)鍵詞: MSP430單片機(jī)比較

          評論


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