Professional Documents
Culture Documents
El pic que se va a utilizar para las prácticas realizadas va ha ser el 16f84. Este
pic es similar al 16c84, por tanto (aunque a veces se hable de éste) nos referimos al
16f84 a lo largo de toda la guía.
1. Encapsulado:
- MCLR: Esta patilla va a ser activada a nivel bajo para resetear el pic.
También se va a utilizar durante la grabación de la memoria de programa para introducir
por ella la tensión Vpp (12V – 14V DC). El micropic trainer tiene un botón de reset
conectado al pic como se ve en la figura 1.2 (R1 = 100Ω y R = 4K7Ω ).
Figura 1.2. Circuito que permite producir un
reset al presionar un pulsador
Este circuito utiliza un cristal de cuarzo que actúa como un oscilador que
proporciona la frecuencia de 4MHz antes citada. Los condensadores C1 y C2 están
comprendidos entre 15 – 33 pF. El micro’pic trainer los utiliza de 27 pF.
En la figura 2.1 aparece el diagrama de bloques del pic 16f84. Para analizar un
poco el funcionamiento del procesador, nos vamos a centrar en la ejecución de una
instrucción.
La pila es una zona aislada de las memorias de instrucciones y datos (Ver fig.
2.3). Tiene una estructura LIFO (Last In First Out) en la que el último valor guardado es
el primero que sale. Tiene ocho niveles de profundidad cada uno con 13 bits. La
instrucción CALL (Ver apartado 5) y las interrupciones originan la carga del contenido
del PC en el nivel superior de la pila. El contenido del nivel superior se saca de la pila al
ejecutar las instrucciones RETURN, RETLW y RETFIE.
3. Registros internos:
- Registro PCL (02): Son los 8 bits de menos peso del contador del programa
o PC. Como el PC debe tiene un tamaño de 13 bits, sus bits de mayor peso se llevan al
registro PCLATH (posiciones 0A-8A). Como muestra la figura 3.2, si el PC es destino
de una instrucción, el contenido de PCLATH se tiene en cuenta automáticamente; para
las instrucciones CALL y GOTO tiene lugar la misma operación (teniendo en cuenta
que el PC está ahora codificado con 11 bits en la propia instrucción).
Figura 3.2. Determinación de los bits de mayor peso del PC a través del
PCLATH. A la derecha, para instrucciones CALL y GOTO.
TO PD Condición de reset
1 1 Reset por alimentación
0 1 Desbordamiento del WDT en funcionamiento normal
0 0 Desbordamiento del WDT en estado de reposo
1 1 Activación del MCLR en funcionamiento normal
1 0 Activación MCLR en reposo
Tabla 3.1. Determinación del origen de un reset
Cada bit del registro INTCON (Figura 3.4) tiene un significado concreto que es
el que sigue:
Los bits 0, 1 y 2 o PS0, PS1 y PS2 son los encargados de definir el valor con el
que actúa el divisor de frecuencia. En la tabla 3.2 se pueden ver los distintos valores que
puede tomar el divisor.
Para leer la EEPROM basta con colocar la dirección a leer en EEADR y poner a
1 el bit RD. El dato leído estará disponible en el registro EEDATA.
4. Programación:
En la tabla 5.1, podemos ver las 35 instrucciones diferentes que se pueden usar
en la programación del pic 16F84. En la columna de sintaxis aparecen las siguientes
letras:
- SWAPF f, d: intercambia los cuatro bits de mayor peso con los cuatro de
menor peso de f y almacena el resultado en f o W (según d).