PIC18F1320 Caraterísticas Programación y Simulación

26
PIC18F1320 CARACTERÍSTICAS, PROGRAMACIÓN Y SIMULACIÓN Autor: Ing. GUILLERMO A. FERNÁNDEZ Carrera de Ingeniería Electrónica – Facultad de Ingeniería Universidad Nacional de Misiones Oberá – Misiones – Argentina - Año 2014 - TÉCNICAS DIGITALES 2 1

description

Caractarísticas del microcontrolador PIC18F1320

Transcript of PIC18F1320 Caraterísticas Programación y Simulación

Page 1: PIC18F1320 Caraterísticas Programación y Simulación

PIC18F1320CARACTERÍSTICAS,

PROGRAMACIÓN Y SIMULACIÓN

Autor: Ing. GUILLERMO A. FERNÁNDEZCarrera de Ingeniería Electrónica – Facultad de Ingeniería

Universidad Nacional de Misiones Oberá – Misiones – Argentina

- Año 2014 -

TÉCNICAS DIGITALES 2

1

Page 2: PIC18F1320 Caraterísticas Programación y Simulación

MicroMemoria de Programa Memoria de Datos

Flash(bytes)

Palabrasde 16 bits

SRAM(bytes)

EEPROM (bytes)

PIC18F1220 4K 2048 (2K) 256 256

PIC18F1320 8K 4096 (4K) 256 256

Características Especiales del Microcontrolador:• 100000 ciclos de lectura/escritura para la FLASH.

• 1000000 ciclos de lectura/escritura para la EEPROM.

• FLASH y EEPROM con retención > a 40 años.

• 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).

• Programación en circuito (ICSP).

• Debugging en circuito (ICD).

• Distintas opciones de Oscilador (interno y externo)

• Entrada de oscilador secundario.

• Monitor de señal de reloj.

• Perro guardián (WDT) extendido.

• Modos de bajo consumo: IDLE (CPU off, PERIF. on)

SLEEP (CPU off, PERIF. off)

Periféricos o Módulos:• 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 interrupción (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.

• Módulo Captura/Comparación/PWM.

• Módulo convertidor Analógico/Digital:

• Resolución de 10 bits.

• 7 canales de entrada, multiplexados (AN0…AN6).

• Opción de referencia externa (VREF+; VREF-).

• Módulo de comunicación serial sincrónica/asincrónica USART.

• Módulo para detección de bajo voltaje de alimentación.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

PIC18F1220/1320 Diagrama de pines

CARACTERÍSTICAS

2

Page 3: PIC18F1320 Caraterísticas Programación y Simulación

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 3

ESTRUCTURA INTERNA

Page 4: PIC18F1320 Caraterísticas Programación y Simulación

CONTADOR DE PROGRAMA (PC)Registro puntero de 21 bits que especifica la dirección de la próximainstrucción a ejecutar por la CPU. El usuario puede acceder al PC através de los registros PCLATU(PC<20:16>), PCLATH(PC<15:8>) yPCL(PC<7:0>).

PILA (STACK)Es una pila LIFO (Last Imput First Output) de 31 registros, separadosde las memorias de dato y de programa. Cada registro posee 21 bitsy almacena la dirección contenida en el PC, al momento deproducirse un desvío en el programa principal, causado por unllamado a subrutina (ejecución de CALL o RCALL) o una interrupción.

4K

x 1

6 b

its

16 bits

MEMORIA DE PROGRAMA (FLASH)Esta memoria almacena las instrucciones que debe ejecutar elmicrocontrolador. Dentro de la misma están los «vectores», quecorresponden a posiciones de memoria cuya dirección es cargadaautomáticamente en el PC ante un evento asociado a estos. Loseventos son:- RESET→→→→ Vector de Reset = 0000h.- INTERRUPCIÓN →→→→ Vector de Interrupc. en 0008h (Alta prioridad).

Vector de Interrupc. en 0018h (Baja prioridad).Cuando sucede alguno de estos eventos, se ejecuta la instrucciónque posee la dirección del vector correspondiente.La memoria de programa puede ser auto-programada por elfirmware, pudiéndose utilizar como memoria de datos permanente.Esta memoria también puede protegerse contra lectura, para evitarcopia del firmware.

MEMORIA DEPROGRAMA, STACK y PC

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 4

MEMORIA DE PROGRAMA

Page 5: PIC18F1320 Caraterísticas Programación y Simulación

ACCESS BANK : Banco 0 (00h – FFh)Access RAM low = GPR (00h – 7Fh) = 128 bytesAccess RAM high = SFR (80h – FFh) = 128 bytes

Registros de Propósito General (GPR)Estos registros de memoria SRAM son destinadosal almacenamiento de los datos que seránutilizados por el programa ejecutado en elmicrocontrolador.Registros de Función Especial (SFR)Estos registros de memoria SRAM permitenalmacenar información relacionada con el controly el estado del microcontrolador. En este espaciode memoria también existen registros quepermiten la configuración, control y utilización delos módulos que contiene el microcontrolador.

GPR

SFR

SRAM RAM ESTÁTICA

EEPROM (Datos permanentes)Esta memoria utilizada para almacenar datos enforma permanente, está constituida por 256bytes mapeados a parte de la memoria SRAM.Para acceder a la misma se utilizan los siguientesregistros ubicados en la zona SFR de la SRAM.

•EECON1: Control.

•EECON2: Control.

•EEDATA: Lectura/escritura.

•EEADR: Dirección.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 5

MEMORIA DE PROGRAMA

Page 6: PIC18F1320 Caraterísticas Programación y Simulación

Estos son todos los registros SFRdel microcontrolador PIC18F1320.Para más detalle de los mismos,consultar páginas 50 y 51correspondiente a la hoja de datosde este dispositivo.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 6

REGISTROS DE FUNCIONES ESPECIALES

Page 7: PIC18F1320 Caraterísticas Programación y Simulación

El Registro de Estado o STATUS REGISTER, contiene una serie de bits denominados flags, los cualesrepresentan el estado de las operaciones realizadas en la ALU del microprocesador. Los flags contenidos eneste registro son:

bit 0bit 7

U-0 R/W-xU-0 U-0 R/W-x R/W-x R/W-x R/W-x

Bit 7-5 No implementados: La lectura da «0».

Bit 6 N: Bit Negativo. Este «flag» indica que el resultado es negativo en una operación con números con signo

(sist.C2).

1 = Resultado negativo.

0 = Resultado positivo.

Bit 3 OV: Bit de Desbordamiento. Este «flag» indica que el resultado de una operación con números con

signo (sist.C2) ha superado el límite de representación (de -128 a +127).

1 = Hubo desbordamiento.

0 = No hubo desbordamiento.

Bit 2 Z: Bit Cero. Este «flag» indica cuando el resultado de una operación da como resultado «cero».

1 = Resultado cero.

0 = Resultado distinto de cero.

Bit 1 DC: Bit Acarreo de Dígito. Este «flag» indica cuando en el resultado de una operación existe un acarreo

desde el bit3 al bit4, indicando que en los 4 bits menos significativo se ha superado «9» (mayor número

en BCD).

1 = Hay acarreo de dígito.

0 = No hay acarreo de dígito.

Bit 0 C: Bit de Acarreo. Este «flag» indica cuando el resultado de una operación excede 255.

1 = Hay acarreo .

0 = No hay acarreo.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 7

REGISTRO DE ESTADO

Page 8: PIC18F1320 Caraterísticas Programación y Simulación

Para poner en funcionamiento al microcontrolador, primeramente deben configurarse ciertas características talescomo: tipo de oscilador utilizado, protección de la memoria, utilización del «Perro Guardián (Watchdog Timer,WDT)», etc. Estas características deben configurarse «quemando» unos fusibles ubicados en la denominada«Memoria de Configuración», indicada a continuación:

Los fusibles en realidad son bits de memoria flash ubicados en las posiciones indicadas en la tabla anterior. Estos bitspueden ser «quemados» cuando el microcontrolador es programado (descarga del programa en su memoria flash).

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 8

PALABRAS DE CONFIGURACIÓN

Page 9: PIC18F1320 Caraterísticas Programación y Simulación

CONFIG1H: Registro de configuración 1H (Dirección 300001h)

bit 0bit 7

R/P-1 U-0R/P-1 U-0 R/P-1 R/P-1 R/P-1 R/P-1

Bit 7 IESO: Bit de conmutación Interno/Externo.

1 = Modo conmutación Interno/Externo habilitado.

0 = Modo conmutación Interno/Externo deshabilitado.

Bit 6 FSCM: Bit de habilitación 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 selección 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 = Señal de clock externa con funcionamiento de RA6 como puerto (ECIO).

0100 = Señal 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 Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 9

PALABRAS DE CONFIGURACIÓN

Page 10: PIC18F1320 Caraterísticas Programación y Simulación

OSCILADORES EXTERNOS

Configuración para oscilador con señal de clock externa (EC)

ECIO - FOSC<3:0>: 0101

FOSC<3:0>: 0100

RA6

RCIO - FOSC<3:0>: 0111

FOSC<3:0>: 11xx

Configuración para oscilador RC externo (RC)

RA6

Configuración para oscilador XT, LP, HS o HSPLL

RA7

RA6

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

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 10

SEÑALES DE RELOJ (OSCILADORES)

Page 11: PIC18F1320 Caraterísticas Programación y Simulación

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

RA6

RB7

RA7

RB6

DIAGRAMA EN BLOQUES DE LOS OSCILADORES

OsciladoresInternos

También existe otro oscilador, que es del tipo RC. Este es denominado INTRC y produce una señal de reloj con una frecuencia de 31kHz.Este oscilador puede utilizarse como fuente principal de reloj. También es utilizado como fuente de reloj para el «Perro Guardián(WDT)», como fuente de reloj de inicio y como fuente auxiliar de reloj ante falla del oscilador primario indicado en la figura anterior. Eloscilador 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 Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 11

SEÑALES DE RELOJ (OSCILADORES)

Page 12: PIC18F1320 Caraterísticas Programación y Simulación

Cuando se produce un RESET, en el microcontrolador PIC18F1320 se desarrollan varias acciones. Una de ellas es la carga del registro PCcon la dirección del VECTOR DE RESET (0000h de la memoria de programa), ejecutándose la primer instrucción alojada en la memoriade programa. Otras de las acciones que ocurre al producirse un RESET, es la carga de los registros de uso especial (SFR) con un valorpredeterminado. Como consecuencia de esto, los módulos internos del micro adquieren una configuración por defecto. Por ejemplo,en el caso de los puertos del micro, estos son configurados todos como entradas al producirse un RESET.

INSTRUCCIÓN RESETCuando el microcontrolador ejecuta la instrucción RESET,se produce la carga de PC con la dirección del Vector deReset y los registros SFR son inicializados.

LLENADO Y VACIADO DE LA PILAEste reset sólo se produce cuando en la palabra deconfiguración CONFIG4L, el bit STVR0 = 1. La pila (Stack)posee un puntero de pila (Stack Pointer, SP) que almacenala dirección de la pila que ha sido ocupada con algunaoperación del micro (por ejemplo al ejecutar CALL, sealmacena el contenido de PC en la pila). Como la pilaposee 31 niveles, el SP puede valer de 1 a 31. EstandoSTVR0 = 1, cuando la pila se ha llenado (SP = 31), habrá unreset (Stack full reset). Lo mismo sucederá cuando la pilase ha vaciado (SP = 1) (Stack underflow reset). Este resettambién produce las mismas acciones que en el caso de laejecución de la instrucción RESET.

FUENTES DE RESET

(PIC18F1320)

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

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

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 12

RESET DEL MICROCONTROLADOR

Page 13: PIC18F1320 Caraterísticas Programación y Simulación

RESET POR WATCHDOG TIMER (WDT)Este reset se produce cuando el temporizador WDT sobrepasa su valormáximo. El WDT es habilitado a través de la palabra de configuraciónCONFIG2H, indicada a continuación:

bit 0bit 7

U-0U-0 R/P-1 R/P-1 R/P-1 R/P-1R/P-1U-0

DIAGRAMA EN BLOQUES, WDT

En la palabra anterior cuando WDTEN = 1, el funcionamiento del WDT es habilitado. En caso contrario, el usuario puede habilitar elfuncionamiento del WDT a través del bit SWDTEN del registro SFR denominado WDTCON.En funcionamiento normal del micro, la finalización 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 finalización del temporizado del WDT hace que el mismose «despierte» (wake-up). El despertar del micro, hace que este comience a ejecutar el programa desde donde había quedado cuandoentró en el modo bajo consumo.

Programación Postscaler

MASTER CLEAR RESET (MCLR)Los PIC18F1320 cuentan con la opción de configurar el pin RA5 como una entrada externapara reset. Para habilitar el pin MCLR, en la palabra de configuración CONFIG3H debe hacerseel bit MCLRE = 1. Una vez habilitada esta opción, durante el funcionamiento normal,poniendo un estado BAJO en RA5/MCLR, el micro es reseteado produciéndose las acciones yaindicadas para los resets anteriores.Como lo indica la figura, esta opción permite que el reset pueda efectuarse a través de unpulsador. Para este caso deben colocarse las resistencias indicadas, las cuales permiten limitarla corriente a través de RA5 configurado como MCLR.

RESET MANUAL CON PULSADOR

RA5

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 13

RESET DEL MICROCONTROLADOR

Page 14: PIC18F1320 Caraterísticas Programación y Simulación

POWER ON RESET (POR)Este reset se produce al energizar el micro. En realidad el POR seencuentra constituido por una serie de temporizaciones quemantienen al micro en estado de reset hasta la finalización de lasmismas. Estas temporizaciones son producidas por los siguientestimers:

- POWER ON RESET TIMER (PWRT): Este timer está constituido porun contador ascendente de 11 bits, el cual es incrementado a partirde la señal de reloj que proporciona el oscilador RC interno de31kHz. Este timer produce un temporizado típico de TPWRT = 66ms.Su utilidad es permitir que la tensión de alimentación del micro seestabilice alcanzando el valor mínimo VDD(min). El funcionamientodel PWRT es opcional, puede habilitarse en la palabra deconfiguración CONFIG2L, haciendo PWRTEN = 0.

- TIMER DEL OSCILADOR (OST): Este timer, que sólo funciona cuandoel micro opera con un cristal/resonador como oscilador primario,está constituido por un contador ascendente de 10 bits. Estecontador es incrementado por la señal proveniente de dichooscilador. La utilidad de este temporizado es permitir laestabilización del oscilador.

- TIMER DEL PLL: Este timer que produce un temporizado de TPLL =2ms, funciona sólo cuando el micro utiliza el PLL para incrementarla frecuencia del oscilador primario (cristal/resonador). Estetemporizado permite estabilizar el PLL.

Reset externo + PowerOn Reset externo

El circuito de la figura es utilizado cuando la fuente de alimentación del micro es «lenta» para alcanzarel valor de final de operación. El valor del capacitor debe escogerse de tal forma que la constante detiempo de este circuito auxiliar supere varias veces el tiempo que la fuente de alimentación tarda enalcanzar el valor VDD(min).

SECUENCIA DE EVENTOS CUANDO EL MICROES ENERGIZADO

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 14

RESET DEL MICROCONTROLADOR

Page 15: PIC18F1320 Caraterísticas Programación y Simulación

BROWN-OUT RESET (BOR)Para evitar el mal funcionamiento del microcontrolador, este reset seproduce cuando la tensión de alimentación del mismo sufre un «bajón»como lo indica la figura. La disminución de la tensión debe ser tal quecaiga por debajo del valor VBOR y se mantenga durante un tiempo TBOR ≥200µs. Pasado este tiempo, el micro se quedará en estado de resetmientras se cumpla la condición VDD<VBOR. El valor de la tensión VBORpuede modificarse a través de la palabra de configuración CONFIG2Lindicada a continuación:

BROWN-OUT RESET CON PWRT HABILITADO

bit 0bit 7

U-0U-0 U-0 R/P-1 R/P-1 R/P-1R/P-1U-0

Bit 7-4 No Implementados: La lectura da «0».

Bit 3-2 BORV1:BORV0: Bits para configuración de la tensión 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 habilitación del BOR.

1 = BOR habilitado.

0 = BOR no habilitado.

Bit 0 PWRTEN: Bit para habilitación 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 través de PWRTEN en lapalabra de configuración CONFIG2L. Esto puedeapreciarse en la figura anterior.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 15

RESET DEL MICROCONTROLADOR

Page 16: PIC18F1320 Caraterísticas Programación y Simulación

En la página 36 de la hoja de datos delmicrocontrolador PIC18F1320, puede apreciarse elestado que toman los distintos registros SFR antediferentes situaciones de reset.

RCON

STKPTR

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 16

RESET DEL MICROCONTROLADOR

La fuente que ocasiona el reset del micro, puede determinarseverificando algunos flags correspondientes a los registros defunción especial RCON y en STKPTR. Esto permite tomar algunadecisión en el programa, cuando ocurre un evento que resetea almicrocontrolador.

Page 17: PIC18F1320 Caraterísticas Programación y Simulación

A continuación se explica la metodología para desarrollar y simular un programa correspondienteal microcontrolador PIC18F1320. Para esto es utilizado un programa de ejemplo, cuyo enunciadoestá indicado a continuación.

PASOS:

Paso 1: DIAGRAMA DE FLUJO

Paso 2: PROGRAMAR

Paso 3: SIMULAR

PROGRAMA 1Determinar la posición del “UNO” de mayor peso en un dato alojado en la memoria RAM delmicrocontrolador PIC18F1320. Las posiciones de los bits pueden ser de 0 a 7.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 17

PROGRAMACIÓN EN EL MPLAB

Page 18: PIC18F1320 Caraterísticas Programación y Simulación

Paso 1: DIAGRAMA DE FLUJO

Leer e interpretar el problema y a partirde esto confeccionar el diagrama deflujo que representará la estructura delprograma, cumpliendo con la funciónrequerida. Cuanto más general es elprograma, es mas fácil de entender loque realiza el mismo.Para un programa puede realizarse undiagrama de flujo general y tambiéndiagramas de flujo para explicar cadaparte del diagrama general (esto es unabuena práctica para realizar).Para éste ejemplo, el diagrama de flujoprácticamente describe los pasos queejecutará el programa

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 18

PROGRAMACIÓN EN EL MPLAB

Page 19: PIC18F1320 Caraterísticas Programación y Simulación

Para realizar el programa, será utilizado el “Entorno de Desarrollo Integrado MPLAB”, el cual esprovisto de forma gratuita por Microchip (puede bajarse de la red). Esta herramienta contiene unaserie 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 código fuente (código enassembler). El archivo generado con este programa posee un extensión “.asm”.

- MPASM Assembler: Programa ensamblador que convierte el código fuente en código máquina(código objeto). Al ensamblar un programa (archivo .asm), se generan varios archivos. Algunosde ellos son:

- “.HEX”: Contiene el código máquina que será cargado en el micro.- “.cof”: Es utilizado para hacer el debugging del programa (por ejemplo la simulación).- “.lst”: Es una lista donde aparece de forma ordenada el código máquina de cada

instrucción, junto a la instrucción en assembler.- MPLAB Linker: Programa que combina diferentes archivos (generados por otros programas del

MPLAB), para generar un solo código máquina (archivo .HEX).

Paso 2: PROGRAMA EN ASSEMBLER

Los programas mencionados, están incorporados en el MPLAB. El entorno de desarrollo MPLAB,también permite agregar programas compiladores de “lenguaje C”, por ejemplo: C18 y C30 (deMicrochip), PIC-C (de CCS) o PICC (de HI-TECH). El MPLAB también permite programar los microcontroladores a través de programadores tales como: PICkit2, ICD2, etc. (todos fabricados porMicrochip) .

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 19

PROGRAMACIÓN EN EL MPLAB

Page 20: PIC18F1320 Caraterísticas Programación y Simulación

Para escribir un programa y realizar el debbuging (simulación), deberán realizarse los siguientes pasos luego de abrir elMPLAB (para mayor información ver “MPLAB_Guia_rapida.pdf”):

PASO A: CREAR UN PROYECTO EN MPLAB Menú Project →→→→ Project Wizard…Welcome! SiguienteStep One Device: Escoger dispositivo SiguienteStep Two Active Toolsuite: Escoger “Microchip MPASM Toolsuite” SiguienteStep Three Create New Project File: Browse Escoger ubicación y nombre del proyecto

(Ej: Prueba) Guardar SiguienteStep Four SiguienteSummary Siguiente

PASO B: CREAR PROGRAMA EN EL EDITORMenú File →→→→ New Con esto abre ventana del editor, donde puede escribirse el programa.Menú File →→→→ Save As… Escoger nombre para el programa y asignar extensión “.asm”

(Ej: Prueba.asm) Guardar

PASO C: ANEXAR PROGRAMA AL PROYECTOMenú 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 PROGRAMALuego de los pasos previos, seleccionando la ventana del editor puede escribirse elprograma. Para esto deberán considerarse los siguientes aspectos:

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 20

PROGRAMACIÓN EN EL MPLAB

Page 21: PIC18F1320 Caraterísticas Programación y Simulación

Encabezado

Define micro y sistema de numeración por defecto.

Incluye archivo con etiquetas correspondientea registros SFR.

Configura características de funcionamiento del micro (Ej: Tipo de oscilador, perro guardián, etc.)

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 21

PROGRAMACIÓN EN EL MPLAB

Page 22: PIC18F1320 Caraterísticas Programación y Simulación

Define etiquetas para direcciones de memoria RAM. Etiquetado relativo (0x000 es la primera dirección de RAM), permite agregar etiquetas fácilmente sin re-direccionar.

Define etiquetas para valores inmediatos. Etiquetado absoluto, sólo conveniente para valores numéricos.

Comienza el programaen la memoria FLASH. El programa estará almacenado a partir de La dirección 0x000.

Inicialización de las direcciones de RAM.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández22

PROGRAMACIÓN EN EL MPLAB

Page 23: PIC18F1320 Caraterísticas Programación y Simulación

Resto del programa

Bucle infinito para que la ejecución del programa permanezca en este lugar (sólo para este ejemplo).

Directiva que indica la finalización del texto al programa ensamblador(siempre debe escribirse).

IMPORTANTE. Para escribir el programa en el editor de texto del MPLAB, debe respetarse lasiguiente estructura de columnas:

Etiquetas Mnemónico Operandos ;Comentarioso Directiva

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 23

PROGRAMACIÓN EN EL MPLAB

Page 24: PIC18F1320 Caraterísticas Programación y Simulación

ENSAMBLADO: Una vez que se ha escrito el programa en el editor, deberá ensamblarse a los efectos de generarlos archivos necesarios para la simulación y el grabado de la memoria de programa del micro. Para realizar elensamblado hacer click en el botón “Build All” de la barra de herramientas.

Build All

Con esto también serán guardados todos los cambios efectuados en el proyecto presente. Si el ensamblado hasido correcto, en la ventana “output” aparece BUILD SUCCEEDED. Cerrando la ventana mencionada, puedecontinuarse con la simulación del programa.

Para efectuar la simulación, debe activarse el programa MPLAB SIM, esto se efectúa de la siguiente forma:

Menú Debugger →→→→ Select Tool →→→→ 4 MPLAB SIM

Con esto aparecerán en la barra de herramientas los siguientes botones para la simulación.

ResetEjecución paso a paso

Ejecución continua

Ejecución animada

Para agregar un punto de parada

(Breackpoint)

Paso 3: SIMULACIÓN DEL PROGRAMA

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 24

SIMULACIÓN EN EL MPLAB

Page 25: PIC18F1320 Caraterísticas Programación y Simulación

Para efectuar la simulación y comprobar el funcionamiento del programa realizado, además de la ventana correspondiente aleditor, deberán abrirse las ventanas WATCH y STOPWATCH. La primera permite visualizar el contenido de los registros internosdel micro (SFR y GPR), a medida que son ejecutadas las instrucciones del programa. La segunda ventana permite observar eltiempo que demora la ejecución del programa, como así también la cantidad de ciclos de instrucción ejecutados.

Ventana del editor

Ventana WATCH

Ventana STOPWATCH

Ventana OutputIndica si el ensamblado

ha sido correcto

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

Punto de parada

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 25

SIMULACIÓN EN EL MPLAB

Page 26: PIC18F1320 Caraterísticas Programación y Simulación

Para visualizar las ventanas mencionadas, debe procederse de la siguiente forma:

Ventana WATCH: Menú View →→→→ WATCHEsta ventana, a través de los botones Add SFR y Add Symbol, pueden agregarse ala ventana registros SFR y registros de memoria GPR (direcciones de RAM, queutiliza el programa ensamblado)

Ventana Output: Menú View →→→→ Output

Ventana STOPWATCH: Menú Debugger →→→→ STOPWATCHPara computar adecuadamente el tiempo, debe ajustarse la frecuencia deloscilador al valor con que trabajará el microcontrolador (Ej: 4 MHz). Paraesto debe procederse de la siguiente forma:

Menú Debugger →→→→ Settings… →→→→ En la ventana que aparece seleccionarOsc/Trace y modificar la frecuencia.Aplicar Aceptar

NOTA: Para mayor información sobre los puntos anteriores, puede consultarse en “MPLAB_Guia_rapida.pdf”.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández 26

SIMULACIÓN EN EL MPLAB