7 de marzo de 2011

Registros sfr

Aquí cito algunas de vuestras definiciones para "sfr" en los cuestionarios entregados:

"El tipo de variable sfr se encarga de representar datos en el rango 0..255.." -¿y el propósito?

"El sfr es un área de registros que está entre la dirección 0x80 y 0xFF de la memoria del micro y sirve para definir los registros con los que voy a trabajar.."

"La variable sfr nos permite extraer o introducir información de una dirección de memoria de un micro, por ejemplo sfr P0 = 0x90;.." -en este caso sólo se define la variable pero no se escribe en el puerto. Yo lo expresaría como: "Una variable de tipo sfr permite...." -sfr no es una variable, sólo define el tipo, la variable sería "P0".

"Sirve para representar los datos en el área SFR del micro.." -¿y el propósito?

"Corresponde a una variable en la zona de registros especiales. Declara un entero positivo en el rango 0..255.." -¿y el propósito?

Algunas más correctas que otras, pero todas apuntan a la idea general. En un micro hay una zona de registros especiales llamada "SFR" (special function register) ubicados en la memoria interna. Cada registro tiene una función, poner en marcha un temporizador, arrancar el conversor, guardar el dato del convertidor, definir si un bit del puerto es de entrada o de salida, etc.

Desde esta zona se controla el funcionamiento del micro. Cuando se programa, lo primero que debe hacerse es tener acceso a dichos registros definiendo variables de tipo "sfr". Las direcciones de estos registros dependen del micro utilizado. En los datasheets podrás encontrarlas buscando con "memory map".

Por lo tanto con "sfr" declaramos una variable que usaremos más adelante en el programa.
Os dejo un enlace referente a la familia MCS-51: Intel 8051 [Wikipedia]

No hay comentarios: