Está en la página 1de 38

UNIVERSIDAD

POLITECNICA SALESIANA

SISTEMAS MICROPOCESADOS I
CARLOS OCAMPO
FERNANDO ITAS
PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE LAS
MEMORIAS FLASH Y EEPROM

LOS REGISTROS DE CONTROL


Existe un conjunto de registros específicos (SFR) que sirven para gobernar el
funcionamiento de los recursos de los PIC, se encuentran ubicados en las primeras
posiciones de cada banco de la memoria de datos RAM.
La diferencia entre los registros de los PIC 16 F87x de 28 y 40 , es que los de 28
patas carecen de las puertas D y E, y tampoco tienen los recursos que controlan la
puerta paralela esclava que solo esta implementada en los de 40 patas.

REGISTROS DE ESTADO (STATUS)


Es el mas usado, pues sus bits están destinados a controlar las funciones vitales del
procesador, por eso están duplicado en las cuartas posiciones de cada banco.

REGISTRO DE ESTADO

IRP RP1 RP0 TO# PD# Z DC C


7 0
Z= señalizador de cero se pone 1 cuando el resultado es cero.
C= acarreo/llevada del 8º bit. Se pone 1 automáticamente cuando existe acarreo en el
bit de mas peso en las instrucciones de suma, también en instrucciones de resta, pero en
este caso si vale 0 hay llevada.
DC= acarreo7llevada en el 4º bit, funciona igual que el señalizador C, pero para el
cuarto bit, muy útil en números con expresiones en BDC.
Los señalizadores PD# y TO# son activos por nivel Bajo (#) y sirve para indicar la
causa que a provocado la reinicialización del procesador. Los PIC se rese4tean al
conectar la alimentación (POR: Power-on reset), también usando la tensión de
alimentación baja de 4V (BOR: Brow-out Reste).

Finalmente, los tres bit de más peso del Registro de Estados se emplean para
seleccionar el banco de la RAM al que se desea acceder. En el direccionamiento directo,
se utilizan los bits RP1 y RP0 de acuerdo con la siguiente codificación.

RP1 RP0 BANCO SELECCIONADOR


0 0 Banco 0 (00h-7Fh)

0 1 Banco 0 (80h-FFh)

1 0 Banco 0 (100h-17Fh)

1 1 Banco 0 (18h-1FFh)
En algunas instrucciones el registro de estados puede actuar como destino en
cuyo caso los bits de los señalizadores Z, C y DC no son escribibles en
aquellas instrucciones que les afecte la operación que realizan, al igual que
sucede con PD# y TO#.

REGISTRO DE OPCIONES (OPTION)


Sus funciones son:
• Asigna el divisor de frecuencia al Timer (TMR0)o al perro guardián.
• Elije el rango en el que trabaja el divisor de frecuencia.
• Selecciona el tipo de reloj del TMR0, que puede ser interno o externo, a
través de la patita T0CkI. También selecciona el flanco activo.
• Selecciona el flanco activo para la interrupción externa por Rb0/INT.
• Activa o desactiva las resistencias de pull-up de la Puerta B.

El registro OPTION toma el valor 1111 1111 en cualquier tipo de


reinicialización que se produzca.
REGISTRO OPTION

RBU INTED TOC TOS PSA PS2 PS1 PS0


# G S E
7 0

Denominación y asignación de funciones de los bits del registro OPTION


REGISTRO PARA CONTROLAR LA INTERRUPCIONES

Los pic 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 cara aquel
con el valor 0004h, que es el Vector de Interrupción. Los nuevos Pic tienen
las siguientes causas que producen interrupción:

•Desbordamiento del Timer 1


•Desbordamiento del Timer 2
•Captura o comparación en el módulo CCP1.
•Captura o comparación en el módulo CCP2.
•Transferencia en la Puerta Serie Síncrona.
•Colisión de bus en la Puerta Serie Síncrona.
•Fin de la trasmisión en el USART.
•Fin de la recepción en el USAR.
•Fin de la conversión en el Conversor A/D.
•Transferencia en la puerta paralela esclava. (Esta causa de interrupción no
esta disponible en los PIC16F87x de 28 patas.)
REGISTRO DE CONTROL DE INTERRUPCIONES (INTCON)
Se rata de un registro leíble y escribible que para facilitar su acceso, se halla duplicado en
los cuatro bancos, ocupando las direcciones 0Bh, 8Bh, 10Bh, 18Bh, respectivamente,
controlan las interrupciones provocadas por el TMR0, cambio de estado en las 4 líneas de
más peso de la Puerta B y activación de la pata RB0/INT.

