Tutorial microontroladores PIC.
Tutorial Microcontrolador PIC.
Segunda parte.
 
         Para comenzar a trabajar con el programa MPLAB debemos simplemente abrir un nuevo archivo en la ventana File opción New como muestra la imagen 1.

                Nota: El MPlab es un programa, no es inteligente y no sabe que hacer por si solo. Es mas, les debemos dar las ordenes una a una y muy bien explicadas para que este las entienda. Estas ordenes estarán acompañadas por parametros que le dirán a la máquina como se realizará esa taréa. De otra manera, esta no se ejecutará.

 

Comienzo
Fig. 1. Iniciando un nuevo programa.

        A continuación analizaremos las siguientes líneas:
 
 list              p=16f84
 #include     p16f84.inc

port_a         equ     5
port_b         equ     6
trisb             equ     86
trisa             equ     85
estado         equ     3

valor1         equ        0C
valor2        equ         0D

 clrf             estado
 clrf             port_a
 bsf             estado,5             ;selección del banco 1
 movlw       0x19
 movwf       port_a
 clrf            port_b
 movlw       0x32
 movwf       port_b
 bcf            estado,5            ;selecciona el banco 0
 clrf            port_a
 clrf            port_b
Antes de analizar estas líneas debemos tener en claro los siguiente:
        para mantener un orden, se recomienda presionar la tecla TAB entre la instrucción y el parametro
 
        El símbolo de Punto y Coma " ; " indica el comienzo de un comentario, sirve para ubicarse mejor en el avance del programa y luego encontrar mas rápidamente una línea o bloque determinado.   Todo lo que siga a un " ; " no generará código hexagesimal en nuestro proyecto.    En pocas palabras, lo que siga al " ; " no influye en el programa.
            1.- Primero debemos especificar con que microcontrolador estamos trabajando, en las dos primeras líneas especificamos que vamos a trabajar con el PIC 16F84.

            2.- Luego definimos la posición en memoria de nuestros registros, el mapa de memoria lo presento en la figura 2:

Mapa de memoria
Figura 2: Mapa de memoria del PIC 16f84.

 Para comenzar destacaremos los registros:

PORTA           posición 05h
PORTB           posición 06h
TRISA             posición 85h
TRISB             posición 86h
STATUS         posición 03h
El registro STATUS que en este caso le hemos llamado "estado" se compone de la siguiente forma:
 
7
6
5
4
3
2
1
0
IRP 
RP1 
RP0 
TO 
PD 
DC 
 

            Si en la casilla 5 (RP0) del registro STATUS hay un CERO entonces estamos en el BANCO 0.

            Si en la casilla 5 (RP0) del registro STATUS hay un UNO entonces estamos en el BANCO 1.
 
     Desde la tercera a la septima línea definimos los nombres de nuestros registros, en el caso del Puerto A lo llamamos port_a - es importante que siempre que nos queramos referir al Puerto A lo hagamos en minúsculas, ya que aquí lo definimos así (PORT_A ¹ port_a) si en un principio se define con mayúsculas, siempre nos tendremos que referir a este con mayúsculas -

    Otro ejemplo, si en la tercera línea en lugar de "port_a equ 5" colocamos "hola equ 5" cada vez que queramos referirnos al Puerto A debemos hacerlo como "hola".

        En la octava y novena línea, definimos nuestro registros personales, los que vamos a ocupar en nuetro programa, según el mapa de memoria este comienza en la posición 0Ch.

    NOTA: Recuerden que todos los valores mencionados y que se mencionarán, están expresados en valores hexagesimales.

            El siguiente paso es definir los pines de entrada y salida, recordemos el ultimo bloque de nuestro programa:

clrf             estado                ; limpiar el registro estado
clrf             port_a                ; limpiar el puerto a
bsf             estado,5             ; selección del banco 1
Nota: La instrucción BSF (Bit Set f) carga un 1 en el registro (en este caso el registro estado) en el bit (en este caso el 5), como vimos anteriormente el registro estado al tener un 1 en el 5to bit, entonces estamos trabajando en el banco 1, esto para poder definir los pines de entrada o salida del micro.
movlw       0x19                   ;cargo un 11001 en el acumulador
movwf       port_a                ; muevo el contenido del acumulador
                                              ;al puerto a, defino los pines 0, 1 y 4
                                              ;como entrada y 2 y 3 como salida
Nota: El método para definir los pines del puerto b es exactamente el mismo
clrf            port_b                ;limpiar el puerto b
movlw       0x32                  ;cargo un 00110010 al acumulador
movwf       port_b               ; defino los pines 1, 4 y 5 como entrada y
                                            ;los 0, 2, 3, 6 y 7 como salida
bcf            estado,5             ;selecciona el banco 0
clrf            port_a                ; limpiar el puerto a
clrf            port_b               ; limpiar el puerto b
             En la siguiente parte, haremos un pequeño programa demostrativo y veremos como detectar errores y simularlo.
 
 Pagina anterior           
Volver                     Siguiente
 
 
 
 
 
By:    Alvaro A. Vera Sch.