Practica Introductoria A MPLAB
Practica Introductoria A MPLAB
Practica Introductoria A MPLAB
92
MPLAB es un ambiente de desarrollo integrado (IDE, por sus siglas en ingls) creado por Microchip
Technology para dar soporte a la realizacin de proyectos basados en microcontroladores PIC. Incluye varios
mdulos que permiten llevar a cabo las distintas etapas de un proyecto: Edicin, Ensamblaje, Simulacin y
Programacin. En el Laboratorio, cada equipo de trabajo cubrir todas las etapas con la versin 8,92 de
MPLAB, exceptuando la Programacin, que se ejecutar mediante un software diferente y ser responsabilidad
del profesor o de un asistente.
A continuacin se describe la secuencia de acciones bsicas para completar las etapas mencionadas:
Desde el escritorio acceda al programa a travs del cono MPLAB IDE v.8.92
Con el fin de crear el cdigo hexadecimal (.hex) que la interfaz de programacin necesita para
programar o quemar el microcontrolador, los archivos fuente se deben asociar a un proyecto. El proyecto
controla todo el proceso.
Los pasos necesarios para trabajar con el entorno de MPLAB IDE son:
1.
2.
3.
4.
5.
6.
Seleccionar el dispositivo.
Crear el proyecto.
Seleccionar las herramientas de lenguaje (Toolsuite).
Crear el cdigo fuente (.asm)
Agregar los archivos al proyecto.
Construir el proyecto.
SELECCIONANDO EL DISPOSITIVO.
Desde el men principal se seleccione: Configure>Select Device.
Las opciones en color verde indican que si lo soporta y ya han sido probados, las amarillas indican
que an no ha sido probado para este dispositivo y las rojas indican que no lo soportan.
Ahora escoja la opcin Configuration Bits en el men Configure.
Desmarque la casilla Configuration Bits set in code y ajuste los Setting de FOSC y WDTE a HS
oscillator y WDT disabel, respectivamente.
CREANDO EL PROYECTO.
El archivo .asm que se va a crear debe ser relacionado a un proyecto para su ensamblaje, deteccin de
errores de sintaxis, obtencin del .hex y simulacin.
Para crear el proyecto desde el men principal seleccione Proyect> New proyect
Proyect>Proyect Wizard, para activar el asistente de proyectos, el cual lo guiar paso a paso).
(o seleccione
Asigne un nombre al proyecto (sin extensin) y en Project Directory escriba la direccin donde desea
crear el proyecto. Se recomienda que sea la misma carpeta donde crear el archivo .asm.
Observe las herramientas de lenguaje asociadas con la Toolsuite seleccionada. Estas deben ser
MPASMWIN, MPLINK y MPLIB.
Revise que la direccin asignada en Location sea la correcta o busque la direccin correcta con el botn
Browse.
La direccin correcta para cada herramienta esta ubicada en
C:\Archivos de
programa\Microchip\MPASM Suite\
Si alguna de las herramientas muestra una X de color rojo significa que MPLAB IDE no sabe donde
encontrarla.
CREANDO UN ARCHIVO FUENTE.
Escoja ahora la opcin New en el Men File y se desplegar la ventana donde podr editar el archivo
fuente.
Aparecer la ventana de edicin de texto. Escriba en ella el cdigo fuente siguiendo las normas de
escritura.
EJEMPLO:
El siguiente ejemplo le permitir seguir las indicaciones que se describen en esta gua para ensamblar y
simular sus proyectos. Cpielo y pguelo en la venta de edicin de texto de MPLAB. Cualquier error en la
trascripcin impedir la obtencin del archivo hex.
;**********************************************************************
;************ Multiplicador de un nmero Hexadecimal ***************
;****************************** de 4 bits ******************************
;**********************************************************************
list p=16F887
; Archivo tipo Include, que contiene los nombres simblicos
; de los registros propios del PIC utilizado.
#include <p16f887.inc>
; Definiciones particulares
NUM1 EQU
0x20
ORG
0x00
GOTO
INICIO
ORG
0x05
INICIO
; Configuraciones de los registros
BSF
STATUS,RP0
MOVLW
MOVWF
TRISC
; Todos salidas
MOVLW
0xFF
MOVWF
TRISA
; Todos entradas
BSF
STATUS,RP1
CLRF
ANSEL
BCF
STATUS,RP1
BCF
STATUS,RP0
; RPI:RP0 = 00
BCF
INTCON,GIE
; RPI:RP0 = 11
; Programa Principal
Ciclo
MOVF PORTA,0
ANDLW
0x0F
MOVWF
NUM1
BCF
STATUS,0
RLF
NUM1,1
MOVF NUM1,0
;aW
MOVWF
GOTO Ciclo
END
PORTC
Note que al transcribir el cdigo fuente las letras son todas de color negro. Esto indica que an no tiene
formato de cdigo assembler (.asm). Guarde el archivo creado escogiendo la opcin Save As en el men File.
Asigne el nombre Programa1.asm. Para eso hay que tener cuidado con el formato y en la ventana "Tipo"
debe estar seleccionada la opcin: Assembly Source Files.
Seleccione el directorio donde guardarlo, teniendo en cuenta que la direccin del archivo almacenado no debe
exceder los 62 caracteres y el archivo debe tener la extensin .asm.
Una vez guardado con la extensin .asm, el programa le asigna un color distinto a cada elemento. Por
defecto, las instrucciones son de color azul y resaltadas en negritas, los comentarios son verdes, las etiquetas,
identificadores son rojos; y as, a cada elemento se le detecta rpidamente por su formato y color. Estos pueden
ser ajustados por el usuario.
Aparecer en la ventana de informacin de proyecto el nombre o las nombres de los archivos asociados al l.
En este caso ser slo el archivo Programa1.asm.
Los archivos tambin se pueden borrar seleccionndolos y utilizando el botn derecho del ratn.
Para editar el archivo Programa1.asm seleccinelo y haga doble clic con el ratn use el botn derecho y
la opcin Editar.
Continuacin, en la ventana Output se observarn los detalles del ensamblaje. Si no hay errores se observar
una ventana como la siguiente:
Fjese en la ltima lnea. BUILD SUCCEEDED significa que la construccin fue exitosa. No
ocurrieron errores de sintaxis. Significa que se gener el archivo Suma.hex.
Si ocurrieron errores de sintaxis aparecer en la ventana Output la informacin:
Error
En la ltima lnea se puede leer: BUILD FAILED, es decir, el ensamblador MPASMWIN no ha sido capaz de
generar el archivo .hex.
Adems, en la pantalla "output" tambin se encuentran disponibles otras informaciones, como "Messages",
"Warnings" y "Errors". De estos tres tipos, el ms importante porque impide la generacin del fichero
hexadecimal son los "Errors", mientras que los otros dos tipos no impiden el ensamblado del programa fuente.
Los Mensajes (Message): No impiden la obtencin de cdigo mquina y aaden informacin adicional. Por
ejemplo:
Los Errores (Errors): Si impiden la generacin del .hex. En la lnea de error se puede observar tanto el
tipo de error como el nmero de lnea donde ste se encuentra. Al hacer doble clic con el ratn sobre la lnea de
error, en el programa se sealar la lnea para su posterior correccin. Por ejemplo:
Error[122]: Ilegal opcode. Hay un error en la sintaxis de la
instruccin.
active en Project>Build
SIMULANDO EL PROYECTO.
La correcta simulacin de un proyecto depende de las caractersticas particulares del programa utilizado.
A continuacin se describen las herramientas y procedimientos utilizados en la mayora de los casos.
Desde el men principal seleccione: Debugger>Select Tool>MPLAB SIM
A continuacin se activar la barra de simulacin. La siguiente tabla muestra la forma y funcin de cada
icono o botn de sta barra.
BOTN
NOMBRE
Run
Halt
Animate
Step Into
Step
Over
Step Out
Reset
FUNCIN
ATAJO
F9
F5
F7
F8
F6
Adicionalmente, en el men desplegable Debugger aparecern activas las opciones de simulacin que
antes no aparecan.
Los resultados de cualquier accin simulada se vern reflejados en ventanas especficas; por eso, antes
de iniciar es necesario cerrar la ventana con los mensajes de la compilacin y abrir las ventanas que se vayan a
necesitar (Program Memory, File Register, Special Function Register, Watch, entre otras). La forma de
activarlas es buscando cada una en el men View.
Es conveniente aprovechar el espacio que brinda el monitor de la computadora del mejor modo posible,
de modo que las ventanas abiertas no se solapen. Utilice la opcin Tile Vertically Tile Horizontally del men
Window para organizar el contenido de la pantalla antes de iniciar la simulacin. En este caso se han mantenido
abiertas las ventanas Program Memory, Special Function Register y Watch, adems de la que permite editar el
archivo.asm.
Con la ayuda del Profesor prepare la ventana Watch para moniterear el estado de los siguientes registros:
Num1, W, PORTA y PORTC.
COMENZANDO LA SIMULACIN.
Para comenzar la simulacin, la accin inicial a efectuar es un Reset, ya que esto simula lo que sucede
cuando se energiza el PIC. El Program Counter es cargado con la direccin del Reset Vector (00h), lo que
justifica que el origen de la mayora de los programas sea justamente esta posicin en la memoria de programa.
A continuacin presione varias veces el botn Step, Step Into o Step Over y observe que ocurre a los
registros. Fjese que al activar alguno de stos por segunda vez, el programa ejecuta la instruccin (BSF
STATUS, RP0) y la flecha verde apunta a la prxima instruccin. En la ventana del Watch, as como en las otras
ventanas, se observa en rojo los registros que se modificaron al ejecutarse la instruccin.
Al ejecutar BCF STATUS,RP0 se puede observar en la ventana Special Function registers que el registro
status cambia de 0x18 a 0x38 (Esto porque cambi de 0 a 1 el bit 5, para efectuar el salto al banco 1) y el
registro PCL cambi de 5 a 6 esta es la direccin de la siguiente instruccin que se ejecutar.
Ahora necesitaremos simular entradas externas para asignar un valor de entrada en el registro PORTA.
Aparecer la ventana de configuracin del Stimulus, que permite determinar el tipo de entrada a simular.
Seleccione la opcin Async, para simular entradas asncronas. En la columna Pin/SFR seleccione los
pines RA1 y RA0; y en la columna Action elija la accin Set High..
La asignacin del valor High (Low o la accin Toggle, segn la accin que se haya elegido) al pin
correspondiente se ejecutar luego de: presionar el botn Fire adjunto y ejecutar la prxima instruccin (Step).
NO BASTA CON PRESIONAR FIRE, ES NECESARIO EJECUTAR LA SIGUIENTE INSTRUCCIN. Slo
se procesar la accin de una entrada simulada por vez. Si presiona dos veces consecutivas sobre el mismo
estmulo o se presiona en uno despus del otro, se tomar el valor del ltimo que se presion.
ACTIVIDAD:
Resetee el sistema.
Corra paso a paso el programa nuevamente y a medida que lo va corriendo, haga clic
sobre los botones FIRE del Stimulus para asignar un valor al registro PORTA. Recuerde
que solo procesar una accin de la entrada simulada a la vez.
Avance a la instruccin previa la etiqueta Ciclo.
Observe y analice lo que ocurre en las ventanas adjuntas, cada vez que presiona el
botn. Step.
PREPARE UNA EXPLICACIN DE ESTO. CUANDO CREA QUE LA TIENE,
COMUNQUELA AL PROFESOR.
A continuacin ver como contar ciclos de reloj y determinar el tiempo de ejecucin de un programa o
de secciones dentro del mismo.
En el men Debugger seleccione la opcin Stopwatch. Aparecer el recuadro que observa en la siguiente
figura.
Resetee el programa. En el Stopwatch presione el botn Zero y avance 3 instrucciones en el curso del
programa. Observe lo que ocurre.
Prosiga esta actividad hasta que alcance la instruccin GOTO Ciclo. Avance un paso ms. Explique lo
que observa a su profesor.
A continuacin se le indicarn los pasos para hacer uso del archivo LabMP.dsn, con el cual realizar la
simulacin de todos los proyectos realizados con MPLAB..
Paso 1
Abra el programa ISIS Proteus mediante el acceso directo fcilmente identificable en el escritorio de las
computadoras del Laboratorio.
Paso 2
A travs de la opcin Open Design del men File abra el archivo LabMP Oficial.dsn. La ruta de este archivo
debe ser D:\Micro. Si no lo encuentra en tal ruta por favor descrguelo desde el Aula Virtual y cpielo donde se
ha indicado.
Podr observar el aspecto inicial del ambiente con el que har la simulacin:
Vdd
A
B
VSS
10k
20 MHz
Vdd
C
D
330
1K
330
VSS
1K1K1K
RXD
330
U1
1
VSS
7
8
9
10
11
12
VSS
OFF
6
5
4
3
2
1
ON
VSS
LCD1
LM032L
2
3
4
5
6
7
14
13
33
34
35
36
37
38
39
40
RE3/MCLR/VPP
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1
RA1/AN1/C12IN1RC3/SCK/SCL
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
RA3/AN3/VREF+/C1IN+
RC5/SDO
RA4/T0CKI/C1OUT
RC6/TX/CK
RA5/AN4/SS/C2OUT
RC7/RX/DT
RA6/OSC2/CLKOUT
RA7/OSC1/CLKIN
RD0
RD1
RB0/AN12/INT
RD2
RB1/AN10/C12IN3RD3
RB2/AN8
RD4
RB3/AN9/PGM/C12IN2RD5/P1B
RB4/AN11
RD6/P1C
RB5/AN13/T1G
RD7/P1D
RB6/ICSPCLK
RB7/ICSPDAT
RE0/AN5
RE1/AN6
RE2/AN7
TXD
15
16
17
18
23
24
25
26
330
RTS
330
CTS
330
Hyper-Terminal
19
20
21
22
27
28
29
30
330
330
330
330
330
330
330
8
9
10
PIC16F887
PACKAGE=DIL40
D0
D1
D2
D3
D4
D5
D6
D7
VSS
7
8
9
10
11
12
13
14
RS
RW
E
(+)
4
5
6
1
2
3
Vin
89%
VSS
VDD
VEE
Vdd
+88.8
GND
VCC
Volts
VSS
VSS
Universidad de Carabobo
Facultad de Ingenieria
VSS
Escuela de Elctrica
Laboratorio de Microprocesadores
Con la ayuda del Profesor tendr oportunidad a lo largo del semestre de usar las distintas secciones y mdulos
visibles.
Paso 3
Para cargar el archivo.hex generado desde MPLAB haga doble clic con el botn izquierdo del mouse sobre el
mdulo PIC16F887. Emerger una ventana para editar las caractersticas del componente.
En la seccin resaltada en la figura explore las carpetas de la computadora hasta encontrar el archivo.hex
generado desde MPLAB.
Paso 4
Con los botones visibles en la esquina inferior izquierda podr ejecutar la simulacin.
Luego de pulsar el botn Play podr interactuar con los mdulos que necesite para probar el funcionamiento de
su proyecto.
IMPORTANTE! No altere el archivo LabMP Oficial.dsn. Solo selo para simular sus archivos.hex
Si lo hace, otros usuarios podran ver afectadas sus simulaciones con resultados negativos. Considere
que a Ud no le gustara descubrir que sus prcticas no funcionan porque alguien ms alter el archivo,
para su uso particular.