Professional Documents
Culture Documents
En este laboratorio el estudiante realizar el primer proyecto con PICs. 2. Equipos necesarios:
Computador de escritorio. 3. 3.1. Pasos a seguir Creacin de un nuevo proyecto a) Cree un nuevo proyecto en MPLAB con el nombre leds. El cdigo del proyecto es el siguiente.
/* Include segun el microcontrolador */ #include <p18f2431.h> /* configuracion de los registros */ #include "config_p18f2431.h" /* programa principal */ void main(void){ /* configurar como entradas/salidas digitales */ ANSEL0=0x00; /* puerto A todos son entrada */ TRISA=0xFF; /* puerto B todos son salidas */ TRISB=0X00; /* valor inicial del puerto B */ /* salidas a cero, leds apagados */ LATB=0x00; /* ciclo eterno ... */ while(1){ /* leer el puero RA0 */ if (PORTAbits.RA0 == 1){ /* pin RA0 en 5V, apagar los leds */ LATB = 0x00; } else { /* pin RA0 en 0V, prender los leds */ /* prender los puertos RB0 a RB3 */ LATB = 0x01; Delay10KTCYx(10); LATB = 0x03; Delay10KTCYx(10); LATB = 0x07; Delay10KTCYx(10); LATB = 0x0F; Delay10KTCYx(10); } /* end if */ } /* end while */ } /* end main */
LP XT HS External RC, RA6 is CLKOUT EC, RA6 is CLKOUT EC, RA6 is I/O HS-PLL Enabled External RC, RA6 is I/O Internal RC, RA6 & RA7 are I/O Internal RC, RA6 is CLKOUT, RA7 is I/O External RC, RA6 is CLKOUT External RC, RA6 is CLKOUT
Disabled Enabled
Disabled Enabled
Enabled Disabled
Disabled Enabled
/* Watchdog Timer: WDTEN = OFF WDTEN = ON */ #pragma config WDTEN = OFF /* Watchdog Timer Enable Window: WINEN = ON WINEN = OFF */ #pragma config WINEN = OFF /* Watchdog Postscaler: WDPS = 1 WDPS = 2 WDPS = 4 WDPS = 8 WDPS = 16 WDPS = 32 WDPS = 64 WDPS = 128 WDPS = 256 WDPS = 512 WDPS = 1024 WDPS = 2048 WDPS = 4096 WDPS = 8192 WDPS = 16384 WDPS = 32768 */ #pragma config WDPS = 32768 /* Timer1 Oscillator MUX: T1OSCMX = OFF T1OSCMX = ON */ #pragma config T1OSCMX = ON /* High-Side Transistors Polarity: HPOL = LOW HPOL = HIGH */ #pragma config HPOL = HIGH /* Low-Side Transistors Polarity: LPOL = LOW LPOL = HIGH */ #pragma config LPOL = LOW /* PWM output pins Reset state control: PWMPIN = ON PWMPIN = OFF
Disabled Enabled
Enabled Disabled
1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 1:512 1:1024 1:2048 1:4096 1:8192 1:16384 1:32768
Active Inactive
Enabled Disabled
Disabled Enabled
Disabled Enabled
Disabled Enabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
Enabled Disabled
e) Ejecute la simulacin en Proteus f) Observe y describa el comportamiento. 3.2. Explicacin del cdigo
El archivo config_p18f2431.h es autoexplicativo, por lo que se recomienda su lectura. Las siguientes lneas de cdigo estn relacionadas con la configuracin de los pines del microcontrolador. El registro ANSEL0 est relacionado con la configuracin del puerto A, los otros registros de este puerto son: PORTA, LATA, TRISA, ANSEL0 y ANSEL1. Tanto ANSEL0 como ANSEL1 definen si los pines del puerto se comportan como entrada/salida digital o como entrada anloga. La definicin de ANSEL0 y ANSEL1 es.
/* configurar como entradas/salidas digitales */ ANSEL0=0x00; /* puerto A todos son entrada */ TRISA=0xFF; /* puerto B todos son salidas */ TRISB=0X00; /* valor inicial del puerto B */ /* salidas a cero, leds apagados */ LATB=0x00;
Si el bit relativo con el puerto es 0 se considera que el pin es entrada/salida digital por el contrario si es 1 se considera que es entrada anloga. El registro TRISA se encarga de definir la direccin de pin configurado como entrada/salida digital. Si el bit es 1 se considera el pin como entrada digital y si es 0 el pin es una salida digital. El registro LATA se encarga de sefinir la salida de un pin configurado como salida digital. Un 1 significa que el pin emite un voltaje de 5V, un cero hace que el pin se coloqu en 0V. El registro PORTA por otro lado contiene la entrada de un pin configurado como entrada digital. Un 1 significa que al pin le llegan 5V, un cero es que el pin se encuentra a 0V. El puerto B por otro lado, se configura con los registro PORTB, LATB yTRISB. Como el pin no tiene entradas anlogas no posee un registro ANSEL.
En esta seccin del cdigo se ingresa a un bucle eterno, definido por un while(1), el cual hace que todas las instrucciones que siguen a continuacin se repitan de forma indefinida. Esto es comn en la programacin de microcontroladores, algo diferente a los programas en PC. La lgica del programa consiste en la lectura del pin RA0 donde se encuentra ubicado un pulsador. Si el pin esta activo significa que el pulsador no se ha presionado, por lo que no procede con la encendida de los leds. Cuando se presione el pulsador, el voltaje del pin RA0 baja a 0V y comienza el proceso de encendido de los leds usando el registro LATB. Para que el usuario vea cmo cambian los leds se utiliza la funcin de demora Delay10KTCYx la cual hace que se demore diez mil ciclos de reloj del PIC por cada valor ingresado, es decir en el caso de Delay10KTCYx(10) se demora 100.000 ciclos de reloj. 3.3. Actividad Independiente a Realizar
Modifique el programa de manera que los LEDs prendan y apaguen de forma secuencial. Posteriormente que sean dos frecuencias de encendido y apagado, una cuando el botn no est presionado y otra cuando se presione.