Está en la página 1de 3

UNIVERSIDAD DE LA COSTA CUC

DEPARTAMENTO CIENCIAS DE LA COMPUTACIÓN Y ELECTRÓNICA


SISTEMAS EMBEBIDOS 1 – GUÍA DE LABORATORIO 1

Integrantes Identificación Fecha

Esta primera experiencia de laboratorio tiene como objetivo general conocer y familiarizarse con el entorno de
desarrollo para Microcontroladores PIC MPLAB, conocer la estructura básica de un programa assembly e identificar las
principales características de PIC16F84A.

Para el desarrollo de esta guía es necesario la lectura de los materiales de clase disponibles en la plataforma virtual, así
como la revisión de bibliografía indicada en el plan de asignatura.

Elementos necesarios

 Programa Hello_World.asm
 Data Sheet PIC16F84A (descargar la última versión desde la página de Microchip)
 IDE PROTEUS
 IDE MPLAB X

Instrucciones de carga y salto en función de un bit

Instrucción Acción Ejemplo


CLRW Borra el contenido de W 0  (W)
CLRF Borra el contenido de F 0  (F)
MOVLW 0X5A Carga el literal en el L(W)
registro W
MOVF F,d Carga el contenido de F MOVF Reg,1
donde indique d. d=1; (Reg)(Reg)
d=1;
d=0; MOVF Reg,0
d=0; (Reg)(W)

BCF (Reg,b) Coloca en 0 el bit BCF STATUS,5


indicado por b del Reg. El bit 5 de STATUS pasa a ser 0.
BSF (Reg,b) Coloca en 1 el bit BSF STATUS,5
indicado por b del Reg. El bit 5 de STATUS pasa a ser 1.
GOTO “ETIQUETA” Instrucción de salto
hacia donde indique la
etiqueta.
BTFSS (Reg,b) Salta una instrucción si VERIFICO BTFSS PORTA,2
el bit a evaluar está en GOTO VERIFICO
1, si no, ejecuta la BSF PORTB, LED
instrucción siguiente.
BTFSC (Reg,b) Salta una instrucción si VERIFICO BTFSC PORTA,2
el bit a evaluar está en GOTO VERIFICO
0, si no, ejecuta la BSF PORTB, LED
instrucción siguiente.
UNIVERSIDAD DE LA COSTA CUC
DEPARTAMENTO CIENCIAS DE LA COMPUTACIÓN Y ELECTRÓNICA
SISTEMAS EMBEBIDOS 1 – GUÍA DE LABORATORIO 1

Directivas

CBLOCK: reserva posiciones de memoria específicas o registradores de forma consecutiva.

List P=<referencia del micro>: indica el tipo de microcontrolador a utilizar.

Include <P”referencia_del_micro”.INC>; señala el fichero donde se localizan las etiquetas que nombran a los
diferentes registros y el valor que le corresponde a cada uno.

EQU: <Label> EQU (expr); se utiliza para establecer constantes, van al inicio del programa.

END: indica cuando el ensamblador debe detenerse.

__Config, Indica la configuración elegida para el proceso de grabación del microcontrolador. En este caso, se
habilitan los siguientes bits de configuración:

 No hay protección de código (_CP_OFF).


 No se habilita el watchdog timer (_WDT_OFF).
 Se habilita el reset mediante Power-Up Timer (_PWRTE_ON).
 Se utiliza el oscilador por cristal de cuarzo (_FOSC_XT).
 El __Config se inicia con dos guiones bajos.

El Hola Mundo en Assembly

En términos generales, todo programa en assembly sigue la estructura


resumida en el diagrama de flujo de la derecha.

Podemos notar que una parte importante de todo programa es la


configuración de los puertos del PIC, que debe ser realizada después de
definir las directivas de configuración, librerías, macros, definición de
constantes y posterior al comando MAIN_PROG CODE en el archivo fuente
del proyecto.

En este primer laboratorio examinaremos y modificaremos el programa más básico que


se puede realizar en assembly (encender y apagar un led), el “Hola Mundo” de los microcontroladores.

1. En un nuevo proyecto de MPLAB, adicione como archivo fuente el programa Hello_World.asm suministrado
junto a esta guía de laboratorio o copie el contenido a un archivo fuente en blanco dentro del proyecto. Antes
de proseguir, analice el programa. Compile el proyecto y verifique que no haya errores.

1.1 ¿Qué tipo de registradores está asignando la directiva CBLOCK? ¿Cuáles son estos?
1.2 En la subrutina DELAY, ¿qué hace la instrucción DECFSZ? Explique su funcionamiento.
1.3 A partir del datasheet del microcontrolador, indique cuáles son los tipos de reset que tiene el PIC16F84A y
explique los dos principales.
1.4 De acuerdo con el datasheet del PIC16F84A, explique lo que hace el bit de configuración PWRTE y cómo
funciona el Power-Up Timer (PWRT).
UNIVERSIDAD DE LA COSTA CUC
DEPARTAMENTO CIENCIAS DE LA COMPUTACIÓN Y ELECTRÓNICA
SISTEMAS EMBEBIDOS 1 – GUÍA DE LABORATORIO 1

2. A partir del proyecto compilado y verificado en el punto 1, exporte el archivo hexadecimal y cargue el mismo en
un circuito en PROTEUS para su simulación. El circuito para la simulación debe ser similar al esquemático de la
figura abajo. Ejecute la simulación y verifique que no haya errores.

2.1 M
o
d
i
f
i
q
u
e este circuito para que el PIC tenga un
reset con pulsador. Teniendo en cuenta
las configuraciones pull-up y pull-down
de resistores de la imagen anterior. Pruebe la solución y a su respuesta adicione una imagen del circuito
modificado durante la simulación.

2.2 Realice las modificaciones necesarias en el programa y en la simulación para controlar 8 leds de forma
simultánea, distribuidos entre los pines del Puerto B y con la misma secuencia de encendido y apagado
anterior. Pruebe su propuesta, adicione a la respuesta una imagen del circuito modificado durante la
simulación y el código assembly del nuevo programa.

2.3 Si se requiere apenas encender y apagar un led conectado en el pin RB0 de PORTB utilizando un pulsador o
interruptor, ¿cómo sería el respectivo código assembly?

También podría gustarte