Beruflich Dokumente
Kultur Dokumente
SALESIANA
INGENIERIA ELECTRONICA
SISTEMAS MICROPROCESADOS I
6º NIVEL
Integrantes:
Geovanny Acosta
Darío Cañaveral
Nataly González
3.1. LOS REGISTROS DE CONTROL:
Para el funcionamiento de los PIC existe un conjunto de registros específicos (SFR) cuyos
bits soportan el control de los mismos. Dichos registros están ubicados en las primeras
posiciones de cada banco de la memoria de datos RAM. Las posiciones 00h, 80h, 100h y
180h no son registros físicos sino direcciones indirectas. Las diferencias entre los registros
de los Pic16f87x de28 y 40 patitas se debe a carecer los primeros de las puertas D y E, con
lo que no disponen de los registros portD, portE, trisD y trisE, y tampoco tienen los
registros que controlan la puerta paralela esclava que sólo está implementada en los
modelos de 40 patitas.
Es el registro más usado de todos, sus bits controlan las funciones vitales del procesador.
Por este motivo, está duplicado en las cuartas posiciones de cada banco
(03h, 83h, l03h y 183h).
Los tres bits de menos peso son los señalizadores de ciertas condiciones en las operaciones
lógico-aritméticas.
Los señalizadores PD# y TO# son activos por nivel bajo (#) y sirven para indicar le causa
que ha provocado la reinicialización del procesador.
2
Estos señalizadores son muy importantes en el proceso de Reset ya que nos indican la causa
que la ha originado y permiten actuar en consecuencia. No son escribibles.
Los PIC se resetean cuando:
Se conecta la alimentación (POR: Power-on Reset).
Cuando la tensión de alimentación baja de 4 V (BOR: Brown-out Reset), pero a esta
función se la puede desactivar poniendo a 0 el bit BODEN, presente en la palabra de
configuración.
En el reset POR como en el BOR 1os bits PD# y TO# toman el valor 1, y en los demás
casos depende de la causa que ha provocado el Reset.
Para el direccionamiento directo se utilizan los bits RP1 y RPO con la siguiente
codificación.
El STATUS puede actuar como destino en ciertas instrucciones, aquí los bits los
señalizadores Z, C y DC no son escribibles para las instrucciones que les afecte la
operación que realizan, al igual que sucede con PD# y TO#. Por ejemplo, al ejecutar la
instrucción clrf STATUS el Registro de Estado toma un valor de 000uuluu. Los bits con
<<u>> no cambian el valor. Por tal razón es conveniente usar las instrucciones bcf, bsf,
swapf y mvof para manejar los bits de este registro para que no afecten a Z, C y DC.
Como los tres bits destinados al direccionamiento de la RAM (IRP, RP I y RP0) toman el
valor de 0 después del Reset, si se desease acceder al banco 3 de la RAM habrá que usar las
siguientes instrucciones:
3
3.3. REGISTRO DE OPCIONES (OPTION)
Los Plcl6f87x tienen muchas causas que pueden originar una interrupción; los de 28 patitas
tienen 14 posibles causas y los de 15 posible s causas los de 40 patitas. Al aceptarse una
interrupción se salva el valor del PC en la pila se carga aquel con el valor 0004h, que es el
Vector de Interrupción. La mayoría de los Pic16f87x pueden ocasionar una interrupción, si
se programan adecuadamente los bits de los registros siguientes:
El PICl6F84 tenía 4 causas que generan interrupción:
Los nuevos PIC, además de las causas que producen interrupción en el PIC16F84, tienen
las siguientes:
4
Como los PIC16F87x tienen más causas de interrupción, también tienen más registros para
contener los bits señalizadores y de permiso o prohibición.
Es un registro al que se le puede leer y escribir, para su acceso, se halla duplicado en los
bancos, con direcciones 0Bh, 8Bh, 10Bh y 188h. Su función es de controlar las
interrupciones originadas por el TMRO, cambio de estado en las 4 líneas de más peso de la
Puerta B y activación de la patita RBO/INT.
Este registro se parece al registro con el mismo nombre al que había en el PIC16F84,
cambia el bit 6 en los nuevos PIC, que es el PEIE (permiso de interrupción de los
periféricos) en lugar del EEIE que tenía el PIC16F84 para permitir la interrupción cuando
finalice la escritura de un byte en la EEPROM. (Fig.3.3.)
5
3.4.2. REGISTRO DE PERMISO DE INTERRUPCIONES 1 (PIE 1)
Este registro tiene los bits que permiten (1) o prohíben (0) las interrupciones causadas por
los periféricos del microcontrolador y que no estaban en el registro INTCON.
Este registro ocupa la dirección 8Ch y para que cumplan su función los bits de PIE1 es
necesario que PEIE = 1 INTCON <6>. El bit PSPIE sólo es válido en los modelos de 40
patitas, poniendo a 0 en los tienen que 28 patitas. (Fig. 3.4)
Este registro tiene los bits de permiso de interrupción de las causas que no figuraban en
PIE1, la de fin de escritura en la EEPROM, la procedente del comparador, colisión de bus
en el modo SSP y producción de una captura o una comparación en el módulo CCP2.
Cuando se leen los bits que no tienen asignada función se obtiene 0. (Fig. 3.5.)
LOS BITS PIRI y PIR2, actúan de señalizadores del momento en el que se origina la causa
que provoca la interrupción independientemente si está permitida o prohibida. Ocupan las
direcciones 0Ch y 0Dh. (Fig. 3.6.)
6
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.
En los PIC16F87x se puede leer y escribir la memoria FLASH y ésta puede alcanzar un
tamaño de 8 K palabras de 14 bits cada una.
Para esta necesidad, el registro EEADR se concatena con el EEADRH, que tiene los 5 bits
de más peso de la dirección, el registro EEDATAH se concatena con el EEDATA y tiene
los 6 bits de más peso de la palabra leída o a escribir en la FLASH. Estos dos nuevos
registros no se usan en las operaciones que afectan a la EEPROM. (Fig. 3.7.)
Para controlar la operación de lectura/escritura de las memorias EEPROM y FLASH hay
dos registros denominados EECON1 y EECON2, E1 EECONl (Fig. 3.8) ocupa la dirección
7
18Ch, el EECON2 no está implementado físicamente y se usa como registro de seguridad
en la operación de escritura. Antes de iniciar la escritura de una palabra se escribe en
EECON2 primero el dato 55h y luego el AAh.
Ejemplo:
8
Para contener la dirección y el dato de la memoria FLASH se necesitan dos registros por
cada valor:
Ejemplos:
9
Siempre hay que verificar que los valores escritos en las EEPROM y FLASH son
correctos para no tener escrituras indeseadas producidas por espúreos en la
inicialización del microcontrolador.
En la EEPROM de controla el bit WREN, en la FLASH se debe poner a 0 el bit
WRT de la Palabra de Configuración.
10
PROGRAMAR PIC ES FÁCIL
LEER-FLASH
ESCRIBIR-FLASH
LEER-EEPROM
ESCRIBIR-EEPROM
Enunciado:
11
Organigrama:
Programa comentado:
Antes de hacer el programa principal se debe hacer un primer programa con el que
se escriba en la primera posición de la EEPROM el valor 27. Éste se grabará en el
PIC y su cuerpo llamará a la subrutina ESCRIBIR-EEPROM, habiendo antes
metido en el registro ADDR_L el valor 00 y en DATA_L el valor 27.
12
13
14
¿Se ha dado cuenta de nuestra pequeña trampa? Hemos introducido puntos de control a lo
largo de todo el programa poniendo a 1 los bits de un registro según se iban ejecutando
partes, y mostrando el valor total al final del programa. De esta forma, podemos comprobar
de una forma rápida y fiable el cambio de nuestro código.
El programa ha cambiado completamente, tal y como se muestra más abajo. 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 puede utilizarse para el campo de inteligencia artificial,
donde microbots pueden ir variando sus programas para adaptarse a situaciones concretas
15
Figura 3.17. Esquema electrónico del oscilador
Sensores analógicos
16
observarse en la parte izquierda de la figura 3.20 y consiste en un rectificador en puente de
Graetz que recibe 12 VAC y saca una tensión rectificada en doble onda de 100 Hz, que se
aplica al emisor del optoacoplador 4N33. Cada vez que la VAC pasa por 0 V se obtiene en
el colector del transistor un impulso positivo, que puede provocar una petición de
interrupción en el PIC.
En la tarjeta I/O se ha utilizado una lámpara de 12 VAC gobernada su potencia mediante un
opto-triac MOC3041
Relés
17
Figura 3.18. Esquema electrónico de los relés
Optoacoplador encoger
Bibliografía:
MICROCONTROLADORES “PIC”: Diseño Práctico de Aplicaciones. Segunda parte: El
PIC16F87XX, PIC18FXXXX, JOSÉ MARÍA ANGULO USATEGUI, Edición 4,
Interamericana de España, Cap 3., Pág. 57 - 81
18