Lab02 MPlab y LenguajeProgramacion
Lab02 MPlab y LenguajeProgramacion
Lab02 MPlab y LenguajeProgramacion
PROGRAMACIÓN DE MICROCONTROLADORES
IV Ciclo
Laboratorio N°2
PAGE
\*
Lab. N° 2 MPLAB 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.
1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.
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
PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
✓ 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.
✓ 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
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.
✓ 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
PAGE
\*
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.
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.
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.
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
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]=
PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
NOP ;no operación
NOP ;no operación
GOTO $
END
;***********************************************************
;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]=
PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
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.
PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
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
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.
Observaciones Generales
PAGE
\*
Lab. N° 2 MPLAB y Lenguaje de Programación
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
\*