描述:
uchar ch = 3;
P1M0 = 0x04; //P1.2设置为推挽,P1.3,P1.4高阻
P1M1 = 0x18;
/**********************************************
*****2ms秒@11.0592MHz********
***********************************************/
void Timer1Init(void) //2毫秒@11.0592MHz
{
AUXR |= 0x40; //定时器时钟1T模式
TMOD &= 0x0F; //设置定时器模式
TL1 = 0x9A; //设置定时初始值
TH1 = 0xA9; //设置定时初始值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1 = 1; //使能定时器0中断
}
/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
P1ASF = 0x18; //设置P1.3、P1.4为AD口
ADC_RES = 0; //清除结果寄存器
ADC_RESL = 0;
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2); //ADC上电并延时
}
/* Timer1 */
void Timer1Isr() interrupt 3
{
uint ADC_Value;
ADC_CONTR &= !ADC_FLAG; //清除ADC中断标志
ADC_Value = (ADC_RES<<2);
ADC_Value += ADC_RESL&0x3;
ch++;
if(ch >= 4)
{
ch = 3;
}
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
}
定时器中不判断ADC有没有转换完成?