?? 比較器a模塊.txt
字號:
MSP430入門例程】:比較器A模塊
作者:DC 微控技術論壇原創 MSP430單片機入門基礎例程
若想了解MSP430單片機常用模塊應用原理,請下載<<MSP430F常用模塊應用原理>>
http://www.microcontrol.cn/datasheet/msp430/msp430base/MSP430register_guide.pdf
比較器A模塊
以下圖可以看出比較器A的結構大概可以分4部分構成,分別為模擬輸入,比較器A核心,低通慮波器,基準電壓部分和中斷部分組成。
首先,整個比較器A的工作必需由CAON位置為1時才能工作的,此位屬CACTL1控制寄存器。單片機上電時此位是為0的,也就是說比較器是不工作的。
以下大概講述幾個部分電路的功能和一些相關信息。
模擬輸入電路:
外部模擬引腳信號CA0,CA1(正負端)可以分別由P2CA0,P2CA1位控制開或關。經過軟件的設置可以分別與內部的幾個基準電壓進行比較(0.5VCC,0.25VCC,三極管門值電壓)或外部其中的電壓進行比較。
應用的硬件比較可以分為以下三種組合:
[1]兩個外部引腳輸入信號進行比較
[2]其中一個外部引腳信號與內部的0.5VCC或0.25VCC比較
[3] 其中一個外部引腳信號與內部基準電壓比較
參考電壓發生器
參考電壓電路是可以由CARSEL,CARERF0,CARERF1位來控制電壓的產生。通過軟件設置可以選擇幾種電壓輸出到比較器的輸入中作為比較,當然此參考電壓也可以通過單片機的引腳往外部提供參考電壓之用。
比較器A核心
比較器CAON位控制開關,CAEX位控制位控制方向。
低通慮波器
低通慮波器只需一個CAF位來控制此慮波器的功能開與關。此慮波器功能是用于消除比較器輸出信號的毛剌,以保證信號的質量和中斷請求的可靠性。
中斷請求
比較器A模塊是具有中斷功能的,如比較器功能CAIE中斷允許開了,在CAIF信號產生時將生產中斷(當然GIE要為1時)。比較器A模塊是具有中斷獨立向量的,是一個單獨的中斷,CUP接受請求后會硬件自動清除中斷標志位CAIFG。
點擊可放大圖片查看
比較器模塊相關寄存器說明
CACTL1 比較器控制寄存器1
CAEX: 控制內部比較器A的輸入信號和輸出信號的方向
CARSEL:控制內部參考電壓加到比較器A的正輸入端還是負輸入端
由結構圖可以看出,CAEX,CARSEL在不同設置時,比較器A輸入端的所加的參考電壓是有不同的.
請參考以下列表:
-----------------------------------
CARSEL CAEX 參考電壓接入端
0 0 內部參考源加到比較器的正端
0 1 內部參考源加到比較器的負端
1 0 內部參考源加到比較器的負端
1 1 內部參考源加到比較器的正端 CAREF1, CAREF0 選擇參考源:
0 使用外部參考
1 選擇0.25VCC為參考電壓
2 選擇0.5VCC為參考電壓
3 選擇二極管電壓為參考電壓,須參見具體IC的資料
-----------------------------------
CAON: 控制比較器A的打開與關閉
0 關閉比較器工作
1 打開比較器工作
CAIES: 中斷邊沿觸發模式選擇
0 上升沿使中斷標志CAIFG置位
1 下降沿使中斷標志CAIFG置位
CAIE:比較器中斷允許
0 禁止中斷
1 允許中斷
CAIFG: 比較器中斷標志
0 沒有中斷請求
1 有中斷請求標志信號
CACTL2 比較器控制寄存器2
P2CA1:控制輸入端CA1
0 外部引腳信號不與比較器A連接
1 外部引腳信號與比較器A連接
P2CA0:控制輸入端CA0
0 外部引腳信號不與比較器A連接
1 外部引腳信號與比較器A連接
CAF: 選擇比較器輸出端是否經過RC低通濾波器
0 開通RC低通濾波器
1 直通信號
CAOUT: 比較器A輸出的信號
0 CA0小于CA1
1 CA0大于CA1
CAPD 端口禁止寄存器
比較器A模塊的輸入輸出與IO口共用引腳,可以控制IO端口輸入緩沖器的通斷開關.CAPD控制位初始化為0,則端口輸入緩沖器有效.當相應位為1時,端口輸入緩沖器無效。
--------------------------------------------------------------------------------
例程[1]
以下是在MC430F14開發板上實現的簡單的比較器A應用。利用外部一個可調電位器調節電壓與比較器A內部參考電壓相比較。如外部調節電壓小于內部參考電壓,則D2 LED亮。否則LED滅。參考實驗如下圖:
復制代碼
#include <msp430x14x.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // 停狗
P1DIR |= BIT1; // 設置P1.0為輸出
CAPD |= 0x08; // 斷開端口引腳
//設置比較器A的負端接內部參考電壓源0.25 Vcc,并打開比較器A工作
CACTL1 = CARSEL + CAREF0 + CAON;
CACTL2 = P2CA0; // 設置P2.3引腳與比較器A的正端連接,以作輸入
while (1) // 測試比較器A的輸出,用MC430F14板上的LED作指示
{
if ((CAOUT & CACTL2))
P1OUT |= BIT1; // 如果CAOUT位輸出為1,則LED關
else
P1OUT &= ~BIT1; // 否則LED亮
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -