日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] MSP430 ADC10單通道多次轉換#include"msp430x22x4.h"#defineucharunsignedchar#defineuintunsignedint#defineLCDen0X80;//P3的高三位做控制線#definelcdrw0X40;#definelcdrs0X20;voiddelay(uintz)//延時

MSP430 ADC10單通道多次轉換


#include"msp430x22x4.h"

#defineucharunsignedchar
#defineuintunsignedint

#defineLCDen0X80;//P3的高三位做控制線

#definelcdrw0X40;
#definelcdrs0X20;


voiddelay(uintz)//延時程序
{
uintx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
voidwrite_com(ucharcom)//寫指令
{
P3OUT&=~lcdrs;
P4OUT=com;
delay(5);
P3OUT|=lcden;
delay(5);
P3OUT&=~lcden;
}

voidwrite_data(uchardate)//寫數(shù)據(jù)
{
P3OUT|=lcdrs;
P4OUT=date;
delay(5);
P3OUT|=lcden;
delay(5);
P3OUT&=~lcden;
}

voidinit()//初始化
{

P3OUT&=~lcdrw;
P3OUT&=~lcden;
write_com(0x38);//顯示模式設置
write_com(0x0f);//
write_com(0x06);//
write_com(0x01);//
write_com(0x80+0x00);//
}
ucharnum;
uchartable[]="0123456789";
uintdada[5];


volatilefloatad_value;
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//關看門狗
BCSCTL1=CALBC1_1MHz;//設定DCO為1MHZ
DCOCTL=CALBC1_1MHZ;

P2SEL=0X01;
P3SEL=0X00;
P3DIR=0XFF;
P3OUT=0X00;
P4SEL=0X00;
P4DIR=0XFF;
P4OUT=0X00;
init();

//時鐘源選AD內部時鐘并4分頻,選通道10,AD啟動信號來源選TA.OUT1,選單通道連續(xù)采樣
ADC10CTL1=ADC10DIV_3+INCH_0+SHS_1+CONSEQ_2;
//選1.5V為正向參考,地為負參考,AD中斷使能,打開參考,啟動AD模塊(不是啟動AD轉換)
ADC10CTL0=SREF_1+ADC10SHT_3+ADC10IE+REFON+ADC10ON+REF2_5V;
TACCR0=30;//延時等待參考穩(wěn)定
TACCTL0|=CCIE;//CCR0中斷使能
TACTL=TACLR+MC_1+TASSEL_2;//TA增計數(shù),時鐘源為smclk
_BIS_SR(LPM0_bits+GIE);//進入低功耗0,使能總中斷,等待參考穩(wěn)定
TACCTL0&=~CCIE;//CCR0中斷禁止
_BIC_SR(GIE);//關總中斷
ADC10CTL0|=ENC;//AD轉換使能
TACCTL1=OUTMOD_4;//CCR1選輸出模式4,當TAR=0時,輸出高電平
TACTL=TASSEL_2+MC_2;//TA改為連續(xù)計數(shù),smclk時鐘源
while(1)
{
_BIS_SR(LPM0_bits+GIE);//進入低功耗0,使能總中斷,等待10AD完成

write_com(0x80+0x00);
for(num=0;num<5;num++)
{
write_data(table[dada[num]]);
delay(5);
}
_BIS_SR(GIE);
}

}





#pragmavector=TIMERA0_VECTOR//TA0中斷服務,用來參考穩(wěn)定
__interruptvoidta0_isr(void)
{
TACTL=0;//關TA
_BIC_SR_IRQ(LPM0_bits);//退出低功耗
}




#pragmavector=ADC10_VECTOR//ADC10中斷服務
__interruptvoidadc_isr(void)
{
_BIC_SR_IRQ(LPM0_bits);
ad_value=ADC10MEM/409.2;//保存AD結果
for(uchari=0;i<5;i++)
{
dada[i]=ad_value;
ad_value=ad_value-dada[i];
ad_value=ad_value*10;
}
_BIC_SR(GIE);
}


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