Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000
int main(void)
{
int ENTRADA=3;
float RESULTADO=1;
int VOLTAJE_LEIDO;
int ENTERO;
int DECIMAL;
int DATO;
configura_ADC();
while(1)
{
DATO=LEER_ADC( ENTRADA);
DDRB=0XFF;
PORTB=DATO;
RESULTADO=(float)((float)DATO*5.0)/256.0; // CALCULO DEL VOLTAJE DE ENTRADA
por regla de tres
RESULTADO =RESULTADO*10.0;
VOLTAJE_LEIDO=(int)RESULTADO; //cast es la multipliación del resultado con
el (int) para encasillar los datos
ENTERO=(char)(VOLTAJE_LEIDO/10);
DECIMAL=(char)(VOLTAJE_LEIDO %10);
MUESTRA_EN_PUERTO_C( ENTERO);
MUESTRA_EN_PUERTO_D( DECIMAL);
}
}
void configura_puertos(void)
{
DDRC=0XFF; // como salida
DDRD=0XFF; //como salida
DDRA=0X00; // cono entrada
PORTA=0x00; // alta impedancia
}
char configura_ADC(void)
{
ADMUX=0X63; // voltaje de referencia,corrimieto izq y entrada 3
ADCSRA=0XA4; // auto tigger,sin interrupción y divisor de frec de
reloj de 16
SFIOR=SFIOR&(0X1F); // modo libre
}
{
;
}