1.4 - El PIC16F84
-
Upload
tomas-andres-madrid-rosales -
Category
Documents
-
view
56 -
download
4
description
Transcript of 1.4 - El PIC16F84
12/03/2015
1
EL PIC16(C/F)84
EL PIC16(C/F)84
Es un microcontrolador de 18 pines, perteneciente a la gama media.
La memoria de programa que posee, en el caso del PIC 16C84 se trata de una EEPROM
de 1 K palabras de 14 bits cada una. El PIC 16F84 tiene la misma capacidad de memoria
de instrucciones, pero de tipo FLASH. Ambos disponen de 64 bytes de EEPROM como
memoria de datos auxiliar y opcional.
12/03/2015
2
EL PIC16(C/F)84Algunas características:
EL PIC16(C/F)84Variantes del PIC16X8X:
12/03/2015
3
EL PIC16(C/F)84Descripción de la función de cada pin:
• VDD: Alimentación (+)• VSS: Gnd o Alimentación (-)• OSC1/CLKin: Entrada del circuito oscilador externo (proporciona la frecuencia de trabajo)• OSC2/CLKout: Pin auxiliar del circuito oscilador.• MCLR#: Es pin se activa con un nivel lógico bajo. Su activación resetea al PIC.• RA0 – RA4: Son 5 líneas de E/S digitales. Corresponden a la puerta A.• RA4: También sirve para recibir una frecuencia externa para alimentar el temporizador
interno.• RB0 – RB7 : Son 8 líneas de E/S digitales. Corresponden a la puerta B.• RB0: También sirve para recibir la petición externa de interrupción.
EL PIC16(C/F)84
El Reloj:
La frecuencia de trabajo del microcontrolador es un parámetro fundamental a la hora de establecer la velocidad en la ejecución de instrucciones y el consumo de energía.
Un ciclo de instrucción, tiempo que cada instrucción tarda en ejecutarse, es de cuatro períodos de reloj (clock u oscilador). Todas las instrucciones del PIC se realizan en un ciclo de instrucción menos las de salto, que tardan el doble.
12/03/2015
4
EL PIC16(C/F)84
El Reloj:
Cuando un PIC16X8X funciona a 10 MHz, entonces:
Cada instrucción necesita 4 periodos de reloj para ejecutarse, entonces:
El ciclo de instrucción se realizan 4 operaciones:
• Q1. Durante este impulso se incrementa el Contador de Programa.
• Q4. Durante este impulso se busca el código de la instrucción en la memoria del
programa y se carga en el Registro de Instrucciones.
• Q2-Q3. Durante la actividad de estas dos señales se produce la decodificación y la
ejecución de la instrucción.
nSMHz
T RELOJCICLO 10010
1_
nSnSTT RELOJCICLONINSTRUCCIOCICLO 40010044 __
EL PIC16(C/F)84
12/03/2015
5
EL PIC16(C/F)84
EL PIC16(C/F)84
Ejemplo: Un PIC16C84 funciona a 4 MHz y ejecuta un programa de 1.000
instrucciones, de las cuales el 25% son de salto. Calcule el tiempo que tarda en ejecutarlo
por completo.
12/03/2015
6
EL PIC16(C/F)84SOLUCION
Ejemplo: Un PIC16C84 funciona a 4 MHz y ejecuta un programa de 1.000
instrucciones, de las cuales el 25% son de salto. Calcule el tiempo que tarda en ejecutarlo
por completo.
SMHz
T NINSTRUCCIOCICLO 14
14_
2501000%25__ saltodenesInstruccio
7501000%75_ normalesnesInstruccio
SST SALTOSCICLO 50022501_
SST NORMALESNEINSTRUCCIOCICLO 7507501__
SSSTPROGRAMA 1250750500
EL PIC16(C/F)84
El aislamiento y diferenciación de los dos tipos de memoria (instrucciones y datos)
permite que cada uno tenga la longitud y el tamaño más adecuados. De esta forma, en el
PIC16F84A, la longitud de los datos es de un byte, mientras que la de las instrucciones es de
14 bits
La arquitectura interna del PIC16F84A
12/03/2015
7
EL PIC16(C/F)84
La arquitectura interna del PIC16F84A
EL PIC16(C/F)84
La arquitectura interna del PIC16F84A
12/03/2015
8
EL PIC16(C/F)84
1
La fase de búsqueda, se inicia en el contador de programa, quien indica
la dirección de la memoria de programa.
EL PIC16(C/F)84
2
El código binario de 14 bits se carga en el
registro de instrucción y se transfiere al
decodificador y a la unidad de control.
12/03/2015
9
EL PIC16(C/F)84
3
Ya en la unidad de control la ALU es la
encargada de realizar la operación lógico-
aritmética que implica la instrucción decodificada
EL PIC16(C/F)84
4
Las operaciones de E/S las realizan las puertas y las de temporización el
TMR0.
12/03/2015
10
EL PIC16(C/F)84
Osciladores
Los PIC admiten cuatro tipos de osciladores externos para aplicarles la frecuencia de
funcionamiento.
Oscilador tipo RC
Oscilador tipo HS
Oscilador tipo XT
Oscilador tipo LP
Oscilador de cristal o resonador
EL PIC16(C/F)84
Oscilador tipo RC
Se trata de un oscilador de bajo coste formado por una simple resistencia y un condensador.
Proporciona una estabilidad mediocre de la frecuencia cuyo valor depende de los valores de
los dos elementos de la red R-C
12/03/2015
11
EL PIC16(C/F)84
Oscilador tipo HS: oscilador que alcanza una alta velocidad comprendida entre 8 y 10 MHz
Oscilador tipo XT: oscilador de cristal o resonador para frecuencias estándar comprendidas entre 100 KHz y 4 MHz.
Oscilador tipo LP: Oscilador de bajo consumo con cristal o resonador diseñado para trabajar en un rango de frecuencias de 35 a 200 KHz.
EL PIC16(C/F)84
Cuando se aplica un nivel lógico bajo en la patita MCLR#, el microcontrolador reinicializa
su estado. Dos acciones importantes se producen en la reinicialización o reset:
RESET
1. El Contador de Programa se carga con la
dirección 0, apuntando la primera
dirección de la memoria de programa en
donde deberá estar situada la primera
instrucción del programa de aplicación.
2. La mayoría de los registros de estado y
control del procesador toman un estado
conocido y determinado.
12/03/2015
12
EL PIC16(C/F)84
Circuito Básico
El diodo 1N4148 es opcional.
EL PIC16(C/F)84
Memoria de ProgramaLa arquitectura de los PIC de la gama media admite un mapa de memoria de programa
capaz de contener 8.192 instrucciones de 14 bits cada una.
En la gama media, la verdadera aportación del PIC16F84A es la utilización de una memoria
de programa del tipo FLASH, capaz de ser escrita y borrada eléctricamente.
12/03/2015
13
EL PIC16(C/F)84
Memoria de Programa
La Pila es una zona aislada de las memorias de instrucciones y datos. Tiene una
estructura LIFO en la que el último valor guardado es el primero que sale. Tiene ocho
niveles de profundidad, cada uno con 13 bits. Funciona como un buffer circular, de manera
que el valor que se obtiene al realizar el noveno «desempilado» (pop) es igual al que se
obtuvo en el primero.
EL PIC16(C/F)84
Memoria de Datos
La memoria de datos del PIC16F84A dispone de dos zonas
diferentes:
• Área de RAM estática o SRAM, donde reside el Banco de Registros Específicos (SFR) y el Banco de Registros de Propósito General (GPR). El primer banco tiene veinticuatro posiciones de tamaño byte, aunque dos de ellas no son operativas, y el segundo, sesenta y ocho.
• Área EEPROM de 64 bytes, donde opcionalmente se pueden almacenar datos que no se pierden al desconectar la alimentación.
12/03/2015
14
EL PIC16(C/F)84
Memoria de Datos
00h o INDF: Registro para direccionamiento indirecto de datos. Este no es un registro disponible físicamente, utiliza el contenido del FSR y el bit RP0 del registro ESTADO para seleccionar indirectamente la memoria de datos del usuario.
01h o TMR0: Temporizador/contador de 8 bits. Este se puede incrementar con una señal externa aplicada al pin RA4/TOCKI o de acuerdo a una señal interna proveniente del reloj de instrucciones del microcontrolador. La ruta de incremento del registro se puede determinar por medio de un preescalador, localizado en el registro OPTION.
EL PIC16(C/F)84
Memoria de Datos
02h o PCL: Contador de programa. Se utiliza para direccionar las palabras de 14 bits del programa del usuario que se encuentra almacenado en la memoria de programa, el contador de programa es de 13 bits de ancho. Se divide en byte alto (PCLATH) y bajo (PCL). Durante la ejecución normal del programa el contador se incrementa en uno con cada instrucción, a menos que se trate de alguna instrucción de salto.
0Ah o PCLATH: Contador de programa. Es la parte alta del contador de programa y no se puede acceder directamente.
12/03/2015
15
EL PIC16(C/F)84
Memoria de Datos
03h o PCL: Registro de estados. Contiene el estado aritmético de la ALU, la causa del reset y los bits de preselección de banco de memoria de datos.
EL PIC16(C/F)84
Memoria de Datos
04h o FSR: Registro selector de registros. En asocio con el registro IND0, se utiliza para seleccionar indirectamente los otros registros disponibles. Si en el programa no se utilizan llamadas indirectas, este registro se puede utilizar como un registro de propósito general.
12/03/2015
16
EL PIC16(C/F)84
Memoria de Datos
05h o PORTA: Puerto de Entrada/Salida de 5 bits. Este puerto puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de los pines es el llamado TRISA, un cero en el bit correspondiente al pin lo configura como salida.
06h o PORTB: Puerto de Entrada/Salida de 8 bits. Este puerto puede leerse o escribirse como si se tratara de un registro cualquiera, algunos de sus pines tienen funciones alternas en la generación de interrupciones. El registro que controla el sentido (entrada o salida) de los pines es el llamado TRISB, un cero en el bit correspondiente al pin lo configura como salida.
EL PIC16(C/F)84
Memoria de Datos
08h o EEDATA: Registro de datos de la EEPROM. Este registro contiene el dato que se va a escribir en la memoria EEPROM de datos o el que se leyó de esta, este registro se controla con el EECON1.
09h o EEDATA: Registro de datos de la EEPROM. Aquí se mantiene la dirección de la EEPROM que se escribirá o leerá, este registro se controla con el EECON2.
12/03/2015
17
EL PIC16(C/F)84
Memoria de Datos0Bh o INTCON: Registro para el control de interrupciones. Es el encargado del manejo de las interrupciones.
EL PIC16(C/F)84
Memoria de Datos0Bh o INTCON: Registro para el control de interrupciones. Es el encargado del manejo de las interrupciones.