Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Alumno:
Cdigo:
1223210038
Curso: Microcontroladores
Facultad: Ingeniera elctrica y electrnica.
Escuela: Ingeniera electrnica.
2015 B
PROBLEMA N1
1
MICROCONTROLADORES
#include "avr_compiler.h"
#include "lcd.h"
void delay_ms(unsigned int t)
{
while (t--)
delay_us(1000);
}
int main(void)
{
lcd_init(); // Inicializar LCD
while(1){
if(!(PIND&(1<<PIND0)))// solo mostrara el letrero cuando PD0 sea 0
{
lcd_gotorc(1,5); // Cursor a fila 1 columna 5
lcd_puts("UNAC-FIEE"); // Muestra Mensaje
lcd_gotorc(2,5); // Cursor a fila 2 columna 5
lcd_puts("MICRO-ATMEGA8"); // Muestra mensaje
}
}
}
else // caso contrario en ellcd no habra nada
{
lcd_clear(); // limpiar el lcd
}
MICROCONTROLADORES
PROBLEMA N2
a)
#include "avr_compiler.h"
#include "lcd.h"
void adc_setup(void);
unsigned int adc_read(char channel2);
int main(void)
{
char cadena[14], cadena2[14]; //usamos 2 cadenas
int n,vol1,vol2; // n , vol1 y vol2 son enteros
float vol; // vol es
lcd_init(); //iniciamos el lcd
adc_setup(); // llamamos adc_setup
lcd_gotorc(1,1); //seleccionamos la posicion en el lcd (fila 1 columna1)
lcd_puts("ADC:"); // escribimos ADC
lcd_gotorc(2,1); //seleccionamos la posicion en el lcd (fila 2 columna1)
lcd_puts("voltaje:"); // escribimos voltaje
while(1) //bucle infinito
{
n=adc_read(0); // tomamos el valor digital
vol=n*5.0/1023;
vol1=vol;
vol2=(vol-vol1)*100;
sprintf(cadena,"%0004u",n);
lcd_gotorc(1,11);
lcd_puts(cadena);
sprintf(cadena2,"%d.%02d v.",vol1,vol2);
lcd_gotorc(2,11);
lcd_puts(cadena2);
}
}
void adc_setup(void)
{
ADMUX=(1<<REFS0); //ASIGNAMOS EL VOLTAJE DE REFERENCIA
ADCSRA=(1<<ADEN)|(1<<ADPS0)|(ADPS1)|(ADPS2); //
HABILITAMOS EL MODULO ADC Y LA PRESCALA=128
}
unsigned int adc_read(char channel2)
{
channel2=2; // usaremos el canal 2 del adc
ADMUX|=channel2;
ADCSRA|=(1<<ADSC); // conversion simple
while(!(ADCSRA&(1<<ADSC))); //espera que termine la conversion
return (ADC);
}
b)
MICROCONTROLADORES
c)
ADC =
V Vref
10241
d)
ADCSRA. Es el principal registro de control y estado del ADC. Manipulando
los bits de este registro iniciamos la conversin, establecemos la velocidad
de conversin o elegimos el formato del resultado de la conversin.
Veremos los detalles en adelante.
e)
Se selecciona el reloj del conversor ADC, con los bits ADPS2:ADPS0.
f)
Se selecciona el canal o los canales de entrada del ADC, con los bits
MUX4:MUX0.
g)
Se encendie el mdulo ADC, seteando el bit ADEN.
h)
Se inicia la conversin, seteando el bit ADSC.
MICROCONTROLADORES