Sei sulla pagina 1di 22

_

PROGRAMACIÓN DE MICROCONTROLADORES

IV Ciclo

Laboratorio N°2

MPLABX y Lenguaje de Programación


Lab. N° 2 MPLAB y Lenguaje de Programación

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

MPLABX y Lenguaje de Programación

Objetivos
1. Utilizar las instrucciones para programar al microcontroladorPIC16F877A
2. Utilizar software de desarrollo proporcionada por el fabricante
3. Utilizar módulo de desarrollo

Introducción
Los PICs constituyen en la actualidad una forma de proveer inteligencia a equipos o sistemas para
un mejor desempeño de los mismos. Esta alternativa de automatización se encuentra
prácticamente a la mano pues la información y herramientas de desarrollo son, en cierta medida,
proporcionadas por el fabricante. El campo de acción de los PICs va desde la activación o
desactivación de entradas o salidas en general hasta el procesamiento digital de señales pasando
por aplicaciones específicas como la conversión A/D, modulación PWM y muchas más.
Para que realicen los eventos que queramos es necesario programarlos insertándoles un lenguaje
apropiado, conformado por instrucciones, que estos puedan entender y por tanto realizar las tareas
específicas que se les asigna.

Preparación
Para la realización de este laboratorio se requiere la lectura previa de la información proporcionada
para el curso, como el texto y el manual del fabricante.

Equipos y Materiales

● Computadora
● Software de desarrollo
● Proyector multimedia
● Texto del curso
● Manual del fabricante
● Tarjeta de desarrollo

PAGE
\*
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.

Al trabajar en este laboratorio o taller y cualquiera de los subsiguientes, realice el siguiente


procedimiento:

1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.

2. En su estación de trabajo evalúe las condiciones de:


Orden y Limpieza.
Herramientas y equipos.

3. Realice su trabajo teniendo en cuenta:


Orden y limpieza.
Seguridad.
Proceda a realizar las conexiones de los equipos o implementación de los circuitos
comprobando que la línea eléctrica se encuentre desconectada.
Solicite visto bueno al profesor antes de aplicar energía eléctrica.

4. Realice el análisis de riesgo personal:


¿Qué es lo que voy a hacer?
¿Qué es lo que puede salir mal?
¿Qué debo hacer para que no salga mal?

5. Al terminar sus labores, deje su estación de trabajo en buenas condiciones:


Ordenado y limpio.
Seguro.
Desconecte el suministro de energía eléctrica.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
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

✓ Aparecerá la siguiente ventana:

✓ Hacer click en CREATE NEW.

✓ Aparece la siguiente ventana


Microchip Embedded  Standalone Project  Next

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

✓ En la ventana Select Device  All families  PIC16F877A Next

✓ 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.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

✓ Seleccionamos nuestro compilador el cual vamos a trabajar durante todo este curso
 MPASM Next

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ Creamos una carpeta en el disco D, llamado “PIC16F877A_2018_1”, 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.

✓ Para hacer el nuestro primer programa hacemos clic en NEW FILE

✓ 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.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

✓ Escribimos para nuestro primer programa el nombre “ejercicio1” y finish.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ Escriba el siguiente programa.
Mover 3 números del registro WREG a la memoria de datos, la cual sumaremos las tres
, y nuestro resultado quedará en un registro distinto de la memoria de datos.

✓ A continuación ensamblamos el proyecto, haciendo clic en el siguiente icono.

✓ Si el programa esta ok, saldrá el siguiente comando.

✓ Para simular nuestro programa.

✓ 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.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

2. Simulación de operaciones lógicas utilizando el registro W en el MPLAB

En el Ítem anterior se vio la manera de simular operaciones aritméticas y además se


enseñó a simular su comportamiento. Ahora se verá la simulación de operaciones
binarias, los procedimientos son los mismos con algunos cambios mínimos.

✓ Cerramos el archivo: ejercicio1.asm


