Vous êtes sur la page 1sur 23

INTRODUCCIN AL USO DEL MPLAB v 8.

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

Otra forma de ingresar ser en Inicio>Programas>Microchip>MPLAB IDE v8.92. La pantalla inicial


ser como la de la siguiente figura.

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.

Aparecer la pantalla de seleccin:

En esta pantalla, en el cuadro de dilogo Device se selecciona el dispositivo a utilizar. La ventana de la


derecha denominada Device Family permite agruparlos por familia para realizar una seleccin ms rpida.
Se activar la informacin referida a los programadores que soportan al dispositivo seleccionado, as
como los lenguajes y depuradores.

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.

Emerger la siguiente ventana.

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.

Seleccione View>Proyect y aparecer la ventana de informacin del proyecto.

SELECCIONANDO LAS HERRAMIENTAS DE LENGUAJE (TOOLSUITE).


Para Seleccionar el conjunto de herramientas seleccione Project>Select Lenguaje Toolsuite.

En el men Active Toolsuite Seleccione Microchip MPASM Toolsuite.

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.

Normas de escritura del programa fuente:


En cada lnea puede haber hasta 4 tipos de informacin: etiquetas, mnemnicos, operandos y comentarios.
Las etiquetas:
Deben comenzar por una letra o por _, y pueden tener caracteres alfanumricos, _ , y ?
. Se escriben en la columna 1 (borde izquierdo de la pgina).
Mnemnicos:
Los mnemnicos de las instrucciones de ensamblador, las directivas y las llamadas a macros
deben comenzar, al menos, en la columna 2 (1 espacio despus del borde izquierdo), aunque
normalmente se usa la tecla TAB.
Si en la misma lnea hay una etiqueta, deben estar separados por uno o ms espacios (o
TAB)
Operandos:
Los operandos van despus de los mnemnicos y deben separarse de stos uno o ms
espacios (o TAB).
Los operandos que vienen en listas deben separarse por ,
Comentarios:
Los comentarios comienzan con ; y se escriben en cualquier columna.
Todo lo que vaya despus del ; se considera comentario.

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

; Variable auxiliar para separar uno


; de los nmeros de entrada

ORG

0x00

GOTO

INICIO

ORG

0x05

INICIO
; Configuraciones de los registros
BSF

STATUS,RP0

; Se escoge el banco 1 para configurar registros TRIS.


; RPI:RP0 = 01

MOVLW

b'00000000' ; Programacin del Puerto C

MOVWF

TRISC

; Todos salidas

MOVLW

0xFF

; Programacin del Puerto AB

MOVWF

TRISA

; Todos entradas

BSF

STATUS,RP1

; Se escoge el banco 3 para configurar registro ANSEL

CLRF

ANSEL

; Establece pines del Puerto A como digitales

BCF

STATUS,RP1

; Se escoge el banco 0 para operar

BCF

STATUS,RP0

; RPI:RP0 = 00

BCF

INTCON,GIE

; Inhabilitacin de las Interrupciones

; RPI:RP0 = 11

; Programa Principal
Ciclo
MOVF PORTA,0

; Lee Puerto A para llevar los dos nmeros a W

ANDLW

0x0F

; Mscara para aislar un nmero de 4 bits

MOVWF

NUM1

BCF

STATUS,0

RLF

NUM1,1

; Clear al bit 0 del Status (Carry)


; Se desplaza el nmero a la izquierda 1 vez. Equivale
; a multiplicar por 2

MOVF NUM1,0

;aW

MOVWF

; Cinco bits de salida en PortC

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.

AGREGANDO EL(LOS) ARCHIVO(S) AL PROYECTO.


Hasta los momentos no se ha relacionado ningn archivo. Al hacer clic con el botn derecho del ratn
sobre la opcin Source Files y seleccionar Add Files aparece la ventana de seleccin. Haga clic sobre el archivo
o archivos .asm que desea aadir (en este caso slo es el archivo Suma.asm).

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.

CONSTRUYENDO (ENSAMBLANDO) EL PROYECTO.


