Está en la página 1de 26

TCNICAS DIGITALES 2

PIC18F1320
CARACTERSTICAS,
PROGRAMACIN Y SIMULACIN
Autor: Ing. GUILLERMO A. FERNNDEZ
Carrera de Ingeniera Electrnica Facultad de Ingeniera
Universidad Nacional de Misiones
Ober Misiones Argentina

- Ao 2014 -

CARACTERSTICAS
PIC18F1220/1320 Diagrama de pines

Memoria de Programa
Micro

Memoria de Datos

Flash
(bytes)

Palabras
de 16 bits

SRAM
(bytes)

EEPROM
(bytes)

PIC18F1220

4K

2048 (2K)

256

256

PIC18F1320

8K

4096 (4K)

256

256

Perifricos o Mdulos:

Caractersticas Especiales del Microcontrolador:

100000 ciclos de lectura/escritura para la FLASH.


1000000 ciclos de lectura/escritura para la EEPROM.
FLASH y EEPROM con retencin > a 40 aos.
Memoria de programa auto-programable.
Interrupciones con niveles de prioridad.
Hardware multiplicador de 8x8.
Amplio voltaje de aliment.: 2,0V a 5,0V (no todas las versiones).
Programacin en circuito (ICSP).
Debugging en circuito (ICD).
Distintas opciones de Oscilador (interno y externo)
Entrada de oscilador secundario.
Monitor de seal de reloj.
Perro guardin (WDT) extendido.
Modos de bajo consumo: IDLE (CPU off, PERIF. on)
SLEEP (CPU off, PERIF. off)

Dos puertos de 8 bits con alta capacidad de corriente


(sink/source 25mA/25mA por cada pin) :
PORTA: 7 pines E/S y 1 pin solo entrada.
PORTB: 8 pines E/S.
Tres fuentes externas de interrupcin (INT0, INT1 y INT2).
Interrupciones externas por cambio de estado (para lectura
de teclado).
Cuatro temporizadores:
TIMER0: Temporizador/contador de 8 16 bits.
TIMER1: Temporizador/contador de 16 bits.
TIMER2: Temporizador de 8 bits.
TIMER3: Temporizador/contador de 16 bits.
Mdulo Captura/Comparacin/PWM.
Mdulo convertidor Analgico/Digital:
Resolucin de 10 bits.
7 canales de entrada, multiplexados (AN0AN6).
Opcin de referencia externa (VREF+; VREF-).
Mdulo de comunicacin serial sincrnica/asincrnica USART.
Mdulo para deteccin de bajo voltaje de alimentacin.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

ESTRUCTURA INTERNA

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

MEMORIA DE PROGRAMA
CONTADOR DE PROGRAMA (PC)
Registro puntero de 21 bits que especifica la direccin de la prxima
instruccin a ejecutar por la CPU. El usuario puede acceder al PC a
travs de los registros PCLATU(PC<20:16>), PCLATH(PC<15:8>) y
PCL(PC<7:0>).

PILA (STACK)
4K x 16 bits

Es una pila LIFO (Last Imput First Output) de 31 registros, separados


de las memorias de dato y de programa. Cada registro posee 21 bits
y almacena la direccin contenida en el PC, al momento de
producirse un desvo en el programa principal, causado por un
llamado a subrutina (ejecucin de CALL o RCALL) o una interrupcin.

MEMORIA DE PROGRAMA (FLASH)

16 bits

MEMORIA DE
PROGRAMA, STACK y PC

Esta memoria almacena las instrucciones que debe ejecutar el


microcontrolador. Dentro de la misma estn los vectores, que
corresponden a posiciones de memoria cuya direccin es cargada
automticamente en el PC ante un evento asociado a estos. Los
eventos son:
- RESET
Vector de Reset = 0000h.
- INTERRUPCIN Vector de Interrupc. en 0008h (Alta prioridad).
Vector de Interrupc. en 0018h (Baja prioridad).
Cuando sucede alguno de estos eventos, se ejecuta la instruccin
que posee la direccin del vector correspondiente.
La memoria de programa puede ser auto-programada por el
firmware, pudindose utilizar como memoria de datos permanente.
Esta memoria tambin puede protegerse contra lectura, para evitar
copia del firmware.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

