Anda di halaman 1dari 40

UNIVERSIDAD NACIONAL

PEDRO RUIZ GALLO

INGENIERIA ELECTRÓNICA
SISTEMAS DIGITALES II
Docente : Aznarán Guevara Sandra
Integrantes : 1. Carranza Soriano Junior
2. Mendoza Chávez Breyser
3. Vergara Gamarra Neider
4. Cachay Fenco César
REGISTROS DE PROPÓSITO
GENERAL Y REGISTROS DE
PROPÓSITO ESPECIAL
MEMORIA RAM
Es la tercera y la más compleja parte de la
memoria del microcontrolador. En este caso
consiste en dos partes: en registros de
propósito general y en los registros de
funciones especiales (SFR). Todos estos
registros se dividen en cuatro bancos de
memoria de los que vamos a hablar más
tarde en este capítulo. Aunque los dos
grupos de registros se ponen a cero al
apagar la fuente de alimentación, además
están fabricados de la misma forma y se
comportan de la manera similar, sus
funciones no tienen muchas cosas en
común.
MEMORIA RAM
BANCOS DE LA
MEMORIA RAM
REGISTROS DE PROPÓSITO GENERAL ( GPR)
Los registros de propósito general se utilizan para ACUMULAD
almacenar los datos temporales y los resultados creados O
durante el funcionamiento. Por ejemplo, si el programa BASE
realiza el conteo (de los productos en una cadena de CONTADOR
montaje), es necesario tener un registro que representa DATOS
lo que en la vida cotidiana llamamos “suma”. Como el
microcontrolador no es nada creativo, es necesario
especificar la dirección de un registro de propósito
general y asignarle esa función. Se debe crear un
programa simple para incrementar el valor de este
registro por 1, después de que cada producto haya
pasado por el sensor. Ahora el microcontrolador puede
ejecutar el programa ya que sabe qué es y dónde está la
suma que se va a incrementar. De manera similar, a cada
variable de programa se le debe pre-asignar alguno de los
registros de propósito general.
REGISTRO DE FUNCIONES ESPECIALES O DE
PROPOSITO ESPECIAL(SFR)
Los registros de funciones especiales son
también parte de la memoria RAM. A
diferencia de los registros de propósito
general, su propósito es predeterminado
durante el proceso de fabricación y no
se pueden cambiar. Como los bits están
conectados a los circuitos particulares en
el chip (convertidor A/D, módulo de
comunicación serial, etc), cualquier
cambio de su contenido afecta
directamente al funcionamiento del
microcontrolador o de alguno de los
circuitos
03
Supongamos que usted ha comprado ya un microcontrolador y que tiene una
buena idea de cómo utilizarlo... La lista de los registros SFR así como de sus
bits es muy larga. Cada uno controla algún proceso. En general, parece como
una gran tabla de control con un gran número de instrumentos e
interruptores. ¿Ahora está preocupado de cómo conseguir aprender acerca de
todos ellos? Es poco probable, pero no se preocupe, ¡Usted no tiene que
hacerlo! Los microcontroladores son tan potentes que se parecen a los
supermercados: ofrecen tantas cosas a bajos precios y a usted solo le toca
elegir las que necesita. Por eso, seleccione el campo en que está interesado y
examine sólo lo que necesita. Cuando entienda completamente el
funcionamiento de hardware, examine los registros SFR encargados de
controlarlo (normalmente son unos pocos). Como todos los dispositivos tienen
un tipo de sistema de control el microcontrolador tiene sus "palancas" con las que
usted debe estar familiarizado para ser capaz de utilizarlos correctamente. Por
supuesto, estamos hablando de los registros SFR desde los que el proceso de
programación se inicia y en los que el mismo termina.

¿CÓMO UTILIZAR LOS REGISTROS SFR?


