5 Registros SFR Globales - Borxo/Programming-PIC-Microcontrollers-Tutorial GitHub Wiki

Registros SFR Globales

La programación de los microcontroladores PIC se basa en la configuración de los distintos registros de los que dispone. Todos los registros del PIC son de 8 bits y cada bit del registro cumple una función específica, que se debe configurar para que el microcontrolador realice la tarea que se quiere llevar acabo.

Cada registro se configura poniendo a “0” o “1” los bit del registro que se quiere configurar. Estos registro tienen un ámbito global, es decir, no configuran un apartado único del microcontrolador.

Los siguientes registros pueden variar los bit’s dependiendo de PIC que se este utilizando.

Registros

Registro Status

TO (Bit de salida del perro guardián)

  • 1 -Después de ejecutar el comando CLRWDT, el cual reinicia el perro guardián, o después de ejecutar el comando SLEEP, hace que entre en modo bajo consumo el microcontrolador.
  • 0 -Cuando se desborda el temporizador del perro guardián.

PD (Bit de apagado)

  • 1 -Después de ejecutar el comando CLRWDT.
  • 0 -Después de ejecutar el comando SLEEP.

Z (Bit cero)

  • 1 -Cuando se realiza una operación lógica o aritmética en el programa y su resultado es 0.
  • 0 -Cuando se realiza una operación lógica o aritmética en el programa y su resultado es distinto a 0.

DC (Bit acarreo o préstamo digital)

  • 1 -Se ha producido un acarreo del 4 bit de orden bajo en el resultado.
  • 0 -No se ha producido acarreo.

C (Bit de acarreo o Préstamo)

  • 1 -Se ha producido un acarreo en el bit más significativo, porque el número es superior a 255 o inferior a 0.
  • 0 -No se ha producido el acarreo.

Registro Option_REG

WPUEN (Bit Habilitación de las resistencias de Pull-Up del puerto B)

  • 1 -Deshabilitadas las resistencias Pull-Up.
  • 0 -Habilitación de las resistencias de Pull-Up, según la configuración del registro WPUB.

INTEDG (Bit selección de flanco en la interrupción externa)

  • 1 -Interrupción por flaco de subida en el pin INT.
  • 0 -Interrupción por flanco de bajada en el pint INT.

TMR0CS (Bit Selección de reloj para Timer0)

  • 1 -Reloj externo conectado por el pin T0CKL.
  • 0 -Reloj de instrucciones (FOSC/4).

TMR0SE(Bit Selección de flanco para T0CKL)

  • 1 -Flanco ascendente.
  • 0 -Flanco descendente.

PSA (Bit Asignación del prescaler)

  • 1 -El prescaler no se asigna a Timer0.
  • 0 -El Prescaler se le asigna al Timer0.

PS<2:0> (Bits Selección del valor del prescaler)

Configuración de los registros en XC8

Como se ha explicado en apartado anteriores para configurar el microcontrolador para que cumpla la función que el usuario desea, hay que configurar los registros SFR a través de sus bits, para ello se pueden programar de distintas maneras: En formato decimal, Hexadecimal o binario.

//Configuración de prescaler del Timer1 a 256.
OPTION_REG= 0b00000111; // Formato Binario
OPTION_REG= 0x07;       // Formato Hexadecimal
OPTION_REG=7;           // Formato Decimal

Otra forma que permite el XC8 a la hora de programar es utilizar el nombre de los bit del registro, en este caso sin hacer referencia al registro, y darle un valor al bit.

//Configuración de prescaler del Timer1 a 256. 
PS2=0;PS1=0;PS0=0;      // Formato nombrando solo los bit necesarios. 

Hay que saber muy bien que formato se va a escoger, para realizar un código mucho mas legible y claro.

⚠️ **GitHub.com Fallback** ⚠️