MEMORIA DE PROGRAMA

SRAM

RAM ESTTICA
Registros de Propsito General (GPR)
Estos registros de memoria SRAM son destinados
al almacenamiento de los datos que sern
utilizados por el programa ejecutado en el
microcontrolador.

Registros de Funcin Especial (SFR)

GPR
SFR

Estos registros de memoria SRAM permiten


almacenar informacin relacionada con el control
y el estado del microcontrolador. En este espacio
de memoria tambin existen registros que
permiten la configuracin, control y utilizacin de
los mdulos que contiene el microcontrolador.

ACCESS BANK : Banco 0 (00h FFh)


Access RAM low = GPR (00h 7Fh) = 128 bytes
Access RAM high = SFR (80h FFh) = 128 bytes

EEPROM (Datos permanentes)


Esta memoria utilizada para almacenar datos en
forma permanente, est constituida por 256
bytes mapeados a parte de la memoria SRAM.
Para acceder a la misma se utilizan los siguientes
registros ubicados en la zona SFR de la SRAM.
EECON1: Control. EEDATA: Lectura/escritura.
EECON2: Control. EEADR: Direccin.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

REGISTROS DE FUNCIONES ESPECIALES

Estos son todos los registros SFR


del microcontrolador PIC18F1320.
Para ms detalle de los mismos,
consultar pginas 50 y 51
correspondiente a la hoja de datos
de este dispositivo.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

REGISTRO DE ESTADO
El Registro de Estado o STATUS REGISTER, contiene una serie de bits denominados flags, los cuales
representan el estado de las operaciones realizadas en la ALU del microprocesador. Los flags contenidos en
este registro son:
U-0

U-0

U-0

bit 7

R/W-x

R/W-x

R/W-x

R/W-x

R/W-x

bit 0

Bit 7-5

No implementados: La lectura da 0.

Bit 6

N: Bit Negativo. Este flag indica que el resultado es negativo en una operacin con nmeros con signo
(sist.C2).
1 = Resultado negativo.
0 = Resultado positivo.

Bit 3

OV: Bit de Desbordamiento. Este flag indica que el resultado de una operacin con nmeros con
signo (sist.C2) ha superado el lmite de representacin (de -128 a +127).
1 = Hubo desbordamiento.
0 = No hubo desbordamiento.

Bit 2

Z: Bit Cero. Este flag indica cuando el resultado de una operacin da como resultado cero.
1 = Resultado cero.
0 = Resultado distinto de cero.

Bit 1

DC: Bit Acarreo de Dgito. Este flag indica cuando en el resultado de una operacin existe un acarreo
desde el bit3 al bit4, indicando que en los 4 bits menos significativo se ha superado 9 (mayor nmero
en BCD).
1 = Hay acarreo de dgito.
0 = No hay acarreo de dgito.

Bit 0

C: Bit de Acarreo. Este flag indica cuando el resultado de una operacin excede 255.
1 = Hay acarreo .
0 = No hay acarreo.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

PALABRAS DE CONFIGURACIN
Para poner en funcionamiento al microcontrolador, primeramente deben configurarse ciertas caractersticas tales
como: tipo de oscilador utilizado, proteccin de la memoria, utilizacin del Perro Guardin (Watchdog Timer,
WDT), etc. Estas caractersticas deben configurarse quemando unos fusibles ubicados en la denominada
Memoria de Configuracin, indicada a continuacin:

Los fusibles en realidad son bits de memoria flash ubicados en las posiciones indicadas en la tabla anterior. Estos bits
pueden ser quemados cuando el microcontrolador es programado (descarga del programa en su memoria flash).
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

PALABRAS DE CONFIGURACIN
CONFIG1H: Registro de configuracin 1H (Direccin 300001h)
R/P-1

R/P-1

U-0

U-0

R/P-1

bit 7

R/P-1

R/P-1

R/P-1

bit 0

Bit 7