Los principales registros SFR del
micro controlador PIC16F887. Los
bits de cada registro controlan los
circuitos diferentes dentro del
chip, así que no es posible
clasificarlos en grupos especiales.
Por esta razón, se describen junto
con los procesos que controlan.
El registro STATUS contiene: el estado
REGISTRO STATUS aritmético de datos en el registro W, el
estado RESET, los bits para seleccionar el
banco para los datos de la memoria.
REGISTRO STATUS
1. IRP - Registro de
3. O - Time-out bit (bit de
selección de Banco (usado
para direccionamiento
2. RP1,RP0 - salida del temporizador
indirecto)1 - Bancos 0 y 1 Registro de perro guardián)
son activos (localidades de
memoria 00h-FFh) selección de a) 1 - Después de encender
el microcontrolador, después
0 - Bancos 2 y 3 son activos banco (usado de ejecutarse la instrucción
CLRWDTque reinicia al WDT
(localidades de memoria
100h-1FFh)
para (temporizador perro
direccionamiento guardián) o después de
ejecutarse la instrucción
RP1 RP0 BANCO
ACTIVO
directo). SLEEP que pone al
0 0 Banco 0 microcontrolador en el modo
de bajo consumo.
0 1 Banco 1 b) 0 - Después de acabarse el
1 0 Banco 2 tiempo del WDT.
1 1 Banco 3
REGISTRO STATUS
4. TO - TIME-OUT BIT (BIT DE 5. PD - POWER-DOWN 6. Z - ZERO BIT (BIT
SALIDA DEL TEMPORIZADOR BIT (BIT DE APAGADO)
PERRO GUARDIÁN) CERO)
1 - Después de encender
1 - Después de encender el el microcontrolador, 1 - El resultado de
microcontrolador, después de
ejecutarse la
después de ejecutar la una operación lógica
instrucciónCLRWDT que reinicia instrucciónCLRWDT que o aritmética es 0.
al WDT (temporizador perro reinicia al WDT.
guardián) o después de ejecutarse 0 - Después de ejecutarse 0 - El resultado de
la instrucción SLEEP que pone al la instrucción SLEEP que una operación lógica
microcontrolador en el modo de pone al microcontrolador o aritmética es
bajo consumo.
en el modo de bajo distinto de 0.
0 - Después de acabarse el tiempo consumo.
del WDT.
REGISTRO STATUS
8. C - CARRY/BORROW BIT (BIT
7. DC - DIGIT CARRY/BORROW
BIT (BIT DE ACARREO/PRÉSTAMO DE
DE ACARREO/PRÉSTAMO)
DÍGITO) cambia al sumar o al restar si
cambia al sumar o al restar si ocurre un "desbordamiento" o un
ocurre un "desbordamiento" o un "préstamo" en el resultado, o sea
"préstamo" en el resultado. si el resultado es mayor de 255 o
1 - Hubo acarreo del cuarto bit de menor de 0.
orden bajo (nibble bajo) en el 1 - Ocurrió acarreo en el bit más
resultado. significativo (MSB) del resultado.
0 - No hubo acarreo del cuarto bit 0 - No ocurrió acarreo en el bit
de orden bajo (nibble bajo) en el
resultado.
más significativo (MSB) del
resultado.
REGISTRO OPTION-REG
El registro OPTION_REG contiene varios bits de control
para configurar el pre - escalador del Temporizador
0/WDT, el temporizador Timer0, la interrupción externa
y las resistencias pull-up en el puerto PORTB.
REGISTRO OPTION
REGISTRO OPTION
INTD
RBU T0CS T0SE PSA PS2 PS1 PS0
EG

BIT's LóE Reset Descripción


Bit 7: RBPU 1 = Cargas Pull-Up Desconectadas
L/E 1
Pull-up p' PORTB 0 = Cargas Pull-Up Conectadas

Bit 6: INTEDG 1 = RB0/INT será sensible a flanco ascendente


L/E 1
Flanco/Interrup. 0 = RB0/INT será sensible a flanco descendente

1 = Pulsos por pata T0CKI (contador)


Bit 5: T0CS
L/E 1 0 = Pulsos igual a reloj interno / 4
Fte./Reloj p' TMR0
(temporizador)

Bit 4: T0SE 1 = Incremento TMR0 en flanco descendente


L/E 1
Flanco/T0CKI 0 = Incremento en flanco ascendente

Bit 3: PSA 1 = Divisor asignado al WDT