Una vez que el proyecto est creado y los archivos relacionados, se debe ensamblar. Para eso el entorno
MPLAB utiliza el programa MPASMWIN. El procedimiento a seguir es el siguiente:
Project > Build All.
Tambin puede utilizarse el icono correspondiente de la barra de herramientas.

Emerger una ventana como la siguiente. Asegrese de elegir la opcin Absolute.

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:

Message [302]: Register in operand not in bank 0. Ensure that


bank bits are correct". El PIC trabaja por defecto en el banco 0 de la
memoria de datos. Este mensaje advierte que se ha realizado una
operacin fuera de ese banco y recomienda asegurar verificar si eso
es lo que se quiere hacer.
Las Advertencias (Warnings): No impiden la obtencin del .hex, pero advierten de algo que al ensamblador
le parece extrao. Por ejemplo:
Warning[205]: Found directive in column 1. El mnemnico de una
directiva comienza en la columna 1, que es el lugar reservado para las
etiquetas.

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.

CADA VEZ QUE SE CORRIJA O MODIFIQUE EL PROGRAMA STE SE DEBE VOLVER


A ENSAMBLAR (CONSTRUIR).

Sensibilidad ante maysculas y minsculas.


El ensamblador MPASM es sensible ante cambios de maysculas a minsculas o viceversa, en los
nombres de las etiquetas.
Si una etiqueta se declar como INICIO, cada vez que se haga referencia a ella se debe escribir igual;
si se escribe por ejemplo Inicio, o IniCIo, se producir un error ya que hay variacin respecto a la
declarada.
El MPASM indicar que no conoce el smbolo, ya que no fue definido previamente (Error 113).
Para deshabilitar esta sensibilidad entre maysculas y minsculas
Options>Project

active en Project>Build

En la ventana de Opciones de Proyecto seleccione la pestaa MPASM Assembler y marque la opcin

Disable case Sensitivity

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

Ejecuta el programa hasta que consiga un punto de quiebre


(Breakpoint) o hasta que se detenga el programa (Halt). Los
cambios en los registros se observaran slo cuando se
detenga la ejecucin del programa.
Detiene la ejecucin del programa.
Ejecuta el programa de forma animada. Se pueden observar
los cambios en los registros a medida que estos ocurren.
Ejecuta paso a paso el programa entrando a las Subrutinas.
Ejecuta paso a paso el programa principal. En una
instruccin CALL, ejecuta el llamado a subrutina, retorna y
se detiene en la direccin siguiente a la llamada. Luego de
este retorno, se puede continuar la ejecucin paso a paso.
Se sale de una subrutina sin finalizar su ejecucin, y regresa
a la lnea siguiente de la instruccin CALL de donde parti.
Lleva al PC (Program Counter) a la direccin 00h (Vector de
Reset) y restablece las acciones y opciones a sus valores
iniciales, dependiendo de la herramienta y dispositivo
seleccionado. El tipo de reset puede ser por Watchdog,
Brown out, procesador, MCLR.

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.

CAMBIANDO VALORES A LOS REGISTROS.


Se ilustrar la manera de modificar el valor de los registros, lo cual es til cuando el flujo del programa
depende de la ocurrencia de eventos especficos que tardaran mucho si se sigue una simulacin paso a paso,
como por ejemplo la ejecucin de ciclos de retardo de tiempo.
Para cambiar el valor de un registro simplemente haga doble clic en l y asigne el nuevo valor. Este
cambio lo aceptar slo si el registro no est asignado como entrada.
Intente cambiar el valor del registro PORTA y PORTC. Observe lo que ocurre.

Ahora necesitaremos simular entradas externas para asignar un valor de entrada en el registro PORTA.

SIMULANDO ENTRADAS EXTERNAS


Dentro del men Debugger seleccione la opcin Stimulus y New Workbook.

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.

DETERMINANDO TIEMPOS DE EJECUCIN.

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.

SIMULACIN CON ISIS PROTEUS

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

Convertidor SerialTTL/USB del PT40


Al puerto USB del Computador

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

Conexion PT-40 al Protoboard

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.

Vous aimerez peut-être aussi