1.4 - El PIC16F84

17
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.

description

PIC16F84

Transcript of 1.4 - El PIC16F84

Page 1: 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.

Page 2: 1.4 - El PIC16F84

12/03/2015

2

EL PIC16(C/F)84Algunas características:

EL PIC16(C/F)84Variantes del PIC16X8X:

Page 3: 1.4 - El PIC16F84

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.

Page 4: 1.4 - El PIC16F84

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

Page 5: 1.4 - El PIC16F84

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.

Page 6: 1.4 - El PIC16F84

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

Page 7: 1.4 - El PIC16F84

12/03/2015

7

EL PIC16(C/F)84

La arquitectura interna del PIC16F84A

EL PIC16(C/F)84

La arquitectura interna del PIC16F84A

Page 8: 1.4 - El PIC16F84

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.

Page 9: 1.4 - El PIC16F84

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.

Page 10: 1.4 - El PIC16F84

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

Page 11: 1.4 - El PIC16F84

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.

Page 12: 1.4 - El PIC16F84

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.

Page 13: 1.4 - El PIC16F84

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.

Page 14: 1.4 - El PIC16F84

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.

Page 15: 1.4 - El PIC16F84

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.

Page 16: 1.4 - El PIC16F84

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.

Page 17: 1.4 - El PIC16F84

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.