L/E 1
Divisor/Frecuencia 0 = Divisor asignado al TMR0
REGISTRO OPTION
PS2, PS1, PS0 Prescaler Rate Select bits
(bit selector del valor del divisor de
frecuencia)
BIT
2-0 El valor del divisor de
frecuencia se
selecciona al combinar
estos tres bits. Como se
muestra en la siguiente
tabla, el valor del
divisor de frecuencia
se le asigna al
temporizador (Timer0)
o al temporizador perro
guardián
REGISTRO INTCON
El registro INTCON contiene varios bits de
habilitación y de bandera para el desbordamiento en
el registro TMR0, e interrupciones por el cambio del
estado en el puerto PORTB y las interrupciones
externas en el pin INT.
REGISTRO INTCON
GIE EEIE T0IE INTE RBIE T0IF INTF RBIF

BIT's L ó E Reset Descripción


Bit 7: GIE 1 = Todas las Interrupciones activadas
L/E 0
Habilitación Gral. 0 = Todas las Interrupciones desactivadas
Bit 6: EEIE 1 = Activada
L/E 0
Int. Periféricos 0 = Desactivada
Bit 5: T0IE 1 = Activada
L/E 0
Int. del TMR0 0 = Desactivada
Bit 4: INTE 1 = Activada
L/E 0
Int. Externa 0 = Desactivada
Bit 3: RBIE 1 = Activada
L/E 0
Int. por PORTB 0 = Desactivada
Bit 2: T0IF 1 = TMR0 desbordado. Borrar por software
L/E 0
Bandera del TMR0. 0 = No se ha desbordado
Bit 1: INTF 1 = Ocurrió una interrupción externa
L/E 0
Bandera - RB0/INT 0 = No ha ocurrido interrupción externa
Bit 0: RBIF 1 = Al menos un pin cambio de estado
L/E x
Bandera - RB4:RB7 0 = Ningún pin ha cambiado de estado.
REGISTRO PIE1
El registro PIE1 contiene los bits de
habilitación de interrupciones periféricas.
REGISTRO PIE1
CCP1I TMR2I TMRE
PSPIE ADIE RCIE TXIE SSPIE
E E 1IE
BIT's LóE Reset Descripción
Bit 7: PSPIE 1 = Habilita la interrupción por lectura/escrituraPSP
L/E 0
lnter. Por lectura 0 = Inhabilita la interrupción por lectura/escrituraPSP
Bit 6: ADIF 1 = Habilita la interrupción del convertidor A/D
L/E 0
Int. convertidor 0 = Inhabilita la interrupción del convertidor A/D
Bit 5: RCIE 1 = Habilita la interrupción por recepción en el USART
L/E 0
Int. por recepcion 0 = Inhabilita la interrupción por recepción en el USART

Bit 4: TXIE 1 =Habilita la interrupción de transmisión por el USART


L/E 0
Int. Transmision 0 = Inhabilita la interrupción de transmisión por el USART

Bit 3: SSPIE 1 = Habilita la interrupción del SSP


L/E 0
Int. Del SSP 0 = Inhabilita la interrupción del SSP
Bit 2: CCP1IE 1 = Habilita la interrupción del CCPI
L/E 0
Int. Del CCPI 0 = Inhabilita la interrupción del CCPI
1 = Habilita la interrupción por desbordamiento de TMR2 emparejado
Bit 1: TMR2IE
L/E 0 a PR2
Int. Del desbordamiento
0 =Inhabilita la interrupción de TMR2 emparejado a PR2
Bit 0: TMR1IE 1 = Habilita la interrupción por desbordamiento de TMR1
0
Int. Del desbordamiento 0 =Inhabilita la interrupción de TMR1
REGISTRO PIE2
El registro PIE2 también contiene
varios bits de habilitación de
interrupciones.
REGISTRO PIE2
REGISTRO PIR1
El registro PIR1 contiene los
bits de banderas de
interrupción.
REGISTRO PIR1
El registro PIR2 contiene los bits
de banderas da la interrupción.
REGISTRO PCON
El registro PCON contiene solamente dos bits de banderas
utilizados para diferenciar entre un Power-on reset (POR),
un Brown-out reset (BOR), un reinicio por el temporizador
perro guardián (WDT) y un reinicio externo por el pin
MCLR.
REGISTRO PCON
ULPWUE - Ultra Low-Power Wake-up Enable bit (bit de habilitación para salir
del modo de ultra bajo consumo - la reactivación)
1 - Se habilita salir del modo de ultra bajo consumo.
0 - No se habilita salir del modo de ultra bajo consumo.

