Cómo el microcontrolador STC89C51 utiliza la conversión AD interna
ADC_CONTR=ADC_CONTR|0X80; //10000000 enciende la fuente de alimentación de conversión
Delay1ms(1. ); //Retraso, espera a que se estabilice la fuente de alimentación interna
//P1M0=P1M0|0X07; //Establece el canal donde se encuentra p1.0. 0 Los canales donde se encuentran P1.1 y p1.3 están configurados en modo abierto/drenaje
//P1M1=P1M1|0X07;
ADC_CONTR=0xe0; //11100000 Gire en P1, inicia la conversión
Delay25us(10); //Retrasa un final del tiempo para estabilizar el voltaje de entrada
ADC_DATA =0x00; registro de resultados de conversión
p>ADC_LOW2 =0x00;
ADC_CONTR |= 0x08; //ADC_START=1, iniciar conversión
while(!(ADC_CONTRamp;0x10 )); //0001, 0000 Espere a que finalice la conversión A/D
temp1=ADC_DATA; //Lea el resultado de la conversión
temp1=ADC_LOW2;
El resultado final de la conversión es de 10 bits: advalue= temp1*4 temp2