Sie sind auf Seite 1von 21

UNIVERSIDAD POLITECNICA SALESIANA 2010

SISTEMAS MICROPROCESADOS I

CAPITULO 3

INTENGRANTES
- PEDRO FONSECA
- EDISON ORTEGA
- CHRISTIAN SIMBAÑA

Ing. LUIS OÑATE


2010

1
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

CAPITULO 3
3. PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE LAS MEMORIAS FLASH Y EEPROM

Para manejar el funcionamiento de los microcontroladores Pic existen varios registros que
debemos conocer; estos registros es un conjunto específico de registros (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 y para aprovechar toda la potencia de los microcontroladores es
necesario conocerlos

Este capítulo abordará la misión de los bits de los principales registros de control.

3.1 LOS REGISTROS DE CONTROL

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 (003h,
83h,103h y 183 h)

REGISTRO DE ESTADO

IRP RP1 RP0 TO PD# Z DC C


#
Figura 1. Estructura interna del Registro de estado

3.2 REGISTROS DE ESTADO (STATUS)

Los tres bits de menor peso son los señalizadores de ciertas condiciones en las operaciones lógico
aritméticas

 Z: señalizador de cero: 1 cuando el resultado es cero


 C: acarreo /llevada 8º bit: 1 automáticamente cuando existe acarreo en el bit de más peso
 DC: acarreo llevada en el cuarto bit Funciona igual que el C pero en el cuarto bit

Los señalizadores PD# y TO# son activos por el nivel bajo (#) y sirven para indicar la causa que ha
provocado la reinicialización del procesador

 PD#: o cuando se ejecuta la instrucción de sleep (modo reposo), 1 automáticamente


cuando al ejecutarse la instrucción cirwdt (refresco del perro guardián)
 TO#: 0 al desbordarse el perro guardián,1 tras conectarse la conexión de la alimentación o
al ejecutarse las instrucciones de sleep o cirwdt

Los señalizadores PD# y TO# son muy importantes en el proceso de Reset porque indican la causa
que la ha originado y permiten actuar no son escribibles.

2
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
Los PIC se resetean al conectar la alimentación (POR: Power –on Reset) También se resetean
cuando la alimentación baja de 4 v

Los tres bits de mayor peso del registro de estado 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 decodificación

RP1 RP0 BANCO SELECCIONADO


0 0 Banco 0 (00h-7Fh)
0 1 Banco 1 (80h-FFh)
1 0 Banco 2 (100h-17Fh)
1 1 Banco 3 (18h-1FFh)

El bit IRP se ha conectado con el bit de mayor peso del registro FSR para elegir el banco de RAM en
el direccionamiento indirecto

IRP: Selección del banco de RAM en el direccionamiento indirecto

0: Banco 0 y 1 (00h-FFh)

1: Banco 2 y 3 (100h – 1FFh)

En algunas instrucciones el registro de estado puede ser direccionado pero los señalizadores no
pueden ser escritos

Como los bits (IRP, RP0 y RP1) toman el valor de 0 después del Reset si se desea acceder al banco
tres de la RAM habría que emplear las siguientes instrucciones

Bsf STATUS RP0

Bsf STATUS RP1

3.3 REGISTRO DE OPCIONES (OPTIONS)

1𝑎 Asigna el divisor de frecuencias al Timmer 0 o al Perro guardián

2𝑎 Elige el rango en el que trabaja el divisor de frecuencias

3𝑎 Selecciona el tipo de reloj del TMRO ( interno o externo)también selecciona el flanco activo

4𝑎 Selecciona el flanco activo para la interrupción externa por RB0/INT

5𝑎 Activa o desactiva las resistencias del pull-up de la puerta B

3
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
El registro de option toma el valor de 1111 1111 en cualquier tipo de reinicialización que se
produzca

3.4 REGISTRO PARA CONTROLAR LAS INTERRUPCIONES

Los PIC 16F87x tienen muchas causas que pueden originar interrupciones Al aceptarse una
interrupción se acepta el valor de la PC en la Pila y se carga aquel con el valor 0004h que es el
vector de Interrupción

La mayoría de los periféricos del Pic 16F87x pueden originar interrupciones

Los Pic en la actualidad tienen las siguientes interrupciones:

1𝑎 Desbordamiento del Timmer 1

2𝑎 Desbordamiento del Timmer 2

3𝑎 Captura o comparación en el módulo CCP1

4𝑎 Captura o comparación en el módulo CCP2

5𝑎 Transferencia en la puerta serie síncrona

6𝑎 Colisión de bus en la puerta serie síncrona

7𝑎 Fin de la transmisión en el USART

8𝑎 Fin de la recepción en el USART

9𝑎 Fin de la conversión en el Conversor A/D

10𝑎 Transferencia en la puerta paralela esclava

REGISTRO OPTION

RBP INTED TOC TOS PSA PS2 PS1 PS0


U# G S E#

PS2:PS0 valor con el que actúa el divisor de Frecuencia

PS2 PS1 PS0 División del TMRO División del WDT

0 0 0 1:2 1:1
0 0 1 1:4 1:2

4
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
0 1 0 1:8 1:4
0 1 1 1:16 1:8
1 0 0 1: 32 1:16
1 0 1 1:64 1: 32
1 1 0 1:128 1:64
1 1 1 1:256 1:128

PSA Asignación del divisor de frecuencias

TOSE Tipo de flanco en TOCK1

TOCS Tipo de reloj para el TM0

INTEDG Flanco activo de la interrupción externa

RBPU# Resistencias de pull-up de la puerta B

3.4.1 Registro de control de interrupciones (INTCON)

Se trata de un registro libre y escribible que para facilitar su acceso se halla duplicado en
los 4 bancos. Tiene la misión de controlar las interrupciones provocadas por el TMR0, cambio de
estado en las cuatro líneas de más peso de la puerta B y activación de la patita RB0/INT

El bit PEIE actúa como segunda llave parcial de permiso o prohibición de las causas de las
interrupciones que no están contempladas en el INTCON

3.4.2 Registro de permiso de interrupciones

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

Ocupa la dirección 8Ch y para que cumplan su función los bits de PIE1 es necesario que PEIE=1 en
ITCON

El bit PSPIE es válido en los modelos de 40 patitas

El registro PIE1 con el significado de todos sus bits

REGISTRO INTCON

GIE PEIE TOIE INTE RBIE TOIF INTF RBIF


#

GIE Bit de permiso global de interrupciones

5
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
PEIE Bit de permiso de los periféricos que no se controlan con INTCON

TOIE Bit de permiso de interrupción TMR0

INTE Bit de permiso de la interrupción externa por RB0/INT

RBIE Bit de permiso de la interrupción por cambio en RB4-RB7

TOIF Señalizador de desbordamiento en TMR0

INTF Señalizador de activación de la patilla RBO/INT

RBIF Señalizador de cambio de RB4-RB7

3.4.3 Registro de permiso de interrupciones 2

Contiene los bits de permiso de interrupción de las causas que no figuraban en PEI1. La de
fin de escritura de la EEPROM, la procedente del comparador, colisión del bus en el modo SSP y
producción de una captura en el módulo CCP2

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

En correspondencia con los bits de permiso/prohibición de las causas de las interrupciones


recogidas en registros PIE1 y PIE2 existe dos registros PIR1 y PIR2 cuyos bits actúan como
señalizadores del momento en que se origina la causa que provoca la interrupción independiente
si está permitida o prohibida

Ocupa las direcciones 0Ch y 0Dh

3.5 LECTURA Y ESCRITURA DE LAS MEMORIAS EEPROM Y FLASH

En los PIC 16F87x se puede leer y escribir la memoria de código FLASH significa que un programa
dinámicamente puede generar información que se puede grabar en la FLASH directamente sin
necesidad del grabador externo

REGISTRO PIE1

PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2I TMR1IE


# L

PSPIE Permiso de interrupción para la puerta paralela esclava el realizar R/W

ADIE Permiso de interrupción para el conversor A/D al finalizar la conversión

6
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
RCIE Permiso de interrupción para el receptor del USART cuando el buffer se llena

TXIE Permiso de interrupción para el transmisor de USSART cuando el buffer vacía

SSPIE Permiso de interrupción para la puerta serie sincrónica

CCPIEL Permiso de interrupción para el módulo CCP1

TMR2IE Permiso de interrupción para el TMR2 con su desbordamiento

TMR1IE Permiso de interrupción para el TMR1 con su desbordamiento

REGISTRO PIE2

--- CMIE ---- EEIE BCLIE ---- ---- CCP2IE


#

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 del bus SSP

CCP2IE Permiso de interrupción en el módulo CCP2

REGISTRO PIR1

PSP1F ADIF RCIF TXIE SSPIF CCP1IF TMR2IF TMR1IF

REGISTRO PIR2

-------- CMIF -------- EEIF BCLIF -------- -------- CCP2IF

7
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

REGISTRO EECON1

Es una buena práctica de programación verificar que todos los valores escritos en las memorias
EEPROM y FLASH son correctos.

Para evitar escrituras indeseadas en la EEPROM se controla el bit WREN, prohibiendo cualquier
operación escritura. Para realizar la misma proteccion en la memoria FLASH se debe poner a 0 el
bit WRT de la palabra de configuración.

Dependiendo del valor del bit WRT y de los bits de protección de código de CP1 y CP0, se
consiguen diversas alternativas de protección contra lectura y escritura FLASH.

8
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Fig. Diversas posibilidades de protección de la memoria FLASH ante operaciones de lectura y


escritura, de acuerdo con los valores de los bits WRT, CP1 y CP0 de la palabra de configuración.

PROGRAMAR PIC ES FACIL

Un programa que maneja las memorias FLASH de código y EEPROM de datos

Se han visto trozos de código para leer y escribir la memoria FLASH de instrucciones y la memoria
EEPROM de datos.

Los códigos ya vistos, con una pequeña modificación, son subrutinas a las cuales se llamara 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ía como sigue:

9
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

En las líneas que empiezan con * se pretende resaltar las modificaciones que habría que llevar a
cabo con los códigos anteriores para convertirlos a subrutinas.

Enunciado.-

La posibilidad de escribir la memoria de código mientras se está ejecutando un programa puede


resultar interesante para ciertas aplicaciones.

Si un programa necesita saber si es la primera vez que se utiliza, para pedir cierta información
inicial como configuración por ejemplo; o si ya se ha utilizado anteriormente y esa información ya
la tenemos.

La primera vez que se ejecute se leer la primera posición de la EEPROM, si en esta posición se
encuentra el valor 27h significa que el programa no se ha utilizado anteriormente, se inicializaran
una serie de contadores y se modificara el programa para que la próxima vez los contadores no
sean inicializados.

La ventaja de este método es que, aunque un usuario quisiera hacer trampa, al haberse
modificado el programa le será imposible saber cuál es la secuencia que seguía esta primera vez.

Organigrama.-

El organigrama de la figura representa el funcionamiento más completo del programa, la primera


vez que se ejecuta y las siguientes ocasiones ya desde la primera instrucción se saltara a otras
instrucciones.

10
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Antes de grabar un nuevo programa es necesario borrar el PIC, pero este borrado no afecta la
EEPROM.

11
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

12
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Se han 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 forma rápida y fiable el cambio de nuestro código. Una vez
comprobado el buen funcionamiento pueden ser eliminados.

El programa ha cambiado completamente la mayoría de las instrucciones han sido cambiadas por
el código de operación de la instrucción NOP.

A partir de este código sería imposible conocer el programa original.

Diseñar con PIC es fácil

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

Con la aparición de los PIC16F87XX, surge la necesidad de disponer de herramientas que saquen
todo el partido a los nuevos recursos que incorporan. El tratamiento de sensores analógicos y la
regulación de motores, que estos PIC son capaces de gobernar mediante su hardware interno, ha
impulsado a Ingeniería de Microsistemas Programados S.L. a diseñar una plataforma con la que
poder experimentar técnicas avanzadas de control.

13
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

La tarjeta de expansión Micro ‘PIC I/O

La Micro PIC I/O es una tarjeta de expansión que se conecta al Micro ‘PIC Trainer mediante el PIC-
BUS tal como lo muestra la figura

Se basa en la inclusión de periféricos de E/S relacionados con las nuevas características de los PIC
16F87x.

14
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Alimentación

Recibe una tensión de 12 VAC y un puente rectificador D1 junto a un condensador C1

Rectifica y filtra la VAC para entregarla a dos reguladores UA7805 (U1) Y UA7812 (U2), que
proporcionan +5 VDC y +12 VDC respectivamente. Su esquema electrónico se muestra en la
figura.

Doble conector PIC-BUS

15
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

En la figura se puede observar el doble conector PICBUS. Se trata de dos conectores idénticos de
26 vías que soportan las mismas señales. Mediante un cable plano se conecta uno de dichos
conectores con el Micro PIC Trainer, en donde se aloja el PIC bajo prueba. El otro conector puede
usarse para acoplar también al Micro PIC Trainer Plus y así conformar un sistema completo con las
tres tarjetas, que pone a disposición del usuario un abanico extensísimo de periféricos y un
sistema de desarrollo de aplicaciones profesional que facilitara en gran medida el diseño de
aplicaciones.

Generador de funciones

En base a un PIC 16C54RC (U3), tal y como se muestra en la figura, existe un generador de ondas
cuadrada cuya frecuencia se puede seleccionar entre 8 valores diferentes con tres
microrrupotores (SW1)

Oscilador de 32.768 Khz.

Compuesto por un cristal de cuarzo de 32.768 Khz y 2 condensadores de 27 pF, configura un


oscilador de una frecuencia igual a la resonancia del cristal. (Figura).

16
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I
La inclusión de este oscilador tiene la finalidad de permitir al temporizador TMR1 trabajar en la
modalidad en la que precisa una base de tiempos externa gobernada por un cristal de cuarzo.

La razón de haber elegido esta frecuencia es su valor estratégico, que tiene la propiedad de que
con 215 impulsos se consigue fácilmente el tiempo de 1 segundo.

Piezoeléctrico

Se trata de un zumbador piezoeléctrico que va a ser muy interesante para todas aquellas
aplicaciones en las que se precise generar pitidos p << beeps>> sonoros a modo de señales de
aviso o alarma. (Figura).

17
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Sensores analógicos

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


fabricante a incluir un sensor de temperatura de tipo LM35D y un sensor de tipo LDR. La tensión
de referencia necesaria que precisan los circuitos de alimentación se ha resuelto con el circuito
LM336z-2.5V de National Semiconductor, que proporcina una tensión de 2.5 VDC. Mediante un
Jumper se puede relacionar como tensión de referencia los +2.5 VDC o los +5 VDC de
alimentación.

Ambos sensores se muestran en la figura y forman junto a una resistencia un divisor de tensión
que se alimenta con el voltaje de referencia seleccionado.

18
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Opto-Triac para control AC

Par conseguir el control de la 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. E l circuito << detector de paso por
cero>> puede observarse en la izquierda de la figura y consiste en un rectificador en puente
Graetz que recibe 12 VAC y saca una tensión rectificada en doble onda de 10 Hz. , que se aplica al
emisor del optoacoplador 4N33. Cada vez que la señal vale 0 VAC no hay generación de luz y el
opto transistor se bloquea, y la tensión de su colector del transistor un pulso positivo, que pueda
provocar una petición de interrupción en el PIC.

En la tarjeta I/O se ha utilizado como carga una lámpara de incandescencia de 12 VAC gobernada
su potencia por un Opto-Triac MOC3041.

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 abren o cierran
los contactos que controlan la carga. La figura muestra los dos relés alojados en el Micro’PIC I/O.

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 una 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

19
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

De los PIC16F87X, especialmente por el PWM.

A la izquierda de la Figura se muestra uno de estos drivers. En este caso tiene conectado un motor
de corriente continua en sus salidas OUT1 y OUT2, cuyo control se lleva a cabo a través de EN1
para el encendido/apagado del motor e IN1-IN2 para el sentido de giro.

Optoacoplador encoder

20
UNIVERSIDAD POLITECNICA SALESIANA 2010
SISTEMAS MICROPROCESADOS I

Para realizar medidas sobre la velocidad del motor DC y de su posicionamiento, en el Micro’PIC I/O
existe un optoacoplador de ranura ubicado físicamente debajo del eje del motor. Para conformar
un encoger 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. E l número de franjas determinara la resolución. El disco encaja en la ranura del
optoacoplador, que generara un pulso cada vez que pase una franja opaca.

BIBLIOGRAFIA

1. Microcontroladores PIC. Diseño práctico de aplicaciones 2ª parte Agulo Usategui/ Romero


Yesa/Angulo Martínez McGrawHill .

21

Das könnte Ihnen auch gefallen