Lab02 MPlab y LenguajeProgramacion-1
Lab02 MPlab y LenguajeProgramacion-1
Lab02 MPlab y LenguajeProgramacion-1
Laboratorio N°2
Objetivos
Introducción
Preparación
Equipos y Materiales
● Computadora
● Software de desarrollo
● Proyector multimedia
● Texto del curso
● Manual del fabricante
● Tarjeta de desarrollo
Lab. N° 2 MPLAB y Lenguaje de Programación
Seguridad
Trabajar con Seguridad evita que las personas sufran daños, y provee un ambiente
satisfactorio de trabajo.
1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.
Procedimiento - PARTE I
¿Qué es MPLABX IDE?
MPLABX IDE es un software que corre en una PC para desarrollar aplicaciones para
microcontroladores y controladores de señal digital de Microchip. Es llamado como Entorno
de Desarrollo Integrado (IDE), para desarrollar códigos en sistemas embebidos.
1. Para hacer la simulación en el MPLAB primero vamos a crear un proyecto, seguimos
los siguientes pasos:
✓ Dar doble click sobre el ícono del MPLABX IDE v 3.5 o versión actualizada
✓ En la ventana Select Tool, seleccionamos Simulator, que servirá para poder realizar
pruebas en nuestro IDE, de lo contrario si se tiene un hardware, se selecciona el
hardware indicado y puede depurar en tiempo real.
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ Seleccionamos nuestro compilador el cual vamos a trabajar durante todo este curso
MPASM Next
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ Creamos una carpeta en el disco D, llamado “PIC16F877A_2019_2”, en Browse…
escoger la carpeta creada y abrir. Colocar el nombre del proyecto
LABORATORIO_PIC, el cual será nuestro proyecto durante todo el curso. Quedará de
la siguiente manera, como se muestra la figura de abajo y finalmente FINISH para
terminar nuestra creación del nuevo proyecto.
✓ Aparecerá una nueva ventana para escoger la extensión .ASM la cual se trabajará y
seleccionamos como sigue a continuación en la siguiente figura.
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ En el menú Window desplegar las siguientes ventanas para visualizar el trabajo interno
del PIC, sus configuraciones, registros y el tiempo que demoran las instrucciones.
Lab. N° 2 MPLAB y Lenguaje de Programación
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ Seguimos los mismos pasos del ítem anterior con nombre de ejercicio2 y lo agregamos
a nuestro proyecto.
Después agregar la programación respectiva que se muestra en la gráfica de abajo.
Luego ensamblar y verificar en los registros los resultados, también se tiene que comentar
cada línea de instrucción.
Lab. N° 2 MPLAB y Lenguaje de Programación
Ejercicio de clase
Diseñar un programa en clase que reste 2 números y si el resultado es positivo, en el
registro 22H de la memoria que grabe el número 1, si el resultado es ‘0’ que grabe el 2 y si
es negativo que grabe el número 3.
Diagrama de flujo
PROCEDIMIENTO – PARTE II
Forma de operar:
Lab. N° 2 MPLAB y Lenguaje de Programación
Valor 1 Valor 2
Resultado
Se observa que pasa el literal, que viene con la instrucción, al ALU y junto con un valor
proveniente del registro de trabajo W se operarán y el tipo de operación que realizará el
ALU a depender de lo que contenga el código de operación de la instrucción. Una vez que
se lleva a cabo la operación, el resultado se guarda por defecto en el registro de trabajo W.
El valor inicial que contenía W es reemplazado, “chancado”, por el nuevo resultado de la
operación dada.
La imagen siguiente nos servirá para representar el proceso de operar con la memoria de
datos en el cual se pueden leer los datos como también escribir.
Lab. N° 2 MPLAB y Lenguaje de Programación
Copiar el siguiente programa en el MPLAB, analizar y simular paso a paso:
List P=16F877A
INCLUDE<P16F877A.INC>
ORG 0000h
NOP ;no operación
MOVLW .45 ;W=
MOVWF REGISTRO1 ;[Memoria1]=
MOVLW .34 ;W=
MOVWF REGISTRO2 ;[Memoria2]=
MOVLW .20 ;W=
MOVWF REGISTRO3 ;[Memoria3]=
NOP ;no operación
MOVF REGISTRO2,0 ;W=
ADDWF REGISTRO1,0 ;W=
MOVWF REGISTRO3 ;[Memoria3]=
COMF REGISTRO3,0 ;negación bit a bit, W=
MOVWF REGISTRO1 ;[Memoria1]=
MOVF REGISTRO2,0 ;W=
SUBWF REGISTRO3,0 ;W=
MOVWF REGISTRO2 ;[Memoria2]=
SWAPF REGISTRO2,1 ;intercambio de nibbles[Memoria2]=
NOP ;no operación
NOP ;no operación
GOTO $
END
Son instrucciones que van a forzar el valor de un bit, quiere decir que el valor del bit es
cero o bien uno.
Lab. N° 2 MPLAB y Lenguaje de Programación
;***********************************************************
;Operaciones con instrucciones de manipulación de bits
;Programación y aplicaciones PIC16F877A
;***********************************************************
List P=16F877A
INCLUDE<P16F877A.INC>
org 0000h
;----------------------------------------------
;carga valores a los registros
Inicio
clrf Registro1 ;[Registro1]=
movlw 0xff
movwf Registro2 ;[Registro2]=
;----------------------------------------------
;Manipulación de bits de los registros
bsf Registro1,0 ;[Registro1]=
bcf Registro2,7 ;[Registro2]=
btfss Registro1,7
clrf Registro1
goto Inicio
end
Modelo de Informe
Carátula
Fundamento Teórico
Deberá ser conciso y redactado con lenguaje propio. Estará basado en las lecturas recomendadas o
cualquier otra información relacionada con el tema. En cualquier caso no será mayor de tres (03)
páginas.
1. Los datos, tablas, resultados de los programas y respuestas a las preguntas que se
soliciten en el procedimiento.
Lab. N° 2 MPLAB y Lenguaje de Programación
2. Los programas deberán contar con líneas de comentarios
3. Deberá acompañarse al programa, el diagrama de flujo del mismo.
Observaciones y Conclusiones
Aplicación de lo aprendido
GRUPO_1 Diseñar un programa en el cual se guarden 3 números, se comparen y ordenarlos del
menor al mayor en 3 registros de la Memoria de Datos (SRAM).
GRUPO_2 Diseñar un programa que sumen 3 números, almacene en un registro de la
memoria de Datos, luego invertir los nibles del resultado, que el resultado
quede en el registro WREG.
GRUPO_3 Diseñar un programa que RESTE 2 números, si el resultado es menor que cero
guardar el resultado en el registro 20h, si es cero en el registro 21h y si es
mayor en el 22h.
GRUPO_4 Diseñar un programa que ingresen 2 números, estos se sumen y luego los
complementen, para posteriormente rotar a la izquierda 5 veces.
Observaciones Generales