BOR - Brown-out Reset Status bit (bit de estado Brown - out reset)
1 - No se ha producido Brown - out reset.
0 - Se ha producido Brown - out reset. El bit debe ponerse a uno por software después
de que se haya producido Brown - out reset.
SBOREN - Software BOR Enable bit (bit de habilitación del BOR por software)
1 - Se habilita Brown-out reset.
0 - Se deshabilita Brown-out reset.

POR - Power-on Reset Status bit (bit de estado Power - on reset)


1 - No se ha producido Power - on reset.
0 - Se ha producido Power - on reset. El bit debe ponerse a uno por software después de
que se haya producido un Power - on reset.
REGISTROS PCL Y PCLATH

La memoria de programa del PIC16F887 es de 8K y tiene


8192 localidades para el almacenamiento de programa.
Por esta razón, el contador de programa debe de ser de
13 bits de anchura (213 = 8192). Para habilitar el acceso
a una localidad de memoria de programa durante el
funcionamiento del microcontrolador , es necesario
acceder a su dirección por medio de los registros SFR.
Como todos los registros SFR son de 8 bits de anchura,
este registro de direccionamiento es creado
“artificialmente” al dividir los 13 bits en dos registros
independientes, PCLATH y PCL. Si la ejecución de
programa no afecta al contador de programa, el valor de
este registro va incrementándose automática y
constantemente: +1, +1, +1, +1... De esta manera, el
programa se ejecuta como está escrito - instrucción a
instrucción, seguido por un incremento de dirección
constante.
REGISTROS PCL Y PCLATH
1. Los ocho bits inferiores (el
byte inferior) del registro
PCL son de 2. El registro PCLATH
Si el contador lectura/escritura, mientras se borra con cada
de programa que los cinco bits superiores reinicio.
del registro PCLATH son de
ha sido sólo escritura.
cambiado por
software, debe
tomar en 3. Al llamar una subrutina o
cuenta lo al ejecutarse un salto
siguiente para (instrucciones CALL y GOT
evitar O), el microcontrolador es
capaz de proporcionar
problemas: solamente direccionamiento
de 11 bits.
REGISTROS PCL Y PCLATH

4. Similar a la RAM que está dividida en


“bancos”, la ROM está dividida en las
cuatro “páginas” de 2K cada una. Las
instrucciones dentro de estas páginas se
ejecutan regularmente. Dicho de manera
sencilla, como el procesador está
proporcionado con una dirección de 11
bits del programa, es capaz de direccionar
cualquier localidad dentro de 2KB. La
siguiente figura muestra el salto a la
dirección del subprograma PP1.
OTROS REGISTROS ESPECIALES
• El registro INDF que ocupa la posición 0 no está
implementando físicamente y, como se ha explicado, se le
referencia en el direccionamiento indirecto de datos
01 aunque se utiliza el contenido de FSR.

• El PC ocupa la posición 2 del área de datos en donde se


halla el registro PCL al que se añaden 3 bits auxiliares y se
conectan con los dos niveles de la Pila en las instrucciones
02 CALL y RETLW.

• FRS se ubica en la dirección 4 y puede usarse para


contener las dirección del dato en las instrucciones con
direccionamiento indirecto y también para guardar
03 operandos en sus 5 bits de menos peso.
APLICACIÓN
En control de
instrucciones para
proporcionar
velocidad y poco
espacio, nos permiten
hacer los proyectos en
menos tiempo.
CONCLUSIÓN
• La conclusión a la que hemos llegado
todos es que estos registros de propósito
general y de propósito especial son
muy importantes para el control de las
instrucciones en ejecución, manejar el
direccionamiento de memoria y son la
manera más rápida que tiene el sistema
de almacenar datos.