Tema 4 Organización de la memoria 1 Tema 4. Organización de la memoria ARQUITECTURA DEL PIC16F84 •Memoria de programa tipo ROM Flash de 1024 registros de 14 bits •Memoria de datos dividida en dos áreas: •Área RAM constituida por 22 registros de funciones especiales (SFR) y 68 de propósito general (GPR); cada registro es de 8 bits. •Área EEPROM de datos formada por 64 registros de 8 bits •ALU de 8 bits y registro de trabajo W •2 puertos: PORTA de 5 bits y PORTB de 8 bits •Contador de programa(PC) de 13 bits (que permite direccionar hastac 8k de registros de memoria) 2 Tema 4. Organización de la memoria Diagrama de bloques de la arquitectura interna del PIC16F84 (Figura 4-1 del libro) 3 Tema 4. Organización de la memoria ORGANIZACIÓN DE LA MEMORIA DEL PIC16F84 Memoria de programa •Tipo ROM Flash de 1024 registros de 14 bits. •No volátil. •La memoria de programa comienza en la posición 000h (vector de reset) y llega hasta la 3FFh. •Se escribe en la memoria de programa durante el proceso de grabación. Durante la ejecución del programa, la memoria de programa es sólo de lectura. 4 Tema 4. Organización de la memoria ORGANIZACIÓN DE LA MEMORIA DEL PIC16F84 Memoria de datos •Está dividida en dos áreas: •Área RAM : 22 registros de funciones especiales SFR (Special Function Registers) y 68 GPR (General Purpose Registers). Se destina a guardar las variables y datos. Es volátil. Cada registro tiene un tamaño de 8 bits (1byte). •Área EEPROM:64 registros de 1 byte. No volátil. •La memoria de datos es de lectura y escritura. 5 Tema 4. Organización de la memoria ORGANIZACIÓN DE LA MEMORIA DEL PIC16F84 La memoria de datos cuenta con 2 bancos de memoria: Banco 0 y Banco 1: •Los registros SFR están agrupados entre las direcciones 00h a 0Bh para el Banco 0 y entre las direcciones 80h hasta 8Bh para el Banco 1. Algunos registros SFR están duplicados. •Los registros GPR están formados por 68 posiciones de memoria que sólo están en el Banco 0 (desde la 0Ch hasta la 4Fh), porque las del Banco 1 se mapean sobre el Banco 0. Para seleccionar el banco hay que configurar el bit 5 (RP0) del registro STATUS. Con RP0=0 se accede al Banco 0 y con RP0=1 se accede al banco 1. El Banco 0 es seleccionado automáticamente después de un reset. Las zonas de memoria 50h-7Fh y D0h-FFh no son empleadas y devuelven un 0 en caso de lectura. 6 Tema 4. Organización de la memoria MEMORIA DE DATOS PIC 16F84A PROGRAMA: 1 K de celdas(14bits) DATOS: MEMORIA DE PROGRAMA 68 bytes de RAM (GPR) 64 bytes de EEPROM 7 Tema 4. Organización de la memoria EL CONTADOR DE PROGRAMA (PC) Un programa está compuesto por instrucciones que generalmente se ejecutan de forma secuencial. En el PIC16F84 cada una de esas instrucciones ocupa una posición de memoria de programa. El contador de programa o PC (Program Counter) es un registro interno que se utiliza para direccionar las instrucciones del programa de control que están almacenadas en la memoria de programa. Este registro contiene la dirección de la próxima instrucción a ejecutar y se incrementa automáticamente de manera que la secuencia natural de ejecución del programa es lineal, una instrucción después de otra. Cuando el microcontrolador se conecta a la alimentación o cuando ocurre un reset, el contador de programa se pone a cero forzando así que la dirección de inicio sea la 000h (vector de reset). La primera instrucción ejecutada será la que esté grabada en esta posición. 8 Tema 4. Organización de la memoria REGISTROS DE FUNCIONES ESPECIALES (SFR) Registros relacionados con los puertos: PORTA, PORTB son los registros asociados con los puertos y son de lectura/escritura TRISA y TRISB son los registros de configuración de los puertos. Un “0” en un bit lo configura como salida, mientras que un “1” lo configura como entrada. 9 Tema 4. Organización de la memoria REGISTROS DE FUNCIONES ESPECIALES (SFR) Registros relacionados con el PC: PCL (Program Counter Low byte) PCH (Program Counter High byte) PC 12 11 10 9 PCH 8 7 6 5 4 3 2 1 0 PCL 10 Tema 4. Organización de la memoria REGISTROS DE FUNCIONES ESPECIALES (SFR) Registro de trabajo W (Work) o acumulador: es el registro principal de la ALU y participa en la mayoría de las instrucciones Registro de estado o STATUS: los bits de este registro indican el estado de la última operación aritmética o lógica realizada, la causa de reset y los bits de selección de banco para la memoria de datos. A los bits del registro STATUS se les suele denominar flags o banderas. 11 Tema 4. Organización de la memoria REGISTROS DE FUNCIONES ESPECIALES (SFR) 12 Tema 4. Organización de la memoria REGISTRO DE CONFIGURACIÓN El registro de configuración (Configuration Word) dispone de 14 bits y se escribe en él durante el proceso de grabación y no se puede modificar durante la ejecución del programa. Ocupa la posición reservada de memoria de programa 2007h. 13 Tema 4. Organización de la memoria PIC 16F877A 14 Tema 4. Organización de la memoria MEMORIA DE PROGRAMA PIC 16F877A PROGRAMA: 8 K de celdas(14bits) DATOS: 368 bytes de RAM (GPR) 256 bytes de EEPROM 15 Tema 4. Organización de la memoria MEMORIA DE DATOS PIC 16F877A PROGRAMA: 8 K de celdas(14bits) DATOS: 368 bytes de RAM (GPR) 256 bytes de EEPROM 16 BIBLIOGRAFÍA "Microcontrolador PIC16F84, Desarrollo de proyectos" E. Palacios, F. Remiro, L.J. López. Ra-Ma, 2004 Podéis encontrar más información de este Tema 4 en el CAPÍTULO 4 Y en los manuales de los microcontroladores……… 17