|
下面是我程序的主函数,我用g2553调试AD并在5110上显示;
这里面寄存器相对于149啥的变化真不少,麻烦大家前来指正,不吝赐教!
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
sysclk_int();
_EINT();
LCD_init();
P1SEL|=0x03; //选择采样通道
ADC10CTL0&=~ENC;
ADC10CTL0|=ADC10ON+ADC10SHT_2+MSC+REF2_5V+REFON+ADC10IE;//打开AD模块,参考电压2.5V。
ADC10CTL1=CONSEQ_3+INCH_1+INCH_0;//采样保持的信号源,最大通道A1
ADC10DTC1|=0x08;//8次
ADC10AE0|=BIT0+BIT1;//+BIT2+BIT3
LCD_write_english_string(0,0,"A0:");//P1.0
LCD_write_english_string(0,1,"A1:");//P1.1
// LCD_write_english_string(0,2,"A2:");//P1.2
// LCD_write_english_string(0,3,"A3:");//P1.3
_BIS_SR(LPM0_bits+GIE);//低功耗模式0,开中断
while(1)
{
ADC10CTL0&=~ENC;//关闭采样使能
while(ADC10CTL1&BUSY);//检测AD是否繁忙
ADC10CTL0|=ENC+ADC10SC;//启动ADC
ADC10SA=(unsigned int)a;//
_BIS_SR(LPM0_bits+GIE);//低功耗模式0,开中断
for(i=0;i<2;i++)
{
ave=0;
for(j=0;j<4;j++)
ave+=a[i+j*2];
}
for(i=0;i<2;i++)
{
ave=ave/4;
_NOP();
_NOP();
}
Disp_ADResult(0);
Disp_ADResult(1);
// Disp_ADResult(2);
// Disp_ADResult(3);
}
}
|
|