Вы находитесь на странице: 1из 14

INGENIERÍA ELECTRÓNICA

PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE


MEMORIAS FLASH Y EEPROM

3.1 Los registros de Control

El funcionamiento de los recursos de los PIC es un conjunto de registros específicos cuyos


bits soportan el control de los mismos. Estos registros están ubicados en las primeras
posiciones de cada banco de la memoria de datos RAM.

3.2 Registro de Estado (Status)

Es el registro más usado de todos, pues sus bits están destinados a controlar las funciones
vitales del procesador. Por este motivo, está duplicado en las cuartas posiciones de cada
banco.

Los 3 bits de menos peso son señalizadotes de ciertas condiciones en las operaciones
lógicas aritméticas

Z: Señalizador de cero.- se pone 1 cuando el resultado es cero


C: acarreo/llevada del 8vo bit.- se pone a 1 automáticamente en suma o resta
después del bit más significativo.
DC: acarreo /llevada en el 4to bit.- Funciona similar a señalizador C, pero para
cuarto bits útil en código BCD.

PD#: Se activa a 0 al ejecutar la instrucción sleep (reposo). Se pone 1 cuando se


desconecta de la fuente de alimentación o se e4jecuta la instrucción clrwdt (refresco
perro guardián)
TO#: Se activa a nivel bajo al desbordarse el perro guardián. Toma el valor 1 cuando
se desconecta de la alimentación o se ejecutan cualquiera de estas instrucciones
sleep o clrwdt.

Los señalizadores PD# y TO# son útiles en el proceso de reset por que indican que lo ha
originado y permite actuar en consecuencia no son escribibles.

INGENIERÍA ELECTRÓNICA
Los 3 bits más significativos del registro de estado se utilizan para seleccionar el banco de
la memoria RAM.

El registro de estado puede actuar como destino, en cuyo caso los bits de los señalizadores
Z, C, DC no son escribibles en aquellas instrucciones que afectan la operación que realizan.

Como los tres bits destinados al direccionamiento de la RAM (IRP, RPI y RP0) toman el
valor 0 después del Reset.

3.3 Registro de opciones (OPTION)

Tiene las mismas funciones que tenía en el PIC16F84:

1. Asigna divisor de frecuencias a Timer 0 (TRM0) o al perro


guardián.
2. Elige el rango en el que trabaja el divisor de frecuencia.
3. Selecciona el tipo de reloj del TMR0 que pude ser interno o
externo, a través de la patita T0CKL, también selecciona el
flanco activo.
4. Selecciona el falco activo para la interrupción externa por
RB0/INT
5. Activa o desactiva las resistencias de pull-up del puerto B.

El registro Option toma el valor de 1111 1111 en cualquier tipo de reset que se produzca.

INGENIERÍA ELECTRÓNICA
PSA Asignación del divisor de frecuencias
1=El divisor de frecuencias se asigna a WDT
0= el divisor de frecuencias se le asigna al TMR0
T0SE Tipo de flanco de T0CKL
1= Incremento del TMR0 cada flanco descendente
0= incremento del TMR0 cada flanco ascendente
T0CS Tipo de reloj para el TMR0
1= Pulsos introducidos a través de T0CKL (contador)
0= Pulsos de reloj interno Fosc/4 (temporizador)
INTEDC Flanco activo de la interrupción externa
1= flanco ascendente
0= flanco descendente
RBPU# Resistencias de Pull-up del puerto B
1= Desactivadas
0= Activadas

3.4 Registro para controlar las interrupciones

Los PIC16F87X tienen muchas causas que pueden originar una interrupción. Al aceptarse
una interrupción se salva el valor del PC en la pila y se carga con el valor 00,4H que es el
vetor de interrupción.

El PIC16F84 tenía cuatro causas que generan interrupción: desbordamiento del TMR0,
activación del pin RB0/INT, cambio de estado de uno de los pines más significativos del
puerto B y finalización de la escritura de un byte en la EEPROM.

Los PIC16F87X disponen de más causas que provocan de interrupción, también tiene más
registros para contener bits de señalizadores y de permiso o prohibición.

3.4.1 Registro de permiso de interrupciones (INTCON)

Es un registro leible y escribible que para facilitar el acceso se halla duplicado en los cuatro
bancos, ocupa las direcciones 0Bh, 8Bh, 10Bh y 18Bh. Tienen la misión de controlar las
INGENIERÍA ELECTRÓNICA
interrupciones provocadas por el TMR0 cambio de estado en los pines más significativos
del puerto B y la activación del RB0/INT.

GIE: Bit de permiso global de interrupciones


