MECANICA Y ELECTRICA UNIDAD ZACATENCO INGENIERIA EN COMUNICACIONES Y ELECTRONICA
MICROCONTROLADORES
PRÁCTICA 4 LED’S PROGRAMADOS EN PIC18F4550
PROCEDIMIENTO Se creó nuevo proyecto y nuevo archivo.c Se realizó la configuración de la velocidad del Pic a 5 MHz. Se configuraron los bits FOSC = HS, BOR = OFF, WDT = OFF y PBADEN = OFF. Se generó el código de bits modificados. Se agregó el siguiente código: /* * File: Practica04-LCD.c * Author: gaby * * Created on 14 de febrero de 2019, 07:31 */ /* Bits de configuración */ // CONFIG1 #pragma config PLLDIV = 1 #pragma config CPUDIV = OSC4_PLL6 #pragma config USBDIV = 1 #pragma config FOSC = HS #pragma config FCMEN = OFF #pragma config IESO = OFF // CONFIG2 #pragma config PWRT = OFF #pragma config BOR = OFF #pragma config BORV = 3 #pragma config VREGEN = OFF #pragma config WDT = OFF #pragma config WDTPS = 32768 // CONFIG3H #pragma config CCP2MX = ON #pragma config PBADEN = OFF #pragma config LPT1OSC = OFF #pragma config MCLRE = ON // CONFIG4L #pragma config STVREN = ON #pragma config LVP = OFF #pragma config ICPRT = OFF #pragma config XINST = OFF // CONFIG5 #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF #pragma config CPB = OFF #pragma config CPD = OFF // CONFIG6 #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT2 = OFF #pragma config WRT3 = OFF #pragma config WRTC = OFF #pragma config WRTB = OFF #pragma config WRTD = OFF // CONFIG7 #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF #pragma config EBTRB = OFF /*Finaliza Bits de configuración*/ //Importante definir la frecuencia para ocupar __delay(milisegundos) #define _XTAL_FREQ 20000000 #include <xc.h> void main(void) // La función main en el uso con microcontroladores { // no acepta ni entrega argumentos. /*Inicializacion del puerto A del microcontrolador. Cuando el microcontrolador regresa de un reset, envía las terminales de PORTA a ser analógicas, por eso debemos configurarlas para que sean salidas digitales*/ ADCON1=0x0F; // Inhabilitamos al convertidor AD CMCON=0x07; // Inhabilitamos los comparadores asociados al puerto A TRISA=0x7C; // Las terminales RA0 y RA1 son declaradas salida digital, las otras son entrada. LATA=0x03; // Valor inicial para verificar cambios y colocado en las terminales de PORTA, uso de lógica positiva /*Inicializacion del puerto D del microcontrolador. Todas las terminales de PORTD son digitales, sólo hay que definir si son terminales de entrada o salida*/ TRISD=0x00; // Todas las terminales (RD7 ? RD0) son declaradas terminales de salida digital LATD=0xFF; // Valor inicial para verificar cambios y colocado en las terminales de PORTD, uso de lógica positiva while (1) // Siempre debemos saber qué está haciendo el { // microcontrolador. //Enviamos los valores 0x30, 0x30, 0x30, 0x38, 0x0F LATD=0x30; __delay_ms(500); LATAbits.LA0=0; //RA0 será la terminal RS del LCD así que 0x30 será considerado un comando __delay_ms(500); LATD=0x30; __delay_ms(500); LATAbits.LA0=0; //RA0 será la terminal RS del LCD así que 0x30 será considerado un comando __delay_ms(500); LATD=0x30; __delay_ms(500); LATAbits.LA0=0; //RA0 será la terminal RS del LCD así que 0x30 será considerado un comando __delay_ms(500); LATD=0x38; __delay_ms(500); LATAbits.LA0=0; //RA0 será la terminal RS del LCD así que 0x38 será considerado un comando __delay_ms(500); LATD=0x0F; __delay_ms(500); LATAbits.LA0=0; //RA0 será la terminal RS del LCD así que 0x0F será considerado un comando __delay_ms(500); } return; }
Realizamos las debidas conexiones en el protoboard (led’s, resistencias y desde
RD0 a RD7 del pic a las resistencias del protoboard). Para el cálculo de los valores de las resistencias, se realizó lo siguiente: Valor de voltaje para led verde: 2.1V. Valor de voltaje entregado en las terminales del pic: 5V. Corriente del pic: 15mA. 𝑉 5𝑉 − 2.1𝑉 𝑅= = = 193.33Ω 𝐼 15𝑚𝐴 Valor obtenido no comercial. Colocamos 220Ω. Cargamos el código al pic mediante un software.