✓ Removemos el archivo ejercicio1.asm del proyecto, para esto damos click derecho
sobre el archivo y en la menú desplegable damos click en Exclude file from current
configuration.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

✓ Luego abrimos un nuevo archivo para nuestro segundo ejemplo.

✓ 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.

En el siguiente programa se realizará instrucciones con operaciones lógicas e introducirnos en el


trabajo interno

del PIC16F877A..

Luego ensamblar y verificar en los registros los resultados, también se tiene que comentar
cada línea de instrucción.

PAGE
\*
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 son iguales que grabe el 2 y si es negativo que grabe el número
3.

3. Mostrar evidencias de ejecución de los programas de los ítems 1, 2 y el Ejercicio


de clase.

● Capturar ventanas que muestran el resultado de la creación del proyecto.


● Capturar ventanas que muestran el resultado del ensamblaje del proyecto.
● Capturar ventanas que muestren la simulación paso a paso.

PROCEDIMIENTO – PARTE II
1. Instrucciones con literales
Al hablar de literales, es hablar de datos de 8 bits que según el código de operación de la
instrucción hará que éstos se sumen, se resten o hagan operaciones lógicas trabajando en
conjunto con el registro de trabajo W que es un registro de 8 bits y sirve como soporte a las
operaciones del ALU.

Forma de operar:

Valor 1 Valor 2

Resultado

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

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.

Copiar el siguiente programa en el MPLAB, analizar y simular paso a paso:

LIST P=16F877A ;comentar


INCLUDE<P16F877A.INC> ;comentar
__CONFIG 3F32 ;comentar

CBLOCK 20H ;comentar


ENDC ;comentar
ORG 0 ;comentar
MOVLW B'01010101' ;comentar
ADDLW .30 ;comentar
ANDLW B'01010101' ;comentar
XORLW 0X21 ;comentar
IORLW .21 ;comentar
CLRW ;comentar
GOTO $ ;comentar
END

2. Instrucciones de acceso a la memoria de datos (F)


MOVF DireccF,d ; d <-[DireccF]
SWAPF DireccF,d ; d <-Intercambia nibbles[DireccF]
ADDWF DireccF,d ; d <-[DireccF]+ W
SUBWF DireccF,d ; d <-[DireccF]- W
INCF DireccF,d ; d <-[DireccF]+ 1
DECF DireccF,d ; d <-[DireccF]- 1
ANDWF DireccF,d ; d <-[DireccF]and W
IORWF DireccF,d ; d <-[DireccF] or W
XORWF DireccF,d ; d <-[DireccF] xor W
COMF DireccF,d ; d <-negación[DireccF]
RLF DireccF,d ; d <-rota izquierda[DireccF]
RRF DireccF,d ; d <-rota derecha[DireccF]
INCFSZ DireccF,d ; d <-incrementa y salta si es 0[DireccF]
DECFSZ DireccF,d ; d <-decrementa y salta si es 0[DireccF]

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.

PAGE
\*
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>

REGISTRO1 EQU 0X20


REGISTRO2 EQU 0X21
REGISTRO3 EQU 0X22

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]=

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
NOP ;no operación
NOP ;no operación
GOTO $
END

3. Instrucciones de manipulación de bits


Son instrucciones que van a forzar el valor de un bit,
quiere decir que el valor del bit es cero o bien uno.

Copiar el siguiente programa en el MPLAB y


simular paso a paso:

;***********************************************************
;Operaciones con instrucciones de manipulación de bits
;Programación y aplicaciones PIC16F877A
;***********************************************************

List P=16F877A
INCLUDE<P16F877A.INC>

Registro1 EQU 0X20


Registro2 EQU 0X21

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]=

bsf Registro1,1 ;[Registro1]=


bcf Registro2,6 ;[Registro2]=

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

bsf Registro1,2 ;[Registro1]=


bcf Registro2,5 ;[Registro2]=

