Professional Documents
Culture Documents
Abstract — En el presente informe se detallará el Oscilador interno de 4MHz, externo hasta 20MHz
funcionamiento de un menú de control mediante pulsantes, el 2 Timer de 8bits
programa debe mostrar un menú de tres funciones, mediante el 1 Timer de 16 Bits
pulsante se debe seleccionar uno de los menús y con otro 32 instrucciones
pulsante ejecutar la función que en este caso es encender un Módulo de PWM
led. Módulo de CCP
Módulo ADC de 10 bits
Index Terms — Compilador, Microcontroladores, Pic,
Programación.
I. INTRODUCCIÓN
En este informe se programará en lenguaje C utilizando un
programa compilador para PIC. Hasta ahora es que los usuarios
que se inician en este apasionante mundo de la programación
de Microcontroladores, hay que conocer perfectamente los
recursos de cada Microcontrolador, es por eso que en esta
primera practica será se efectuará controlar el encendido de un
led utilizando el PIC16F877A.
II. OBJETIVOS
Realizar un menú de tres funciones para visualizar en LCD.
Encender un led dependiendo de la función seleccionada.
Fig. 2 Configuración de pines.
III. SUSTENTO TEÓRICO.
DISPLAY LCD 2X16
MICROCONTROLADOR PIC16F877A:
El proceso de visualización en la pantalla es regido por el
Este microcontrolador de 40 pines es uno de los más usados en controlador LCD HD44780. La pantalla es retro iluminada en
proyectos escolares cuenta con una gran cantidad de color azul y sus dimensiones son 6.5 cm x 1.6 cm y las de la
documentación en foros de internet y es en el cual también se tarjeta que la soporta son 8 cm x 3.6 cm x 1.2 cm.
basan una gran cantidad de libros.
Para visualizar todos los menús se hace uso del display LCD
2X16.
#include <16F876.h>
#fuses XT,NOWDT
#use delay(clock= 4000000)
#include <lcd.c>
#use standard_io(C)
#use standard_io(A)
Fig. 3 Circuito de la práctica
//#define use_port_b_lcd TRUE
Al presionar MENÚ y luego presionando SELECCIÓN
podemos encender el led INICIALIZAR. enum funciones {med,cal,ini};
void medir(void){
//algoritmo correspondiente
output_toggle(pin_C0);
}
void calibrar(void){
//algoritmo correspondiente
output_toggle(pin_C1);
}
void inicializar(void){
//algoritmo correspondiente
output_toggle(pin_C2);
Fig. 4 Condición 1
}
void run_func(int numfunc){
switch(numfunc){
case med:
medir();
break;
case cal:
calibrar();
break;
case ini:
inicializar();
Fig. 7 Circuito Físico
break;
} CIRCUITO EN FRITZING:
}
void main(){
char item;
char n_menus = 3;
// bit_set(TRISA,0);
lcd_init();
while (1) {
if (input(PIN_A0) == 1){
item++;
Fig. 4 Diseño del circuito en fritzing.
delay_ms(300);
lcd_putc('\f');
IV. CONCLUSIONES
}
En conclusión, se puede observar que el circuito y la
if (item > (n_menus-1)) { programación correspondiente cumplen con los objetivos
item = 0;} planteados al inicio del presente informe, dándonos cuenta
que con pocos elementos electrónicos y una programación
switch (item) { podemos realizar cosas interesantes como en el caso de esta
práctica propuesta.
case 0:
lcd_gotoxy(1,1); REFERENCIAS
printf(lcd_putc, "MEDIR"); [1] Compilador C Ccs Y Simulador Proteus Para Microcontroladores Pic.pdf
lcd_gotoxy(1,1); [2] http://cosasdeingenieria.com/esp/item/24/microcontrolador-pic16f877a
break; [3] https://sites.google.com/site/ielectrox/home/programas-1/pic-c-compiler
case 1:
printf(lcd_putc, "CALIBRAR"); V. BIOGRAFÍA
lcd_gotoxy(1,1);
break;
Joseph D. Guerra nació el 20 de febrero de
case 2:
1995, Riobamba, Ecuador. Realizó sus
printf(lcd_putc, "INICIALIZAR");
estudios secundarios en la Unidad Educativa
lcd_gotoxy(1,1);
Salesiana Santo Tomas Apóstol. Actualmente
break;
cursa Octavo ciclo de Ingeniería Eléctrica en
}
la Universidad de Cuenca.
if (input(PIN_A1) == 1)
{delay_ms(200);
run_func(item);
Christian F. Estrella nacido en Cuenca. Sus
}
estudios primarios los realizó en la escuela
}
superior LUIS CORDERO CRESPO. Sus
}
estudios secundarios los realizó en el colegio
nacional técnico GUILLERMO MENSI
CIRCUITO FÍSICO:
obteniendo el bachillerato técnico en
mantenimiento de máquinas y motores
eléctricos y actualmente sus estudios universitarios los realiza
en la UNIVERSIDAD DE CUENCA en la Carrera de Eléctrica
de la Facultad de Ingeniería cursando el Octavo ciclo .