mtab

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