bsf Registro1,3 ;[Registro1]=


bcf Registro2,4 ;[Registro2]=

bsf Registro1,4 ;[Registro1]=


bcf Registro2,3 ;[Registro2]=

bsf Registro1,5 ;[Registro1]=


bcf Registro2,2 ;[Registro2]=

bsf Registro1,6 ;[Registro1]=


bcf Registro2,1 ;[Registro2]=

bsf Registro1,7 ;[Registro1]=


bcf Registro2,0 ;[Registro2]=

btfss Registro1,7
clrf Registro1
goto Inicio

end

4. Mostrar evidencias de ejecución de los programas de los ítems 1, 2 y 3.

● Capturar ventanas que muestran el resultado de la creación del proyecto.


● Capturar ventanas que muestran el resultado del ensamble del proyecto.
● Capturar ventanas que muestren la simulación paso a paso.

Modelo de Informe

Deberá contener lo siguiente:

Carátula

1. Nombre del laboratorio


2. Nombres de los integrantes
3. Sección a la que pertenecen
4. Fecha de realización
5. Fecha de presentación

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.

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

Resultados del Laboratorio

Deberá contemplar lo siguiente:

1. Los datos, tablas, resultados de los programas y respuestas a las preguntas que se soliciten en
el procedimiento.
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

Serán únicamente referidas a la experiencia de laboratorio y redactadas en lenguaje propio.

Aplicación de lo aprendido
GRUPO_1 Diseñar un programa en el cual se ingresen 2 números (A y B), se comparen y según el
resultado en un registro de la RAM de Datos colocar de la siguiente manera:
Si: A>B =1; Si: A<B=2 y Si: A=B =3. Según corresponda.

GRUPO_2 Diseñar un programa que sume 3 números, almacene en un registro de la memoria de


Datos, luego rotar a la izquierda 2 veces y por último 3 veces a la derecha, el resultado
queda en el registro
GRUPO_3 Diseñar un programa que reste 2 números, luego el resultado complementarlo y realizar
una operación XOR con B'10101010’. El resultado queda en WREG.
GRUPO_4 Diseñar un programa que ingresen 2 números, realice una operación AND y luego una
IOR, para luego invertir los nibles del resultado, el cual se almacenarán en un registro
que se denominará ALMACENAMIENTO.
GRUPO_5 Diseñar un programa que sume 2 números y luego decrementar en 1 unidad,
almacenarlo en un registro, si el registro llega ser cero, entonces automáticamente
colocar en el registro el número 100.
GRUPO_6 Diseñar un programa que reste 2 números (Condición:A>B y el resultado menor que
128) y luego incrementar en 1 unidad, almacenarlo en un registro, si el registro llega ser
128, entonces automáticamente colocar en el registro el número 50.

PARA TODO LOS GRUPOS:


Realice un programa que se incremente en 1 el registro, pero cada 1 milisegundo, trabajar con el
STOPWATCH para visualizar los tiempos.

Observaciones Generales

1. La presentación del informe se realiza al ingresar al Laboratorio. En la clase siguiente a su


realización.
2. Se tomará en cuenta las reglas de ortografía en la redacción del informe.
3. La evaluación se realizará del siguiente modo.

Programación de Microcontroladores Sección


Curso:
Lab. No: 01 Mesa No:

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

Tema: Arquitectura del PIC Fecha:


Participantes:
1
2
3
4

RÚBRICA PARA EVALUAR LABORATORIO DE MICROCONTROLADORES 2018-1 - SESION 2


REALIZAN LAS 2 APLICACIONES EL GRUPO NO EL GRUPO NO EL GRUPO NO EL GRUPO NO
DIMENSIÓN DE LO APRENDIDO, CUMPLE CON CUMPLE CON DOS CUMPLE CON CUMPLE CON
-CON BUEN SUSTENTO TEORIA - UNO DE LOS DE LOS ITEMS TRES DE LOS MAS DE TRES
PRÁCT. ITEMS ASIGNADOS O LOS ITEMS DE LOS ITEMS
-FUNCIONA SU PROGRAMA ASIGNADOS O DOS DISEÑOS ASIGNADOS O ASIGNADOS. O
-REALIZA LOS 2 DISEÑOS. UNO DE LOS ESTÁN A MEDIAS. SOLO HIZO UN NO HIZO LOS 2
-REALIZA DIAGRAMA DE FLUJO DISEÑOS LO DISEÑO. PROGRAMAS.
PARA SU EXPLICACIÓN HACE A MEDIAS
APLICACIÓN DE
LO APRENDIDO

6 5 4 3 2-0
EL GRUPO REALIZA LAS EL GRUPO NO EL GRUPO NO EL GRUPO NO EL GRUPO NO
INDICACIONES DEL DOCENTE REALIZA UNO DE REALIZA DOS DE REALIZA TRES REALIZA MAS
-SE ELIGE UN LIDER LAS LAS INDICACIONES DE LAS DE TRES DE LAS
(COORDINADOR), INDICACIONES DEL DOCENTE. INDICACIONES INDICACIONES
-SE ASIGNAN TRABAJOS EN DEL DOCENTE. DEL DOCENTE. DEL DOCENTE.
EQUIPO.
-HACEN PREGUNTAS AL DOCENTE,
-REALIZAN EL TRABAJO EN EL
TRABAJO EN TIEMPO INDICADO.
-NO USA EL CELULAR.
EQUIPO -LLEGA TEMPRANO A CLASE
-REALIZA EL TRABAJO ASIGNADO
EN CLASE.
-NO JUEGA EN CLASE

4 3 2 1 0
EL GRUPO RESPONDE A LAS 2 EL GRUPO RESPONDE SOLO 2 RESPONDE NO RESPONDE
PREGUNTAS QUE REALIZA EL DE RESPONDE A LAS DE LAS SOLO 1 DE LAS A NINGUNA DE
FORMA ORAL O ESCRITA A PREGUNTAS QUE PREGUNTAS QUE 2 PREGUNTAS LAS
TRAVÉS DE UNA PRUEBA ESCRITA REALIZA EL REALIZA EL QUE REALIZA PREGUNTAS O
CON BUEN SUSTENTO TEÓRICO DOCENTE CON DOCENTE, PERO EL DOCENTE, RESPONDE
BUEN SUSTENTO LAS SUSTENTA LAS CON UN BUEN SOLO 1 A
TEÓRICO EN UNA DOS A MEDIAS. SUSTENTO MEDIAS.
PREGUNTAS EN DE ELLAS Y EL TEÓRICO.
EQUIPOS OTRO A MEDIAS.

5 4 3 2 1-0
EL GRUPO REALIZA SU INFORME EL GRUPO NO EL GRUPO NO EL GRUPO NO EL GRUPO NO
EN EL TIEMPO DETERMINADO. REALIZA UNO DE REALIZA DOS DE REALIZA TRES REALIZA MAS
-UTILIZA EL FORMATO APA 6. LAS LAS INDICACIONES DE LAS DE TRES DE LAS
-REALIZA INTRODUCCIÓN, INDICE, INDICACIONES DEL ITEM. INDICACIONES INDICACIONES
TABLAS Y FIGURAS Y OBJETIVOS DEL ITEM. DEL ITEM. DEL ITEM O ES
-REALIZA MARCO TEÓRICO, COPIA DE OTRO
EXPERIENCIA DE LAB, INFORME.
OBSERVACIONES Y
CONCLUSIONES.
INFORME DE -SUSTENTA SU APLICACIÓN EN EL
INFORME.
LABORATORIO -NO ES COPIA DE OTRO INFORME.

5 4 3 2 1-0

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

OBSERVACIONES

PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación

PAGE
\*

Potrebbero piacerti anche