REGISTRO INTCON

GI PEI TOI INT RBI T0IF INT RBI


E E E E E F F
7 0

Designación y misión de cada uno de los bits del registro INTCON


REGISTRO DE PERMISO DE INTERRUPCIONES 1 (PIE1)
Contiene 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. Ocupan la dirección 8 Ch y para que cumplan su función los
bits de PIE1 es necesario que PIE1=1

REGISTRO PIE1

PSPI ADI RCI TXI SSPI CCP1IE TMR2I TMR1I


E E E E E E E
7 0

Designación y funciones de permiso y prohibición de los bits del registro PIE!


REGISTRO DE PERMISO DE INTERRUPCIONES 2 (PIE2)
Contiene los bit de permiso de interrupción de las causas que no figuraban en
el PIE1.
REGISTRO PIE2

- ICMI - TEEI BCLI - - CCP2IE


E E E
7 0

Designación y funciones de los bits del registro PIE2


REGISTRO DE LOS SEÑALIZADORES DE INTERRUPCIONES 1 Y 2 (PIR1
Y PIR2)

Sus bits actúan de señalizadores del momento en el que se origina la causa que
provoca la interrupción, independientemente de si está permitida o prohibida. Ocupan
las direcciones 0Ch y 0 Dh, respectivamente.

Los bits de los registros PIR1 y PIR2 contienen los señalizadores de las causas que producen las interrupciones, en
correspondencia con los registros PIE1 y PIE2.
LECTURA Y ESCRITURA DE LAS MEMORIAS EEPROM Y
FLASH

En el PIC16F84 se podía leer y escribir la memoria de datos EEPROM.


En los PIC16F87x también se puede leer y escribir y escribir la memoria
de código 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 la memoria de código FLASH.

La memoria EEPROM de los PIC16F87x tiene una capacidad de 128 o


256 bytes, con un rango de direcciones de 00h a 7Fh o 00h a FFh,
respectivamente.

En los PIC16F87x se puede leer y escribir la memoria FLASH y esta


puede alcanzar un tamaño de 8 K palabras de 14 bits cada una, lo cual no
es suficiente, para cubrir esta necesidad, el registro EEADR se concadena
con EEADRH por otra parte el registro EEDATAH se concadena con el
EEDATA.
Para controlas la operación de lectura/escritura de las memorias EEPROM y
FLASH hay dos registros denominados EECON1 y EECON2. Un resumen de la
operación de lectura/escritura de una posición de la EEPROM constan los
siguientes pasos.

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 carga 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 (WREN=0).
Para evitar escrituras indeseadas en la EEPROM motivadas por
espúreos en la inicialización del microcontrolador, se controla el
bit WREN, prohibiendo cualquier operación de escritura
mientras duran los 72 milisegundos que temporiza el Timer de
Power-up.

Para realizar la misma operación en la memoria FLASH se debe


poner a 0 el bit WRT de la Palabra de Configuración, que sólo
puede escribirse desde un grabador externo.
PROGRAMAR PIC ES FÁCIL
Un programa que maneja las memoria FLASH de código y EEPROM
de datos

Vamos a realizar ahora un ejercicio que reúna la utilización de estas dos


memorias, para ello consideraremos que los códigos ya vistos, con una
pequeña modificación, son subrutinas las cuales se llamará para realizar
procesos de lectura/escritura sobre las citadas memorias

Así tendremos las siguientes subrutinas:

LEER-FLASH
ESCRIBIR-FLASH
LEER-EEPROM
ESCRIBIR-EEPROM
Falta por realizar el código correspondiente a la lectura de la EEPROM,
que una vez convertida a subrutina quedará como sigue.
ENUNCIADO

Se necesita saber en un programa si es la primera vez que se utiliza o si ya


se ha utilizado mas veces.

En nuestro programa, la primera vez que se ejecute se leerá la primera


posición de la EEPROM, si en dicha posición se encuentra el valor 27h
significa que el programa no se ha ejecutado anteriormente, en cuyo caso
se inicializarán una serie de contadores y se modificará el programa para
que la próxima vez que se ejecute los contadores no sean inicializados, la
ventaja de este método es que aunque un astuto usuario quisiera hacer
trampa a nuestro programa variando el valor de la EEPROM para que
creyera que es la primera vez que se entraba en él, a no ser que tenga el
original, le será imposible saber cuál era la secuencia que seguía esta
primera vez.
Organigrama
Representa el funcionamiento mas completo del programa.
Programa comentado

