Está en la página 1de 11

ESCUELA POLlTCNlCA NAClONAL

ESCUELA DE FORMAClN DE
TECNLOGOS
LABORATORlO DE
MlCROPROCESADORES
AO ELECTlVO
ClCLO B 20l2
Prctica N 6
Ttulo: MPLAB lDE
Introduccin.- Para desarrollar un proyecto se requieren herramientas para la
creacin del software y para la implementacin y puesta a punto del hardware. Entre
las herramientas destinadas al software se precisa un programa que permita editar
desde un computador los programas en un lenguaje, compilarlos para obtener el
programa ejecutable, simular el programa y depurarlo. Microchip ha creado un entorno
integrado para trabajar con sus microcontroladores PlC, denominado MPLAB lDE, que
contiene todas las herramientas requeridas para el desarrollo del software, esto es:
Gestin del proyecto, Ventana de registros, Ventana de inspecciones, Editor de textos,
Ventana de resultados, Memoria del programa, Vista de la EEPROM, Control de
memoria, etc. Microchip lo ha puesto a disposicin de los usuarios en su sitio en
lnternet www.microchip.com.
Objetivo.- Conocer y operar el MPLAB lDE de manera que podamos acceder a las
distintas opciones para editar, depurar, compilar y simular programas comprobando los
resultados de la ejecucin paso a paso.
Marco terico
MPLA
MPLAB es un editor lDE gratuito, destinado a productos de la marca Microchip. Este
editor es modular, permite seleccionar los distintos micro controladores soportados,
adems de permitir la grabacin de estos circuitos integrados directamente al
programador.
Es un programa que corre bajo Windows y como tal, presenta las clsicas barras de
programa, de men, de herramientas de estado, etc. El ambiente MPLAB posee
editor de texto, compilador y simulacin (no en tiempo real). Para comenzar un
programa desde cero para luego grabarlo al C en MPLAB v7.XX los pasos a seguir
son:
Crear un nuevo archivo con extensin .ASM y nombre cualquiera
Crear un Proyecto nuevo eligiendo un nombre y ubicacin
Agregar el archivo .ASM como un SOURCE FlLE
Elegir el microcontrolador a utilizar desde SELECT DEVlCE del men CONFlGURE
Una vez realizado esto, se est en condiciones de empezar a escribir el programa
respetando las directivas necesarias y la sintaxis para luego compilarlo y grabarlo en el
PlC.
Directivas
Las directivas son palabras reservadas para indicarle al MPLAB que funciones debe
configurar cuando compile nuestro programa. Las indispensables para la correcta
compilacin del programa son:
!irectiva !e"cri#cin $inta%i"
CBLOCK Defina un Bloque de Constantes cblock [<expr>]
#DEFlNE Defina una Etiqueta de
Substitucin de Texto
define <name> [<value>]
define <name> [<arg>,...,<arg>]
<value>
DT Defina Tabla [<label>] dt
<expr>[,<expr>,...,<expr>]
[<label>] dt
"<text_string>"[,"<text_string>",..
.]
ELSE Empieza el bloque alternativo de
un lF
Else
END Fin de bloque de programa End
ENDlF Fin del bloque de condiciones
ensambladas
Endif
ENDM Fin de la definicin de una Macro Endm
ENDW Fin de un bucle de While Endw
EQU Define una constante para el
ensamblador
<label> equ <expr>
lF Empieza un bloque de cdigo
condicional
if <expr>
#lNCLUD
E
lncluye Ficheros fuentes
adiccionales
include <<include_file>>
|"<include_file>"
LlST Opciones listado list
[<list_option>,...,<list_option>]
MACRO Declara la Definicin del Macro <label> macro [<arg>,...,<arg>]
ORG Pone el Origen del Programa <label> org <expr>
WHlLE Realiza el bucle Mientras la
Condicin es Verdadera
while <expr>
&o'#ilacin del Pro(ra'a ) car(a al PI&
Programador Picstart Plus de Microchip.
Una vez escrito y depurado el programa, se procede a la compilacin. Para esto,
desde el men PROJECT se elige la opcin BUlLD ALL (construir todo) que, si no
existen errores, devolver un mensaje como BUlLD SUCCESFULL. Los errores que
muestra el compilador son del tipo sintcticos, es decir que si el programa "construido"
llegara a tener un error, por ejemplo que esperase a que se ponga un bit en "0" y
nunca pasase, se estar en un bucle infinito a pesar de que el compilador compilar
perfectamente porque no hay error de sintaxis.
Tambin existen mensajes y advertencias; los mensajes pueden ser, por ejemplo, que
se est trabajando en un banco de memoria que no es el bank 0, etc. Las advertencias
tienen un poco ms de peso, por ejemplo: el PlC seleccionado no es el mismo que
esta definido en el programa, etc. En ambos casos, mensajes y advertencias, la
compilacin termina satisfactoriamente pero hay que tener en cuenta siempre lo que
nos dicen estos para prevenir errores.
Terminada la compilacin el MPLAB nos genera un archivo de extensin .hex el cual
es completamente entendible para el PlC. Es decir, solo resta grabarlo al PlC por
medio de una interfaz como por ejemplo el programador Picstart Plus de microchip.
Una vez completado esto, se alimenta al mismo y el programa ya se estar
ejecutando.
IN*O+M,
Presente los archivos generados por el MPLAB, xx.ASM, xx.Lst y xx.HEX
Arc-ivo %%.A$M
LlST P=l6F870 ;Selecciona el tipo de procesador
#lNCLUDE <Pl6F870.lNC> ;Define los registros internos del
procesador
lMPAREQU 0x30 ;Define etiqueta de nombre lMPAR con valor 20H
ORG 0x00 ;lnicio de programa
MOVLW b'00l000ll' ;Mueve l5 a la posicin impar
MOVWF lMPAR
MOVLW b'000l0l00' ;Mueve l0 a WREG
BUCLE: ADDWF lMPAR, l ;lMPAR + W = lMPAR(nui es necesario
poner bucle )
NOP ;No hace nada(con este terminamos la funcion del bucle y
bucle puede ser cualquier otro nombre)
GOTO BUCLE ;Repite el bucle
END ;Fin del programa
Arc-ivo %%.L"t
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE l
LOC OBJECT CODE LlNE SOURCE TEXT
VALUE
Warning[205]: Found directive in column l. (LlST)
0000l LlST P=l6F870 ;Selecciona el tipo de procesador
00002 #lNCLUDE <Pl6F870.lNC> ;Define los registros
internos del procesador
0000l LlST
00002
00003
;=================================================================
=========
00004 ; MPASM PlCl6F870 processor include
00005 ;
00006 ; (c) Copyright l999-20l0 Microchip Technology, All rights
reserved
00007
;=================================================================
=========
00008
004ll LlST
00000030 00003 lMPAR EQU 0x30 ;Define etiqueta de
nombre lMPAR con valor 20H
Warning[205]: Found directive in column l. (ORG)
00004 ORG 0x00 ;lnicio de programa
Warning[203]: Found opcode in column l. (MOVLW)
0000 3023 00005 MOVLW b'00l000ll' ;Mueve l5 a la posicin impar
Warning[203]: Found opcode in column l. (MOVWF)
000l 00B0 00006 MOVWF lMPAR
Warning[203]: Found opcode in column l. (MOVLW)
0002 30l4 00007 MOVLW b'000l0l00' ;Mueve l0 a WREG
0003 07B0 00008 BUCLE: ADDWF lMPAR, l ;lMPAR + W = lMPAR(nui
es necesario poner bucle )
Warning[203]: Found opcode in column l. (NOP)
0004 0000 00009 NOP ;No hace nada(con este terminamos
la funcion del bucle y bucle puede ser
cualquier otro nombre)
Warning[203]: Found opcode in column l. (GOTO)
0005 2??? 000l0 GOTO BUCLE ;Repite el bucle
Warning[205]: Found directive in column l. (END)
000ll END ;Fin del programa
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE 2
SYMBOL TABLE
LABEL VALUE
ADCON0 000000lF
ADCONl 0000009F
ADCS0 00000006
ADCSl 00000007
ADDEN 00000003
ADFM 00000007
ADlE 00000006
ADlF 00000006
ADON 00000000
ADRESH 000000lE
ADRESL 0000009E
BRGH 00000002
BUCLE 00000003
C 00000000
CCPlCON 000000l7
CCPllE 00000002
CCPllF 00000002
CCPlM0 00000000
CCPlMl 0000000l
CCPlM2 00000002
CCPlM3 00000003
CCPlX 00000005
CCPlY 00000004
CCPRl 000000l5
CCPRlH 000000l6
CCPRlL 000000l5
CHS0 00000003
CHSl 00000004
CHS2 00000005
CREN 00000004
CSRC 00000007
DC 0000000l
EEADR 00000l0D
EEADRH 00000l0F
EECONl 00000l8C
EECON2 00000l8D
EEDATA 00000l0C
EEDATH 00000l0E
EElE 00000004
EElF 00000004
EEPGD 00000007
F 0000000l
FERR 00000002
FSR 00000004
GlE 00000007
GO 00000002
GO_DONE 00000002
GO_NOT_DONE 00000002
lMPAR 00000030
lNDF 00000000
lNTCON 0000000B
lNTE 00000004
lNTEDG 00000006
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE 3
SYMBOL TABLE
LABEL VALUE
lNTF 0000000l
lRP 00000007
NOT_BO 00000000
NOT_BOR 00000000
NOT_DONE 00000002
NOT_PD 00000003
NOT_POR 0000000l
NOT_RBPU 00000007
NOT_RC8 00000006
NOT_TlSYNC 00000002
NOT_TO 00000004
NOT_TX8 00000006
OERR 0000000l
OPTlON_REG 0000008l
PCFG0 00000000
PCFGl 0000000l
PCFG2 00000002
PCFG3 00000003
PCL 00000002
PCLATH 0000000A
PCON 0000008E
PElE 00000006
PlEl 0000008C
PlE2 0000008D
PlRl 0000000C
PlR2 0000000D
PORTA 00000005
PORTB 00000006
PORTC 00000007
PR2 00000092
PS0 00000000
PSl 0000000l
PS2 00000002
PSA 00000003
RA0 00000000
RAl 0000000l
RA2 00000002
RA3 00000003
RA4 00000004
RA5 00000005
RB0 00000000
RBl 0000000l
RB2 00000002
RB3 00000003
RB4 00000004
RB5 00000005
RB6 00000006
RB7 00000007
RBlE 00000003
RBlF 00000000
RC0 00000000
RCl 0000000l
RC2 00000002
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE 4
SYMBOL TABLE
LABEL VALUE
RC3 00000003
RC4 00000004
RC5 00000005
RC6 00000006
RC7 00000007
RC8_9 00000006
RC9 00000006
RCD8 00000000
RClE 00000005
RClF 00000005
RCREG 000000lA
RCSTA 000000l8
RD 00000000
RP0 00000005
RPl 00000006
RX9 00000006
RX9D 00000000
SPBRG 00000099
SPEN 00000007
SREN 00000005
STATUS 00000003
SYNC 00000004
T0CS 00000005
T0lE 00000005
T0lF 00000002
T0SE 00000004
TlCKPS0 00000004
TlCKPSl 00000005
TlCON 000000l0
TllNSYNC 00000002
TlOSCEN 00000003
TlSYNC 00000002
T2CKPS0 00000000
T2CKPSl 0000000l
T2CON 000000l2
TMR0 0000000l
TMR0lE 00000005
TMR0lF 00000002
TMRlCS 0000000l
TMRlH 0000000F
TMRllE 00000000
TMRllF 00000000
TMRlL 0000000E
TMRlON 00000000
TMR2 000000ll
TMR2lE 0000000l
TMR2lF 0000000l
TMR2ON 00000002
TOUTPS0 00000003
TOUTPSl 00000004
TOUTPS2 00000005
TOUTPS3 00000006
TRlSA 00000085
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE 5
SYMBOL TABLE
LABEL VALUE
TRlSA0 00000000
TRlSAl 0000000l
TRlSA2 00000002
TRlSA3 00000003
TRlSA4 00000004
TRlSA5 00000005
TRlSB 00000086
TRlSB0 00000000
TRlSBl 0000000l
TRlSB2 00000002
TRlSB3 00000003
TRlSB4 00000004
TRlSB5 00000005
TRlSB6 00000006
TRlSB7 00000007
TRlSC 00000087
TRlSC0 00000000
TRlSCl 0000000l
TRlSC2 00000002
TRlSC3 00000003
TRlSC4 00000004
TRlSC5 00000005
TRlSC6 00000006
TRlSC7 00000007
TRMT 0000000l
TX8_9 00000006
TX9 00000006
TX9D 00000000
TXD8 00000000
TXEN 00000005
TXlE 00000004
TXlF 00000004
TXREG 000000l9
TXSTA 00000098
W 00000000
WR 0000000l
WREN 00000002
WRERR 00000003
Z 00000002
_BODEN_OFF 00003FBF
_BODEN_ON 00003FFF
_CONFlG 00002007
_CPD_OFF 00003FFF
_CPD_ON 00003EFF
_CP_All 00000FCF
_CP_OFF 00003FFF
_DEBUG_OFF 00003FFF
_DEBUG_ON 000037FF
_DEVlDl 00002006
_HS_OSC 00003FFE
_lDLOC0 00002000
_lDLOCl 0000200l
_lDLOC2 00002002
MPASM 5.39 PRACTlCA6.ASM l0-4-20l2 l2:45:33 PAGE 6
SYMBOL TABLE
LABEL VALUE
_lDLOC3 00002003
_LP_OSC 00003FFC
_LVP_OFF 00003F7F
_LVP_ON 00003FFF
_PWRTE_OFF 00003FFF
_PWRTE_ON 00003FF7
_RC_OSC 00003FFF
_WDT_OFF 00003FFB
_WDT_ON 00003FFF
_WRT_ENABLE_OFF 00003DFF
_WRT_ENABLE_ON 00003FFF
_XT_OSC 00003FFD
__l6F870 0000000l
__DEBUG l
Errors : 0
Warnings : 8 reported, 0 suppressed
Messages : 0 reported, 0 suppressed
Arc-ivo %%..,/
:020000040000FA
:0C0000002330B000l430B00700000328CB
:04000C000034003488
:0000000lFF
&o'entario" ) &onclu"ione"
&o'entario":
La prctica ayuda a entender de mejor manera la teora.
La clase de laboratorio tiene una mayor explicacin que el clases de
microprocesadores debe de ser porque tambin es didctica.
La realizacin del programa paso a paso ayuda a tener una mejor de lo que se
realiza.
&onclu"ione":
La prctica ayuda a comprender los conocimientos adquiridos en clases ya que
de esta manera podemos aprender de mejor manera al momento de realizar un
programa que se lo realiza paso por paso y no de una manera explicativa. (Lo
aprendido en clase y el cuaderno de micros)
Los programas en clases estudiados tambin ayudan a ver algunas
explicaciones que se pueden realizar en estos programas gracias a los
comentarios que se suelen poner al final de cada una de las funciones de
programacin que se realizan esto ayuda para tener una idea clara y precisa se
lo que va haciendo. (Cuaderno de microprocesadores y tutorial de YouTube)
La programacin hecha en clases es una de las mejores maneras de aprender
en que se puede ya que no solo se la hace terica sino prctica lo que nos
permite hacer el ingeniero en clases por lo cual la clase se vuelve didctica y
ayuda a comprender mejor el funcionamiento de cada una de las funciones que
vamos escribiendo y que es lo que estas realizan paso a paso. (Clases de
laboratorio y apuntes de laboratorio)
iblio(ra0a:
http://es.wikipedia.org/wiki/MPLAB
http://www.todopic.com.ar/utiles/mplab_capitulol.pdf

También podría gustarte