?? 4channel.c
字號(hào):
//序列單次轉(zhuǎn)換 4通道單次轉(zhuǎn)換
#include<msp430x44x.h>
static unsigned int results0,results1,results2,results3;//設(shè)置轉(zhuǎn)換結(jié)果的靜態(tài)變量
void delay(int v)//延時(shí)子程序
{
while(v!=0)
v--;
}
void main(void)//主函數(shù)
{
WDTCTL=WDTPW+WDTHOLD;//設(shè)置看門(mén)狗密碼 停止看門(mén)狗
P6SEL|=0X0F;//選擇P6口引腳擬P6.0 P6.1 P6.2 P6.3為模電壓輸入端
ADC12CTL0&=~ENC;//??
//設(shè)置ADC12CTL0控制寄存器0
ADC12CTL0=ADC12ON+SHT0_2+MSC;//加電源 并定義采樣周期
//15-12 SHT1 11-8 SHT0 采樣保持時(shí)間 :SHT0_2 選擇采樣周期為16個(gè)ADC12CLK
//7 MSC 多次采樣/轉(zhuǎn)換位 :為0即每次轉(zhuǎn)換時(shí)采樣定時(shí)器需要SHI信號(hào)的上升沿觸發(fā)
//6 2.5V/1.5V 內(nèi)部參考電壓產(chǎn)生器的電壓值選擇位 :為0選擇內(nèi)部1.5V參考電壓
//5 REFON 參考電壓控制位 :為0內(nèi)部參考電壓產(chǎn)生器關(guān)閉 不消耗功率
//4 ADC12ON 打開(kāi)ADC12內(nèi)核控制位 :為1打開(kāi)ADC12內(nèi)核
//3ADC12OVIE 溢出中斷允許位 當(dāng)中ADC12MEMx原有數(shù)據(jù)還沒(méi)有讀出,而又沒(méi)有新的轉(zhuǎn)換結(jié)果數(shù)據(jù)要寫(xiě)入時(shí),則發(fā)生溢出
//:為0沒(méi)有發(fā)生溢出
// 2ADC12TOVIE 轉(zhuǎn)換時(shí)間溢出中斷允許位 在當(dāng)前轉(zhuǎn)換還沒(méi)有完成時(shí),又發(fā)生一次采樣請(qǐng)求,則會(huì)發(fā)生時(shí)間溢出
//:為0沒(méi)有轉(zhuǎn)換時(shí)間溢出
//1 ENC 轉(zhuǎn)換允許位 :為0 ADC12模塊處于初始狀態(tài),不能啟動(dòng)A/D轉(zhuǎn)換,但可以設(shè)置ADC12
//0 ADC12SC 采樣/轉(zhuǎn)換啟動(dòng)控制位 :為0 不啟動(dòng)采樣轉(zhuǎn)換
//設(shè)置ADC12CTL1控制寄存器1
ADC12CTL1=SHP+CONSEQ_1;
//15-12 CSTARTADDx 轉(zhuǎn)換存儲(chǔ)器地址定義位 該4位定義了在ADC12MEMx作為單次轉(zhuǎn)換地址或序列轉(zhuǎn)換的首地址
//:CSTARTADDx=00 選擇轉(zhuǎn)換結(jié)果存放的開(kāi)始地址為 ADC12MEM0
//11-10 SHSx 采樣保持控制源選擇位 控制源輸出信號(hào)為SHI :SHSx=0 表示選擇采樣保持源 為ADC12SC
// 9 SHP 采樣信號(hào)SAMPON的控制源選擇位 可以是采樣定時(shí)器 也可以是采樣控制源信號(hào)SHI
//:為1 選擇脈沖采樣模式,SAMPCON信號(hào)來(lái)自采樣定時(shí)器
//8 ISSH 采樣控制源信號(hào)反相控制位
//7-5 ADC12DIVx ADC12CLK時(shí)鐘源分頻因子選擇位 :ADC12DIVx=000 選擇分頻比為1
//3-4 ADC12SSELx ADC12內(nèi)核時(shí)鐘源選擇 :SSELx=00 選擇時(shí)鐘源為ADC12OSC
//2-1 CONSEQx 轉(zhuǎn)換模式選擇位
//0 BUSY 忙標(biāo)志
ADC12MCTL0=INCH_0;//選擇輸入通道A0
ADC12MCTL1=INCH_1;
ADC12MCTL2=INCH_2;
ADC12MCTL3=INCH_3;
ADC12IE=0X08;//中斷寄存器 使能A3通道轉(zhuǎn)換結(jié)束中斷
ADC12CTL0|=ENC;//轉(zhuǎn)換允許位 使能轉(zhuǎn)換
P2DIR=0xff;//將P2口設(shè)置為輸出
P2OUT=0X00;//P2口輸出低電平
_EINT();//使能總中斷
while(1)
{
P2OUT^=0xff;//每轉(zhuǎn)換一次 P2口連接的發(fā)光二極管閃爍一次
delay(600000);//延遲時(shí)間 使閃爍可見(jiàn)
ADC12CTL0|=ADC12SC;}}
#pragma vector=ADC_VECTOR//ADC中斷服務(wù)程序
__interrupt void ADC12ISR(void)
{
results0==ADC12MEM0;//將 A0通道的轉(zhuǎn)換結(jié)果讀到變量result0
results1==ADC12MEM1;//將 A1通道的轉(zhuǎn)換結(jié)果讀到變量result1
results2==ADC12MEM2;//將 A2通道的轉(zhuǎn)換結(jié)果讀到變量result2
results3==ADC12MEM3;}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -