REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3...

15
REGISTROS REGISTROS DE FUNCIONES ESPECIALES (SFR) DEL PIC 16F84A

Transcript of REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3...

Page 1: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

REGISTROSREG I ST ROS DE FUN CI ON ES ESPECI A LES (SFR) DEL PI C 16F84 A

Page 2: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

Características de los registros SFR

Registro de trabajo (W). Es el registro principal del microcontrolador y participa en la mayoría de las instrucciones.

Contador de Programa (PC). Se utiliza para direccionar las instrucciones del programa de control que están almacenadas en la memoria de programa.

Contiene la dirección de la próxima instrucción a ejecutar y se incrementa automáticamente y secuencial.

El registro PC tiene una longitud de 13 bits y está formado por dos resgistros:

a) PCL (PC low). Su contenido corresponde con los 8 bits menos significativos del registro PC. Este registro es de lectura/escritura (R/W).

b) PCH (PC High). Contiene los cinco bits más significativos del registro PC y no se tiene acceso.

PCH(5 bits)

PCL(8 bits)

Registro PC

Page 3: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

STATUS. Este registro indica:

a) El estado de la última operación aritmética o lógica realizadab) La causa de un resetc) Los bits de selección de banco para la memoria de datos

A los bits de este registro se les denomina “BANDERAS (FLAGS)”.

Al conectar la alimentación al microcontrolador, el contenido del registro STATUS tiene el valor B’00011xxx’

IRP RP1 RP0 CPD Z DCTO

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

STATUS

Page 4: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

CARRY BIT (C). Bandera de acarreo (bit 0).

Indica cuando el resultado de una operación aritmética o lógica ha superado el valor 255d, entonces se dice que se ha producido un desbordamiento (overflow) y se genera un bit de acarreo.

SUMA RESTA

C=1 Indica que se ha generado un bit de acarreo

Indica que el resultado es de valor POSITIVO

C=0 Indica que NO se ha generado un bit de acarreo

Indica que el resultado es de valor NEGATIVO

DIGIT BIT (DC). Bandera de acarreo en el cuarto bit de menos peso (bit 1).

Indica cuando se produce un bit de acarreo entre los nibbles bajo y alto.

DC=0 Indica que NO se generó acarreo entre los nibbles

DC=1 Indica que SI se generó acarreo entre los nibbles

Page 5: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

ZERO BIT (Z). Bandera de cero (bit 2).

Indica cuando el resultado de una operación aritmética o lógica es igual o distinto de cero.

Z=0 Indica que el resultado es distinto de cero

Z=1 Indica que el resultado es igual a cero

POWER DOWN BIT ( ). Bandera de bajo consumo (bit 3).

Indica si el microcontrolador se halla en modo de bajo consumo de energía del sistema.

𝑃𝐷=0 Indica que el microcontrolador entró en reposo por la ejecución de la instrucción SLEEP.

𝑃𝐷=1 Indica que el microcontrolador se acaba de energizar (VDD) o se ejecutó la instrucción CLRWDT.

𝑃𝐷

Page 6: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

TIMER OUT BIT ( ). Bandera del perro guardián (bit 4).

Indica la finalización el temporizador denominado perro guardián (watchdog).Sirve para detectar si una condición de reset fue producida por el watchdog timer.

𝑇𝑂=0 Indica desbordamiento del temporizador perro guardián

𝑇𝑂=1 Indica que se ha conectador la alimentación VDD o se han ejecutado alguna de las instrucciones de CLRWDT o SLEEP.

REGISTER BANK SELECT BIT ( RP0 ). Bandera de selección de banco de memoria (bit 5).

Se usa para la selección del banco de la memoria de datos y así poder accesar a los otros registros SFR.

RP0=0 Indica selección del banco 0 de la memoria de datos

RP1=1 Indica selección del banco 1 de la memoria de datos

𝑇𝑂

NOTA: Las banderas RP1 (bit 6) e IRP (bit 7) no se utilizan en este microcontrolador PIC16F84A

Page 7: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

TRISA, TRISB. Registros que se utilizan para la configuración de las líneas de los puertos como entrada/salida (E/S).Tener en cuenta que se localizan en el banco 1 de la memoria de datos por tal motivo primero tendrá que indicarle al microcontrolador el cambio de bancos para tener acceso a ellos y modificar sus valores.

Un “0” en el bit correspondiente al pin, lo configurará como pin de SALIDA

Un “1” en el bit correspondiente al pin, lo configurará como pin de ENTRADA

Out = 0 e In = 1

PORTA, PORTB. Registros que se utilizan para escribir o leer contenidos de los pines físicos de los puertos A y B respectivamente.

Ambos puertos de manera lógica son de 8 bits, pero de manera física el puerto PORTA sólo tiene disponible 5 pines mientras que el puerto PORTB tiene disponible 8 pines.

Page 8: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

Registro de configuración.

Es un registro de 14 bits que se escribe durante el proceso de grabación del microcontrolador y no puede modificarse durante la ejecución del programa. Ocupa la dirección 2007h.

… FOSC0PWRTE WDTE FOSC1CP

Bit 13 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

……

CP (Code Protection Bit). Es el bit de protección de código contra lectura. Permite negar la lectura del código almacenado en la memoria física del microcontrolador.

CP=0c La memoria de programa del µC está protegida para lectura. NO se tiene acceso a la información.

CP=1 La memoria de programa del µC NO está protegida para lectura. Se tiene acceso a la información.

Page 9: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

WDTE (Watchdog Enable Bit). Es el bit habilitación/deshabilitación del perro guardián (watchdog).

WDTE=0 Perro guardián deshabilitado

WDTE=1 Perro guardián habilitado

PWRTE (Power-Up Timer Enable Bit). Es el bit para activación del temporizador Power-Up.

Este temporizador al estar activo, produce un retraso de 72 mseg desde el momento de energizar almicrocontrolador hasta que empieza la ejecución del código del programa para permitir la estabilización de laenergía de la fuente de alimentación y evitar corrientes transitorias que puedan generar mal funcionamientodel sistema.

PWRTE=0 Temporizador habilitado

PWRTE=1 Temporizador deshabilitado

Page 10: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

FOSC<1:0> (Flag Oscilator Selection Bit). Es el bit para la selección del tipo de oscilador que va a usar

el sistema microcontrolador

FOSC=00 Oscilador de bajo consumo de energía. Modo LP

FOSC=01 Oscilador estándar. Modo XT

FOSC=10 Oscilador de alta velocidad. Modo HS

FOSC=11 Oscilador de bajo costo. Modo RC

Page 11: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

LENGUAJE ENSAMBLADOR

LENGUAJE MÁQUINA. Lenguaje formado por ceros y unos del sistema binario. Toda instrucción queejecuta el microcontrolador esta expresada en este formato.

LENGUAJE ENSAMBLADOR. Lenguaje de programación de bajo nivel para dispositivosmicrocontroladores y circuitos integrados programables.

Este lenguaje utiliza nemónicos, que son grupos de caracteres alfanuméricos que simbolizan las órdenesa realizar de cada instrucción. Estos nemónicos ayudan al programador al momento de escribir el código,ya que es mucho mas fácil de recordar que los códigos binarios de las mismas instrucciones.

PROGRAMA ENSAMBLADOR. Es un software que se encarga de traducir los nemónicos y símbolosalfanuméricos del programa escrito en lenguaje ensamblador a código máquina para que pueda serinterpretado y ejecutado por el microcontrolador.

Page 12: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

Archivo fuente“ .asm “

ProgramaENSAMBLADOR

Archivo ejecutable“ .hex “

Archivo errores“ .err “

Archivo de lista“ .lst “

Otros archivosPara compilación

Page 13: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

INSTRUCCIONES DEL MICROCONTROLADOR

El microcontrolador PIC 16F84A tiene 35 instrucciones divididas en los siguientes grupos:

Instrucciones de carga Instrucciones aritméticas Instrucciones lógicas Instrucciones de bit Instrucciones de salto Instrucciones para manejo de subrutinas Instrucciones especiales

Page 14: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

DIRECTIVAS DEL MICROCONTROLADOR

Una directiva es un comando insertado en el programa que controla el proceso de ensamblado.

No es parte del repertorio de instrucciones del microcontrolador, por ello se les llama pseudoinstrucciones.

Algunas directivas básicas se enuncian a continuación.

ORG. Indica al programa ensamblador la dirección en la memoria de programa a partir de la cual deben ensamblarse las instrucciones del código fuente.

Ejemplo: ORG 0x00 : Indica que inicie el ensamble en la dirección 00.

END. Indica al programa ensamblador el fin del programa. Es una directiva obligatoria ya que le indica al programa ensamblador la última línea de compilación. Todo código escrito después de esta directiva es ignorada.

Page 15: REGISTROS PIC.pdf · Contador de Programa ... IRP RP1 0 TO PD Z DC C Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ... programa ensamblador la última línea de compilación.

EQU. Es una directiva de asignación de un valor a una etiqueta para facilitar su uso durante el programa. Se usa para definir constantes y direcciones de memoria.

Ejemplo: CARGA EQU d’100’ : Indica que el valor decimal 100 se asigne a la etiqueta CARGA

LIST. Es una directiva que indica el tipo de microcontrolador que se utilizará.

Ejemplo: LIST P=16F84A : Indica que el modelo del microcontrolador a usarse.

INCLUDE. Es una directiva que indica el archivo donde se localizan las etiquetas que nombran a los diferentes registros y sus correspondientes valores para un microcontrolador en particular.

Ejemplo: INCLUDE <P16F84A>

_ _ CONFIG. Es una directiva que indica la configuración elegida para el proceso de grabación del microcontrolador.

Ejemplo: _ _CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC