Adc
Adc
#include <xc.h>
//Prototipos
void init_ADC(void);
unsigned int read_ADC(void);
void display_voltage(unsigned int value);
//Configuración inicial
void init_ADC(void) {
ADCON0 = 0b00000001; //Canal AN0, encender ADC
ADCON1 = 0b00001110; //AN0 como entrada analógica
ADCON2 = 0b10101001; //Justificación derecha, FOSC/8, 2TAD
}
PORTD = segment[mil];
PORTC = 0b10000000;
__delay_ms(10);
PORTD = 0xFF;
PORTD = segment[cen];
PORTC = 0b00000100;
__delay_ms(10);
PORTD = 0xFF;
PORTD = segment[dec];
PORTC = 0b00000010;
__delay_ms(10);
PORTD = 0xFF;
PORTD = uniseg[uni];
PORTC = 0b00000001;
__delay_ms(10);
PORTD = 0xFF;
}
void main(void) {
TRISA = 0x01; //AN0 como entrada
TRISC = 0x00; //Puerto C como salida (para segmentos)
TRISD = 0x00; //Puerto D como salida (para segmentos)
while (1) {
unsigned int adc_value = read_ADC(); // eer el ADC
display_voltage(adc_value); //Mostrar voltaje en displays
}
}