1= Permiso
0= Prohibido
PEIE: Bit de permiso de los periféricos que no se controlan con INTCON
T0IE: Bit de permiso de la interrupción de TMR0
INTE: Bit de permiso de interrupción externa en RB0/INT
RBIE: Bit de permiso de la interrupción por cambio en RB4-RB7
T0IF: Señalizador de desbordamiento en TMR0
INTF: Señalizador de activación del pin RB0/INT
RBIF: Señalizador de cambio en RB4-RB7

3.4.2 Registro de permiso de interrupción 1 (PIE1)

Los bits que permiten (1) o prohíben (0) las interrupciones provocadas por los periféricos
internos del microcontrolador y que no estaban contempladas en el INTCON.

PSPIE: Permiso de interrupción para la puerta paralela esclava al realizar una


operación
de lectura/escritura. En modelos de 40pines.
ADIE: Permiso de interrupción para el conversor A/D al finalizar la conversión
RCIE: Permiso de interrupción para el receptor del USART cuando el buffer se
llena.
TXIE: Permiso de interrupción para el transmisor de USART cuando el buffer se
vacía.
SSPIE: Permiso de interrupción para la puerta serie síncrona
CCP1IE: Permiso de interrupción para el modulo CCP1 cuando se produce una
captura o
comparación
TMR21E: Permiso de interrupción para el TMR2 con su desbordamiento.
TMR11E: Permiso de interrupción para el TMR1 con su desbordamiento.

INGENIERÍA ELECTRÓNICA
3.4.3 Registro de permiso de interrupciones 2 (PIE2)

Contiene los bits de permiso de interrupciones de las causas que no abarcaron PIE1. Como
son: fin de escritura en la EEPROM, producida por comparador, colisión de bus en el modo
SSP y producción de una captura o una comparación en el modulo CCP2.

CMIE: Permiso de interrupción para EL COMPARADOR


EEIE: Permiso de interrupción por fin de escritura en la EEPROM de datos
BCLIE: Permiso de interrupción por colisión de bus en el SSP cuando dos o más
maestros tratan de transferir al mismo tiempo.
CCP2IE: Permiso de interrupción en el modulo CCP2.

3.4.4 Registro de señalizadores de interrupciones 1 y 2 (PIR1 Y PIR2)

Los bits de permiso / prohibición de las causas de interrupción recogidas en los registros
PIE1 Y PIE2, existen otros dos registros PIR1 y PIR2 cuyos bits actúan de señalizadotes
del momento en el que se origina la causa que provoca la interrupción.

3.5 Lectura y Escritura de las memorias EEPROM y FLASH

La propia aplicación se puede reprogramar según las condiciones externas, es posible


ampliar el área de la memoria de datos no volátil EEPROM con posiciones libres de
memoria FLASH.

1. Se introduce el dato a escribir en EEDATA y la dirección en EEADR


2. Se pone Wren=1 en EECON1 Permiso de escritura
3. Se escribe la secuencia de seguridad que cargan el registro EECON2 con
el dato 55h y luego con AAh.
4. Para iniciar la escritura se pone WR=1 en EECON1
5. Al finalizar la escritura se activa el señalizador EEIF de forma
automática
6. Se debe borrar el señalizador EEIF y prohibir la escritura (WR=0)
INGENIERÍA ELECTRÓNICA
EEPGD: Selecciona el acceso a la FLASH (0) o a la EEPROM (1)
WRERR: Señalizador de error en escritura
WREN: Permiso de escritura
WR: Hay que poner 1 para iniciar la escritura y 0 automáticamente al finalizar
RD: Hay que poner 1 para iniciar lectura.
INGENIERÍA ELECTRÓNICA
PROGRAMAR PIC ES FÁCIL

En este capitulo se han visto pequeñas partes para leer y escribir la memoria flash de
instrucciones para leer y escribir en EEPROM

EJERCICIO utilización de las dos memorias, para esto se considerara a los anteriores
códigos vistos como subrutinas para realizar procesos de lectura/escritura. Las subrutinas
son:

LEER-FLASH
ESCRIBIR-FLASH
LEER-EEPROM
ESCRITURA-EEPROM

Código para realizar la lectura de la EEPROM, convertida a subrutina.

*LEER-EEPROM
bsf STATUS,RP1 ; Con estas dos
; Instrucciones se
bcf STATUS,RP0 ; se selecciona el banco 2
movf ADDR_L,W ; Se mete en EEADR
movwf EEADR ; la dirección a leer
bsf STATUS,RP0 ; Se pasa al banco 3
bcf EECON1,EEPGD ; Se selecciona
; El acceso a EEPROM
bsf EECON1,RD ; Se da la orden de lectura
bcf STATUS,RP0 ; Se pasa al banco 2
movf EEDATA,W ; Se escoge el dato leído
movwf DATA_L ; y se deja en DATA_L
return ; Retorno de subrutina

La líneas con * es para resaltar los cambios que se debe hacer en los códigos anteriores para
hacerlos subrutinas y poner como etiqueta el nombre correspondiente.

Organigrama

Representa el funcionamiento mas completo del programa

Programa comentado

El primer programa del PIC se graba de forma habitual con una subrutina ESCRIBIR-
EEPROM.

INGENIERÍA ELECTRÓNICA
Para grabar en el PIC un nuevo programa es necesario borrar el anterior esto en la
EEPROM no lo afecta por lo que al grabar el valor 27 de la primera posición permanecerá
ahí.

DISEÑAR CON PIC ES FÁCIL

Ampliación de los periféricos para el trabajo con PIC

Con los PIC16F87X surge la necesidad de disponer de herramientas que saquen todo el
partido los nuevos recursos que incorporen, estos PIC son capaces de gobernar mediante su
hardware interno, ha impulsado diseñar una plataforma con la que se puede experimentar
técnicas avanzadas de control.

LA TARJETA DE EXPANSIÓN MICRO PIC I/O

Es una tarjeta que se conecta al Micro PIC Trainer mediante el PIC-BUS. Se basa en
inclusión de periféricos E/S con las características del PIC16F87X.

INGENIERÍA ELECTRÓNICA
Principales características:

Doble conector: PIC-BUS con todas las señales del PIC de 28 pines.
Alimentación: para conexión de un transformador de 12 VAC.
Generador de funciones: que proporciona una onda cuadrada de
frecuencia
seleccionable.
Cristal de cuarzo: de 32.768 KHz para uso de tiempo real.
Piezoeléctrico: para generar un pitido cuando se activa.
Sensores analógicos: de luminosidad tipo LDR y de temperatura
LM35.
Circuito de detección de cruce por cero de una señal senoidal.
Motor DC: puede controlarse su encendido, apagado así como el
sentido de giro y se lo
puede alimentar con 5 VAC o de 12 AVC.
Control de motor: Con posibilidad de regular su velocidad.
Optoacoplador infrarrojo de corte: Puede ser usado como encoder
para controlar el
giro del motor.

INGENIERÍA ELECTRÓNICA
Alimentación

Recibe una tensión máxima de 12 VAC y un puente rectificador (D1) con un condensador
(C1) rectifica y filtra la VAC que proporciona +5 VDC, +12 VDC.

Doble conector PICBUS

Son dos conectores idénticos de 26 vías que soportan las mismas señales mediante un cable
plano se conecta uno de los dichos conectores con el micropic trainer plus y así conforman
un sistema completo con las tres tarjetas.

INGENIERÍA ELECTRÓNICA
Generador de Funciones

Se basa en un PIC16C54RC, existe un generador de onda cuadrada cuya frecuencia se


puede seleccionar entre 8 valores con tres microinterruptores (SW1).

Oscilador de 32.768 KHz

Compuesto por un cristal de cuarzo de 32.768KHz y dos condensadores de 27pF, configura


un oscilador de frecuencia igual a ala de resonancia del cristal.

INGENIERÍA ELECTRÓNICA
Sensores Analógicos

La inclusión de un convertidor analógico/digital entre los recursos del PIC16F87X ha


incluido un sensor de temperatura de tipo LD35D y un sensor de luz LDR.

Opto-triac para control AC

El control de potencia de AC que se entrega en la carga es necesario conocer el momento


en el que la tensión pasa por el valor de 0 VAC. Cada vez que la señal vale 0 VAC no hay
generación de luz y el autotransistor se bloquea y la tensión de su colector sube a +Vcc
avisando del cruce por 0.

INGENIERÍA ELECTRÓNICA
Relés

Es un dispositivo muy usado en la industria y muy fácil de controlar. Basta un sencillo


circuito de excitación para poder controlar la activación o no de las bobinas que abre o
cierra los contactos.

Motor DC y driver L293B

Para el control de motores en la tarjeta Micro´PIC I/O se ha elegido el circuito integrado


L293B, que es capaz de controlar dos motores DC o uno PAP. Soporta la corriente de 1 A
por canal.

Consta de 4 canales que son gobernados por señales de control EN1 y EN2, fácilmente
generables por los recursos de los PIC16F87X especialmente por el PWM.

BIBLIOGRAFÍA:
ANGULO MARTÍNEZ IGNACIO; ROMERO YESA SUSANA; ANGULO USATEGUI
JOSÉ MARIA, Microcontroladores “PIC”: Diseño Práctico de Aplicaciones. Segunda
Parte: PIC16F877XX, PIC18FXXXX; Capitulo 3.

INGENIERÍA ELECTRÓNICA