examen final de microcontroladores pic ii

4
EXAMEN FINAL DE MICROCONTROLADORES PIC NIVEL II : PROGRAMACION EN LENGUAJE C 1. Diseñar un terminal de control basado en la comunicación UART del microcontrolador PIC16F877A. Cuando se energice el sistema se debe levantar el menú principal con una tabla de 5 comandos como el mostrado en la Fig.1 Fig.1 Menú Principal de comandos Cada comando es ejecutado al escribir el número correspondiente sobre el terminal, y es detallado de la siguiente manera: LEER DATOS EEPROM: Al digitar ‘1’ el PIC debe leer un mensaje pregrabado en la memoria EEPROM 24LC64 (tome el sgte. mensaje “CURSO PIC EN C”) y guardarlo en un arreglo interno. Al final la lectura debe aparecer en el terminal: “MENSAJE ENVIADO”.

Upload: deyvi-michael

Post on 27-Oct-2015

204 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Examen Final de Microcontroladores Pic II

EXAMEN FINAL DE MICROCONTROLADORES PIC

NIVEL II : PROGRAMACION EN LENGUAJE C

1. Diseñar un terminal de control basado en la comunicación UART del microcontrolador PIC16F877A. Cuando se energice el sistema se debe levantar el menú principal con una tabla de 5 comandos como el mostrado en la Fig.1

Fig.1 Menú Principal de comandos

Cada comando es ejecutado al escribir el número correspondiente sobre el terminal, y es detallado de la siguiente manera:

LEER DATOS EEPROM: Al digitar ‘1’ el PIC debe leer un mensaje pregrabado en la memoria EEPROM 24LC64 (tome el sgte. mensaje “CURSO PIC EN C”) y guardarlo en un arreglo interno. Al final la lectura debe aparecer en el terminal: “MENSAJE ENVIADO”.

Fig.2 MENSAJE ENVIADO

MOSTRAR DATOS: Al digitar ’2’ el PIC debe enviar el mensaje leído hacia el LCD.

Page 2: Examen Final de Microcontroladores Pic II

Fig.3 Mostrar mensaje en el LCD

LEER VOLTAJE Y TEMPERATURA: Al digitar ‘3’ se debe hacer la lectura de un potenciómetro y un termistor LM35 conectados a los pines RA0 y RA1 respectivamente, y luego enviarlos al terminal, enviar un ENTER, y luego cada segundo repetir el proceso, por lo cual las lecturas siempre deben actualizarse a cualquier cambio externo.

Fig.4 Lectura de Voltaje y Temperatura

LEER RTC: Al digitar ‘4’ se debe leer el RTC DS1307 cada segundo y enviar la fecha en formato HORA:MINUTO:SEGUNDO a la segunda línea de la pantalla LCD. Esto debe actualizarse cada segundo. Al inicio del programa debe setearse una fecha inicial.

Fig.5 Lectura del RTC DS1307

Page 3: Examen Final de Microcontroladores Pic II

DESPLAZAR LEDS: Al digitar ‘5’ se debe realizar un desplazamiento de los leds del puerto B de derecha a izquierda cada 250ms utilizando para ello el timer0 y su interrupción respectiva. Se debe verificar que al ejecutarse la secuencia puede ser interrumpida por otro comando y cuando se vuelva a digitar el ‘5’ se reanuda la secuencia. En caso se complique este caso hacerlo sin interrupción, o en último caso hacerlo en base a los delay_ms predefinidos

Fig.6 Desplazamiento de leds

SUGERENCIA: Empezar desarrollando cada caso de forma independiente y luego para la selección de los comandos utilizar la sentencia switch(comando) y en cada case debe ser ejecutado los procesos después de haberse leído el dato por el puerto serial.

Ejm: Iniciar practicando el encendido de un led con un comando y el apagado del led con otro.

#INT_RDAvoid serial(){

if(kbhit()==1){comando=getc();flag=1;}

}

void main(){while(1){

if(flag==1){switch(comando){case ‘1’ : PINB0=1; flag=0;break;case ‘2’ : PINB0=0; flag=0;break; }

}}}

" It chases your dreams, because they are the way of your real happiness "