Upload
henry-flores
View
10
Download
0
Embed Size (px)
Citation preview
ESCUELA POLITCNICA NACIONALESCUELA DE FORMACIN DE TECNLOGOS
LABORATORIO DE MICROPROCESADORES
AO ELECTIVO
CICLO B 2012Prctica N 6
Ttulo: MPLAB IDE
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 PIC, denominado MPLAB IDE, 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 Internet www.microchip.com.
Objetivo.- Conocer y operar el MPLAB IDE 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 MPLAB
MPLABes un editorIDEgratuito, destinado a productos de la marcaMicrochip. Este editor es modular, permite seleccionar los distintos micro controladoressoportados, adems de permitir la grabacin de estoscircuitos integradosdirectamente al programador.
Es un programa que corre bajoWindowsy 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 FILE
Elegir el microcontrolador a utilizar desde SELECT DEVICE del men CONFIGURE
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 PIC.
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:
DirectivaDescripcinSintaxis
CBLOCKDefina un Bloque de Constantescblock []
#DEFINEDefina una Etiqueta de Substitucin de Textodefine []define [,...,]
DTDefina Tabla[] dt [,,...,][] dt [,,...]
ELSEEmpieza el bloque alternativo de un IFElse
ENDFin de bloque de programaEnd
ENDIFFin del bloque de condiciones ensambladasEndif
ENDMFin de la definicin de una MacroEndm
ENDWFin de un bucle de WhileEndw
EQUDefine una constante para el ensamblador equ
IFEmpieza un bloque de cdigo condicionalif
#INCLUDEIncluye Ficheros fuentes adiccionalesinclude |
LISTOpciones listadolist [,...,]
MACRODeclara la Definicin del Macro macro [,...,]
ORGPone el Origen del Programa org
WHILERealiza el bucle Mientras la Condicin es Verdaderawhile
Compilacin del Programa y carga al PIC
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 BUILD ALL (construir todo) que, si no existen errores, devolver un mensaje como BUILD 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 PIC 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.hexel cual es completamente entendible para el PIC. Es decir, solo resta grabarlo al PIC por medio de una interfaz como por ejemplo el programadorPicstart Plusde microchip. Una vez completado esto, se alimenta al mismo y el programa ya se estar ejecutando.
INFORMEPresente los archivos generados por el MPLAB, xx.ASM, xx.Lst y xx.HEX
Archivo xx.ASM
LISTP=16F870
;Selecciona el tipo de procesador
#INCLUDE
;Define los registros internos del procesador
IMPAREQU0x30
;Define etiqueta de nombre IMPAR con valor 20H
ORG
0x00
;Inicio de programa
MOVLWb'00100011';Mueve 15 a la posicin impar
MOVWFIMPAR
MOVLWb'00010100';Mueve 10 a WREG
BUCLE:ADDWFIMPAR, 1;IMPAR + W = IMPAR(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
Archivo xx.LstMPASM 5.39 PRACTICA6.ASM 10-4-2012 12:45:33 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
Warning[205]: Found directive in column 1. (LIST)
00001 LIST P=16F870 ;Selecciona el tipo de procesador
00002 #INCLUDE ;Define los registros internos del procesador
00001 LIST
00002
00003 ;==========================================================================
00004 ; MPASM PIC16F870 processor include
00005 ;
00006 ; (c) Copyright 1999-2010 Microchip Technology, All rights reserved
00007 ;==========================================================================
00008
00411 LIST
00000030 00003 IMPAR EQU 0x30 ;Define etiqueta de nombre IMPAR con valor 20H
Warning[205]: Found directive in column 1. (ORG)
00004 ORG 0x00 ;Inicio de programa
Warning[203]: Found opcode in column 1. (MOVLW)
0000 3023 00005 MOVLW b'00100011' ;Mueve 15 a la posicin impar
Warning[203]: Found opcode in column 1. (MOVWF)
0001 00B0 00006 MOVWF IMPAR
Warning[203]: Found opcode in column 1. (MOVLW)
0002 3014 00007 MOVLW b'00010100' ;Mueve 10 a WREG
0003 07B0 00008 BUCLE: ADDWF IMPAR, 1 ;IMPAR + W = IMPAR(nui es necesario poner bucle )
Warning[203]: Found opcode in column 1. (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 1. (GOTO)
0005 2??? 00010 GOTO BUCLE ;Repite el bucle
Warning[205]: Found directive in column 1. (END)
00011 END ;Fin del programaMPASM 5.39 PRACTICA6.ASM 10-4-2012 12:45:33 PAGE 2
SYMBOL TABLE
LABEL VALUE
ADCON0 0000001F
ADCON1 0000009F
ADCS0 00000006
ADCS1 00000007
ADDEN 00000003
ADFM 00000007
ADIE 00000006
ADIF 00000006
ADON 00000000
ADRESH 0000001E
ADRESL 0000009E
BRGH 00000002
BUCLE 00000003
C 00000000
CCP1CON 00000017
CCP1IE 00000002
CCP1IF 00000002
CCP1M0 00000000
CCP1M1 00000001
CCP1M2 00000002
CCP1M3 00000003
CCP1X 00000005
CCP1Y 00000004
CCPR1 00000015
CCPR1H 00000016
CCPR1L 00000015
CHS0 00000003
CHS1 00000004
CHS2 00000005
CREN 00000004
CSRC 00000007
DC 00000001
EEADR 0000010D
EEADRH 0000010F
EECON1 0000018C
EECON2 0000018D
EEDATA 0000010C
EEDATH 0000010E
EEIE 00000004
EEIF 00000004
EEPGD 00000007
F 00000001
FERR 00000002
FSR 00000004
GIE 00000007
GO 00000002
GO_DONE 00000002
GO_NOT_DONE 00000002
IMPAR 00000030
INDF 00000000
INTCON 0000000B
INTE 00000004
INTEDG 00000006MPASM 5.39 PRACTICA6.ASM 10-4-2012 12:45:33 PAGE 3
SYMBOL TABLE
LABEL VALUE
INTF 00000001
IRP 00000007
NOT_BO 00000000
NOT_BOR 00000000
NOT_DONE 00000002
NOT_PD 00000003
NOT_POR 00000001
NOT_RBPU 00000007
NOT_RC8 00000006
NOT_T1SYNC 00000002
NOT_TO 00000004
NOT_TX8 00000006
OERR 00000001
OPTION_REG 00000081
PCFG0 00000000
PCFG1 00000001
PCFG2 00000002
PCFG3 00000003
PCL 00000002
PCLATH 0000000A
PCON 0000008E
PEIE 00000006
PIE1 0000008C
PIE2 0000008D
PIR1 0000000C
PIR2 0000000D
PORTA 00000005
PORTB 00000006
PORTC 00000007
PR2 00000092
PS0 00000000
PS1 00000001
PS2 00000002
PSA 00000003
RA0 00000000
RA1 00000001
RA2 00000002
RA3 00000003
RA4 00000004
RA5 00000005
RB0 00000000
RB1 00000001
RB2 00000002
RB3 00000003
RB4 00000004
RB5 00000005
RB6 00000006
RB7 00000007
RBIE 00000003
RBIF 00000000
RC0 00000000
RC1 00000001
RC2 00000002MPASM 5.39 PRACTICA6.ASM 10-4-2012 12: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
RCIE 00000005
RCIF 00000005
RCREG 0000001A
RCSTA 00000018
RD 00000000
RP0 00000005
RP1 00000006
RX9 00000006
RX9D 00000000
SPBRG 00000099
SPEN 00000007
SREN 00000005
STATUS 00000003
SYNC 00000004
T0CS 00000005
T0IE 00000005
T0IF 00000002
T0SE 00000004
T1CKPS0 00000004
T1CKPS1 00000005
T1CON 00000010
T1INSYNC 00000002
T1OSCEN 00000003
T1SYNC 00000002
T2CKPS0 00000000
T2CKPS1 00000001
T2CON 00000012
TMR0 00000001
TMR0IE 00000005
TMR0IF 00000002
TMR1CS 00000001
TMR1H 0000000F
TMR1IE 00000000
TMR1IF 00000000
TMR1L 0000000E
TMR1ON 00000000
TMR2 00000011
TMR2IE 00000001
TMR2IF 00000001
TMR2ON 00000002
TOUTPS0 00000003
TOUTPS1 00000004
TOUTPS2 00000005
TOUTPS3 00000006
TRISA 00000085
MPASM 5.39 PRACTICA6.ASM 10-4-2012 12:45:33 PAGE 5
SYMBOL TABLE
LABEL VALUE
TRISA0 00000000
TRISA1 00000001
TRISA2 00000002
TRISA3 00000003
TRISA4 00000004
TRISA5 00000005
TRISB 00000086
TRISB0 00000000
TRISB1 00000001
TRISB2 00000002
TRISB3 00000003
TRISB4 00000004
TRISB5 00000005
TRISB6 00000006
TRISB7 00000007
TRISC 00000087
TRISC0 00000000
TRISC1 00000001
TRISC2 00000002
TRISC3 00000003
TRISC4 00000004
TRISC5 00000005
TRISC6 00000006
TRISC7 00000007
TRMT 00000001
TX8_9 00000006
TX9 00000006
TX9D 00000000
TXD8 00000000
TXEN 00000005
TXIE 00000004
TXIF 00000004
TXREG 00000019
TXSTA 00000098
W 00000000
WR 00000001
WREN 00000002
WRERR 00000003
Z 00000002
_BODEN_OFF 00003FBF
_BODEN_ON 00003FFF
_CONFIG 00002007
_CPD_OFF 00003FFF
_CPD_ON 00003EFF
_CP_All 00000FCF
_CP_OFF 00003FFF
_DEBUG_OFF 00003FFF
_DEBUG_ON 000037FF
_DEVID1 00002006
_HS_OSC 00003FFE
_IDLOC0 00002000
_IDLOC1 00002001
_IDLOC2 00002002
MPASM 5.39 PRACTICA6.ASM 10-4-2012 12:45:33 PAGE 6
SYMBOL TABLE
LABEL VALUE
_IDLOC3 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
__16F870 00000001
__DEBUG 1
Errors : 0
Warnings : 8 reported, 0 suppressed
Messages : 0 reported, 0 suppressed
Archivo xx.HEX
:020000040000FA
:0C0000002330B0001430B00700000328CB
:04000C000034003488
:00000001FF
Comentarios y Conclusiones
Comentarios: 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.Conclusiones: 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)Bibliografa:http://es.wikipedia.org/wiki/MPLABhttp://www.todopic.com.ar/utiles/mplab_capitulo1.pdf