IESO: Bit de conmutacin Interno/Externo.


1 = Modo conmutacin Interno/Externo habilitado.
0 = Modo conmutacin Interno/Externo deshabilitado.

Bit 6

FSCM: Bit de habilitacin del monitor de falla de clock.


1 = Monitor de falla de clock habilitado.
0 = Monitor de falla de clock deshabilitado.

Bit 5-4

No Implementados: La lectura da 0.

Bit 3-0

FOSC<3:0>: Bits de seleccin del oscilador.


11xx = Oscilador RC externo con salida CLKO por RA6/OSC2.
1001 = Oscilador interno con salida CLKO por RA6 y funcionamiento de RA7/OSC1 como puerto (INTIO1).
1000 = Oscilador interno con funcionamiento de RA6/OSC2 y RA7/OSC1 como puertos (INTIO2).
0111 = Oscilador RC externo con funcionamiento de RA6/OSC2 como puerto (RCIO).
0110 = Oscilador con cristal/resonador de alta velocidad con PLL habilitado (HSPLL), FCY = 4 x FOSC1.
0101 = Seal de clock externa con funcionamiento de RA6 como puerto (ECIO).
0100 = Seal de clock externa (EC) con salida CLKO por RA6.
0010 = Oscilador con cristal/resonador de alta velocidad (HS), mayor a 4MHz.
0001 = Oscilador con cristal/resonador (XT), entre 200kHz y 4MHz.
0000 = Oscilador con cristal/resonador de bajo consumo (LP), hasta 200kHz.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

SEALES DE RELOJ (OSCILADORES)


OSCILADORES EXTERNOS
RA7
RA6

FOSC<3:0>: 0100

RA6

RA6

FOSC<3:0>: 11xx
FOSC<3:0>: 0001; 0000; 0010; 0110

ECIO - FOSC<3:0>: 0101

Configuracin para oscilador


con seal de clock externa (EC)

RCIO - FOSC<3:0>: 0111

Configuracin para oscilador


RC externo (RC)

Configuracin para oscilador


XT, LP, HS o HSPLL
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

10

SEALES DE RELOJ (OSCILADORES)


OSCILADORES INTERNOS
Los microcontroladores PIC18F1320/1330 poseen dos osciladores internos que pueden utilizarse como fuentes para el reloj del
dispositivo, eliminando as la necesidad de un oscilador externo conectado a RA7/OSC1 y/o RA6/OSC2. El oscilador interno principal
INTOSC genera una seal con frecuencia de 8MHz, que puede ser adaptada por el programa del usuario mediante el registro OSCCON
(bits<6:4>).

RA6
RA7
RB6
RB7

Osciladores
Internos

DIAGRAMA EN BLOQUES DE
LOS OSCILADORES

Tambin existe otro oscilador, que es del tipo RC. Este es denominado INTRC y produce una seal de reloj con una frecuencia de 31kHz.
Este oscilador puede utilizarse como fuente principal de reloj. Tambin es utilizado como fuente de reloj para el Perro Guardin
(WDT), como fuente de reloj de inicio y como fuente auxiliar de reloj ante falla del oscilador primario indicado en la figura anterior. El
oscilador secundario, principalmente es utilizado como fuente de reloj para el TIMER1 del microcontrolador.
Los dos osciladores internos (INTOSC y INTRC) permiten el funcionamiento como:
INTIO1 (FOSC<3:0>: 1001 ) = Oscilador interno con salida CLKO por RA6 y funcionamiento de RA7/OSC1 como puerto.
INTIO2 (FOSC<3:0>: 1000 ) = Oscilador interno con funcionamiento de RA6/OSC2 y RA7/OSC1 como puertos.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

11

RESET DEL MICROCONTROLADOR


Cuando se produce un RESET, en el microcontrolador PIC18F1320 se desarrollan varias acciones. Una de ellas es la carga del registro PC
con la direccin del VECTOR DE RESET (0000h de la memoria de programa), ejecutndose la primer instruccin alojada en la memoria
de programa. Otras de las acciones que ocurre al producirse un RESET, es la carga de los registros de uso especial (SFR) con un valor
predeterminado. Como consecuencia de esto, los mdulos internos del micro adquieren una configuracin por defecto. Por ejemplo,
en el caso de los puertos del micro, estos son configurados todos como entradas al producirse un RESET.

FUENTES
DE RESET
(PIC18F1320)

INTERNAS
- Instruccin RESET.
- Llenado y vaciado de la pila (Stack).
- Reset por Watchdog timer (WDT).

EXTERNAS
- Master Clear Reset (MCLR).
- Power On Reset (POR).
- Brown-out Reset (BOR).

INSTRUCCIN RESET
Cuando el microcontrolador ejecuta la instruccin RESET,
se produce la carga de PC con la direccin del Vector de
Reset y los registros SFR son inicializados.

LLENADO Y VACIADO DE LA PILA


Este reset slo se produce cuando en la palabra de
configuracin CONFIG4L, el bit STVR0 = 1. La pila (Stack)
posee un puntero de pila (Stack Pointer, SP) que almacena
la direccin de la pila que ha sido ocupada con alguna
operacin del micro (por ejemplo al ejecutar CALL, se
almacena el contenido de PC en la pila). Como la pila
posee 31 niveles, el SP puede valer de 1 a 31. Estando
STVR0 = 1, cuando la pila se ha llenado (SP = 31), habr un
reset (Stack full reset). Lo mismo suceder cuando la pila
se ha vaciado (SP = 1) (Stack underflow reset). Este reset
tambin produce las mismas acciones que en el caso de la
ejecucin de la instruccin RESET.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

12

RESET DEL MICROCONTROLADOR


RESET POR WATCHDOG TIMER (WDT)

DIAGRAMA EN
BLOQUES, WDT

Este reset se produce cuando el temporizador WDT sobrepasa su valor


mximo. El WDT es habilitado a travs de la palabra de configuracin
CONFIG2H, indicada a continuacin:
U-0

U-0

U-0

R/P-1

R/P-1

R/P-1

R/P-1

bit 7

R/P-1
bit 0

Programacin
Postscaler

En la palabra anterior cuando WDTEN = 1, el funcionamiento del WDT es habilitado. En caso contrario, el usuario puede habilitar el
funcionamiento del WDT a travs del bit SWDTEN del registro SFR denominado WDTCON.
En funcionamiento normal del micro, la finalizacin del temporizado del WDT produce las mismas acciones que los resets anteriores.
Cuando el micro se encuentra en un estado de bajo consumo (IDLE o SLEEP), la finalizacin del temporizado del WDT hace que el mismo
se despierte (wake-up). El despertar del micro, hace que este comience a ejecutar el programa desde donde haba quedado cuando
entr en el modo bajo consumo.

MASTER CLEAR RESET (MCLR)


Los PIC18F1320 cuentan con la opcin de configurar el pin RA5 como una entrada externa
para reset. Para habilitar el pin MCLR, en la palabra de configuracin CONFIG3H debe hacerse
el bit MCLRE = 1. Una vez habilitada esta opcin, durante el funcionamiento normal,
poniendo un estado BAJO en RA5/MCLR, el micro es reseteado producindose las acciones ya
indicadas para los resets anteriores.
Como lo indica la figura, esta opcin permite que el reset pueda efectuarse a travs de un
pulsador. Para este caso deben colocarse las resistencias indicadas, las cuales permiten limitar
la corriente a travs de RA5 configurado como MCLR.

RESET MANUAL CON


PULSADOR

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

RA5

13

RESET DEL MICROCONTROLADOR


POWER ON RESET (POR)
Este reset se produce al energizar el micro. En realidad el POR se
encuentra constituido por una serie de temporizaciones que
mantienen al micro en estado de reset hasta la finalizacin de las
mismas. Estas temporizaciones son producidas por los siguientes
timers:

SECUENCIA DE EVENTOS CUANDO EL MICRO


ES ENERGIZADO

- POWER ON RESET TIMER (PWRT): Este timer est constituido por


un contador ascendente de 11 bits, el cual es incrementado a partir
de la seal de reloj que proporciona el oscilador RC interno de
31kHz. Este timer produce un temporizado tpico de TPWRT = 66ms.
Su utilidad es permitir que la tensin de alimentacin del micro se
estabilice alcanzando el valor mnimo VDD(min). El funcionamiento
del PWRT es opcional, puede habilitarse en la palabra de
configuracin CONFIG2L, haciendo PWRTEN = 0.
- TIMER DEL OSCILADOR (OST): Este timer, que slo funciona cuando
el micro opera con un cristal/resonador como oscilador primario,
est constituido por un contador ascendente de 10 bits. Este
contador es incrementado por la seal proveniente de dicho
oscilador. La utilidad de este temporizado es permitir la
estabilizacin del oscilador.
- TIMER DEL PLL: Este timer que produce un temporizado de TPLL =
2ms, funciona slo cuando el micro utiliza el PLL para incrementar
la frecuencia del oscilador primario (cristal/resonador). Este
temporizado permite estabilizar el PLL.

Reset externo + Power


On Reset externo

El circuito de la figura es utilizado cuando la fuente de alimentacin del micro es lenta para alcanzar
el valor de final de operacin. El valor del capacitor debe escogerse de tal forma que la constante de
tiempo de este circuito auxiliar supere varias veces el tiempo que la fuente de alimentacin tarda en
alcanzar el valor VDD(min).

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

14

RESET DEL MICROCONTROLADOR


BROWN-OUT RESET (BOR)
Para evitar el mal funcionamiento del microcontrolador, este reset se
produce cuando la tensin de alimentacin del mismo sufre un bajn
como lo indica la figura. La disminucin de la tensin debe ser tal que
caiga por debajo del valor VBOR y se mantenga durante un tiempo TBOR
200s. Pasado este tiempo, el micro se quedar en estado de reset
mientras se cumpla la condicin VDD<VBOR. El valor de la tensin VBOR
puede modificarse a travs de la palabra de configuracin CONFIG2L
indicada a continuacin:
U-0

U-0

U-0

U-0

R/P-1

R/P-1

R/P-1

bit 7

BROWN-OUT RESET CON PWRT


HABILITADO

R/P-1
bit 0

Bit 7-4

No Implementados: La lectura da 0.

Bit 3-2

BORV1:BORV0: Bits para configuracin de la tensin VBOR.


11 = Reservado.
10 = VBOR seteado a 2,7V.
01 = VBOR seteado a 4,2V.
00 = VBOR seteado a 4,5V.

Bit 1

BOR: Bit para habilitacin del BOR.


1 = BOR habilitado.
0 = BOR no habilitado.

Bit 0

PWRTEN: Bit para habilitacin del temporizado PWRT.


1 = PWRT no habilitado.
0 = PWRT habilitado.

La salida del BOR puede activar el temporizador PWRT,


si el mismo se encuentra activa a travs de PWRTEN en la
palabra de configuracin CONFIG2L. Esto puede
apreciarse en la figura anterior.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

15

RESET DEL MICROCONTROLADOR


La fuente que ocasiona el reset del micro, puede determinarse
verificando algunos flags correspondientes a los registros de
funcin especial RCON y en STKPTR. Esto permite tomar alguna
decisin en el programa, cuando ocurre un evento que resetea al
microcontrolador.

RCON

STKPTR

En la pgina 36 de la hoja de datos del


microcontrolador PIC18F1320, puede apreciarse el
estado que toman los distintos registros SFR ante
diferentes situaciones de reset.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

16

PROGRAMACIN EN EL MPLAB
A continuacin se explica la metodologa para desarrollar y simular un programa correspondiente
al microcontrolador PIC18F1320. Para esto es utilizado un programa de ejemplo, cuyo enunciado
est indicado a continuacin.

PROGRAMA 1
Determinar la posicin del UNO de mayor peso en un dato alojado en la memoria RAM del
microcontrolador PIC18F1320. Las posiciones de los bits pueden ser de 0 a 7.

PASOS:
Paso 1: DIAGRAMA DE FLUJO
Paso 2: PROGRAMAR
Paso 3: SIMULAR

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