Antes de realizar el programa principal se debe hacer un primer programa


con el cual se escriba en la primera posición de la EEPROM (dirección 00)
el valor 27. Este primer programa se grabará en el PIC de la forma
habitual y su cuerpo consistirá en una llamada a la subrutina ESCRIBIR-
EEPROM, habiendo antes metido en el registro ADDR_L el valor 00 y en
DATA_L el valor 27.
 Antes de grabar un nuevo programa se debe borrar
primero el PIC.

 El borrado no afecta a la EEPROM.

PROGRAMA:
 En el programa existe un punto de control a lo largo de todo el
programa poniendo a 1 los bits de registros según se va ejecutando.

 Tras la primera instrucción, la mayoría de las instrucciones han


sido cambiadas por el código de operación de la instrucción NOP.

 Este método se utiliza en el campo de la inteligencia artificial


donde los microcontroladores pueden ir variando sus programas
dinámicamente para adaptarse a situaciones concretas.
PICME-TR mostrando el código del programa una vez modificado
PRUEBA DEL PROGRAMA

•Programa donde no hay entradas y salidas.


•El resultado no puede verse a simple vista.

Los pasos al realizarse son los siguientes:


DISEÑAR CON PIC ES FACIL
AMPLIACION DE PERIFERICOS PARA EL TRABAJO CON PIC

Con la aparición de los PIC16f87x es necesario disponer de herramientas


que saquen partido a los nuevos recursos que incorporan.

El tratamiento de sensores análogos y la regulación de motores que estos


PIC son capaces de gobernar mediante sus hardware interno.
LA TARJETA DE EXPANSION MICRO´PIC

La micro´PIC es una tarjeta de expasion que se conecta al micro´PIC


TRAINER mediante el PIC-BUS.
TARJETA DE EXPASION MICRO´PIC
ESQUEMA ELECTRONICO DE LA FUENTE DE
ALIMENTACION

Proporciona +5VDC y +12VDC


DOBLE CONECTOR PICBUS

Son dos conectores idénticos de 26 vías que soportan la misma señal.


Mediante un cable plano se conecta el conector con el Micro´PIC trainer
en donde se aloja el PIC bajo prueba.

El otro conector sirve para acoplar también al Micro´PIC trainer plus.


GENERADOR DE FUNCIONES
Existe un generador de onda cuadrada cuya frecuencia se puede seleccionar
entre 8 valores.
OSCILADOR DE 32.768 KHZ
Cristal de cuarzo de 32.768 khz y 2 capacitores 27pF
Con el oscilador se logra 215 impulsos consiguiendo 1 segundo.
PIEZOELECTRICO
Es un zumbador que genera pitidos o beeps sonoros a modo de señal de
aviso.
SENSORES ANALOGICOS

Al incluir un convertidor analógico /digital en el pic 16f87x el


fabricante a incluido un sensor de temperatura LM35D y un sensor de
luz LDR.
OPTO – TRIAC PARA CONTROL AC
El circuito detector de paso por cero se observa en la figura y consiste en
un rectificador en puente Graetz que recibe 12 VAC.
En la tarjeta I/O se ha utilizado como carga una lampara de 12 VAC
gobernada su potencia por un opto-triac MOC3041.
RELES
Dispositivo muy utilizado en la industria.
Necesita un circuito muy sencillo de excitación para controlar la activación de
la bobina.
MOTOR DC Y DRIVER L293B
Para el control se ha elegido el circuito integrado L293B soporta una
corriente de 1 A por canal.

Consta de 4 canales que son gobernados por señales de control EN1 y EN2
generables de los PIC1f87x especialmente por el PWM.

EN la out1 y out2 esta conectado un motor DC.


El control es a través de la EN1 on/off.
IN1-IN2 para el sentido de giro.

OPTOACOPLADOR ENCODER
Para conformar un encoder basta recortar un disco de material rígido
transparente(plástico) y realizar un orificio en su centro para pegarlo al eje
del motor.
Luego se dibujan unas franjas radiales opacas a la luz infrarroja.
El disco encaja en la ranura del opto acoplador, que genera un pulso cada
vez que pase una franja opaca.
ESQUEMA ELECTRONICO DEL CONTROL DEL
MOTOR
BIBLIOGRAFIA
MICROCONTROLADORES PIC. Diseño practico de
aplicaciones SEGUNDA PARTE: PIC 16F87X,PIC
18FXXXX.Segunda Edición. Segundo Angulo, Susana
Romero, Mc Graw Hill. España

También podría gustarte