17

PROGRAMACIN EN EL MPLAB
Paso 1: DIAGRAMA DE FLUJO
Leer e interpretar el problema y a partir
de esto confeccionar el diagrama de
flujo que representar la estructura del
programa, cumpliendo con la funcin
requerida. Cuanto ms general es el
programa, es mas fcil de entender lo
que realiza el mismo.
Para un programa puede realizarse un
diagrama de flujo general y tambin
diagramas de flujo para explicar cada
parte del diagrama general (esto es una
buena prctica para realizar).
Para ste ejemplo, el diagrama de flujo
prcticamente describe los pasos que
ejecutar el programa

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

18

PROGRAMACIN EN EL MPLAB
Paso 2: PROGRAMA EN ASSEMBLER
Para realizar el programa, ser utilizado el Entorno de Desarrollo Integrado MPLAB, el cual es
provisto de forma gratuita por Microchip (puede bajarse de la red). Esta herramienta contiene una
serie de programas que permiten el desarrollo de Sistemas Embebidos (Embedded System).
Algunos de los programas incluidos en MPLAB son:
- MPLAB Editor: Este programa es un editor de texto donde se escribe el cdigo fuente (cdigo en
assembler). El archivo generado con este programa posee un extensin .asm.
- MPASM Assembler: Programa ensamblador que convierte el cdigo fuente en cdigo mquina
(cdigo objeto). Al ensamblar un programa (archivo .asm), se generan varios archivos. Algunos
de ellos son:
- .HEX: Contiene el cdigo mquina que ser cargado en el micro.
- .cof: Es utilizado para hacer el debugging del programa (por ejemplo la simulacin).
- .lst: Es una lista donde aparece de forma ordenada el cdigo mquina de cada
instruccin, junto a la instruccin en assembler.
- MPLAB Linker: Programa que combina diferentes archivos (generados por otros programas del
MPLAB), para generar un solo cdigo mquina (archivo .HEX).
Los programas mencionados, estn incorporados en el MPLAB. El entorno de desarrollo MPLAB,
tambin permite agregar programas compiladores de lenguaje C, por ejemplo: C18 y C30 (de
Microchip), PIC-C (de CCS) o PICC (de HI-TECH). El MPLAB tambin permite programar los micro
controladores a travs de programadores tales como: PICkit2, ICD2, etc. (todos fabricados por
Microchip) .
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

19

PROGRAMACIN EN EL MPLAB
Para escribir un programa y realizar el debbuging (simulacin), debern realizarse los siguientes pasos luego de abrir el
MPLAB (para mayor informacin ver MPLAB_Guia_rapida.pdf):
PASO A: CREAR UN PROYECTO EN MPLAB
Men Project Project Wizard
Welcome!
Siguiente
Step One
Device: Escoger dispositivo
Siguiente
Step Two
Active Toolsuite: Escoger Microchip MPASM Toolsuite
Siguiente
Step Three
Create New Project File: Browse Escoger ubicacin y nombre del proyecto
(Ej: Prueba) Guardar
Siguiente
Step Four
Siguiente
Summary
Siguiente
PASO B: CREAR PROGRAMA EN EL EDITOR
Men File New Con esto abre ventana del editor, donde puede escribirse el programa.
Men File Save As Escoger nombre para el programa y asignar extensin .asm
(Ej: Prueba.asm)
Guardar
PASO C: ANEXAR PROGRAMA AL PROYECTO
Men View Activar con tilde Project y Output (pueden aparecer con el tilde por
defecto).
Men Window Seleccionar la ventana de proyecto (Ej: Prueba.mcw)
Click derecho sobre carpeta Source Files Add Files Seleccionar el archivo .asm
generado en el paso anterior
(Ej: Prueba.asm ).
PASO D: ESCRIBIR PROGRAMA
Luego de los pasos previos, seleccionando la ventana del editor puede escribirse el
programa. Para esto debern considerarse los siguientes aspectos:

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

20

PROGRAMACIN EN EL MPLAB

Encabezado
Define micro y sistema de
numeracin por defecto.
Incluye archivo con
etiquetas correspondiente
a registros SFR.
Configura caractersticas de
funcionamiento del micro
(Ej: Tipo de oscilador, perro
guardin, etc.)

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

21

PROGRAMACIN EN EL MPLAB
Define etiquetas para
direcciones de memoria
RAM. Etiquetado relativo
(0x000 es la primera
direccin de RAM), permite
agregar etiquetas fcilmente
sin re-direccionar.
Define etiquetas para
valores inmediatos.
Etiquetado absoluto, slo
conveniente para valores
numricos.
Comienza el programa
en la memoria FLASH. El
programa estar
almacenado a partir de La
direccin 0x000.
Inicializacin de las
direcciones de RAM.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

22

PROGRAMACIN EN EL MPLAB
Resto del programa

Bucle infinito para que la


ejecucin del programa
permanezca en este lugar
(slo para este ejemplo).

Directiva que indica la


finalizacin del texto al
programa ensamblador
(siempre debe escribirse).
IMPORTANTE. Para escribir el programa en el editor de texto del MPLAB, debe respetarse la
siguiente estructura de columnas:
Etiquetas

Mnemnico
o Directiva

Operandos

;Comentarios

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

23

SIMULACIN EN EL MPLAB
Paso 3: SIMULACIN DEL PROGRAMA
ENSAMBLADO: Una vez que se ha escrito el programa en el editor, deber ensamblarse a los efectos de generar
los archivos necesarios para la simulacin y el grabado de la memoria de programa del micro. Para realizar el
ensamblado hacer click en el botn Build All de la barra de herramientas.
Build All

Con esto tambin sern guardados todos los cambios efectuados en el proyecto presente. Si el ensamblado ha
sido correcto, en la ventana output aparece BUILD SUCCEEDED. Cerrando la ventana mencionada, puede
continuarse con la simulacin del programa.
Para efectuar la simulacin, debe activarse el programa MPLAB SIM, esto se efecta de la siguiente forma:
Men Debugger Select Tool 4 MPLAB SIM
Con esto aparecern en la barra de herramientas los siguientes botones para la simulacin.
Para agregar un
punto de parada
(Breackpoint)

Ejecucin
continua
Ejecucin
animada

Ejecucin Reset
paso a paso

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

24

SIMULACIN EN EL MPLAB
Para efectuar la simulacin y comprobar el funcionamiento del programa realizado, adems de la ventana correspondiente al
editor, debern abrirse las ventanas WATCH y STOPWATCH. La primera permite visualizar el contenido de los registros internos
del micro (SFR y GPR), a medida que son ejecutadas las instrucciones del programa. La segunda ventana permite observar el
tiempo que demora la ejecucin del programa, como as tambin la cantidad de ciclos de instruccin ejecutados.

Ventana
WATCH

Ventana
del editor

Ventana
STOPWATCH

Punto de
parada

NOTA: Para que las ventanas aparezcan como en la figura anterior, el usuario
debe ubicarlas.

Ventana Output
Indica si el ensamblado
ha sido correcto

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

25

SIMULACIN EN EL MPLAB
Para visualizar las ventanas mencionadas, debe procederse de la siguiente forma:
Ventana WATCH: Men View WATCH
Esta ventana, a travs de los botones Add SFR y Add Symbol, pueden agregarse a
la ventana registros SFR y registros de memoria GPR (direcciones de RAM, que
utiliza el programa ensamblado)
Ventana Output: Men View Output
Ventana STOPWATCH: Men Debugger STOPWATCH
Para computar adecuadamente el tiempo, debe ajustarse la frecuencia del
oscilador al valor con que trabajar el microcontrolador (Ej: 4 MHz). Para
esto debe procederse de la siguiente forma:
Men Debugger Settings En la ventana que aparece seleccionar
Osc/Trace y modificar la frecuencia.
Aplicar
Aceptar
NOTA: Para mayor informacin sobre los puntos anteriores, puede consultarse en
MPLAB_Guia_rapida.pdf.

U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez

26