1.4 - El PIC16F84

download 1.4 - El PIC16F84

of 17

  • date post

    11-Jul-2016
  • Category

    Documents

  • view

    28
  • download

    4

Embed Size (px)

description

PIC16F84

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 caractersticas:

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

  • 12/03/2015

    3

    EL PIC16(C/F)84Descripcin de la funcin de cada pin:

    VDD: Alimentacin (+) VSS: Gnd o Alimentacin (-) 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 lgico bajo. Su activacin resetea al PIC. RA0 RA4: Son 5 lneas de E/S digitales. Corresponden a la puerta A. RA4: Tambin sirve para recibir una frecuencia externa para alimentar el temporizador

    interno. RB0 RB7 : Son 8 lneas de E/S digitales. Corresponden a la puerta B. RB0: Tambin sirve para recibir la peticin externa de interrupcin.

    EL PIC16(C/F)84

    El Reloj:

    La frecuencia de trabajo del microcontrolador es un parmetro fundamental a la hora de establecer la velocidad en la ejecucin de instrucciones y el consumo de energa.

    Un ciclo de instruccin, tiempo que cada instruccin tarda en ejecutarse, es de cuatro perodos de reloj (clock u oscilador). Todas las instrucciones del PIC se realizan en un ciclo de instruccin 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 instruccin necesita 4 periodos de reloj para ejecutarse, entonces:

    El ciclo de instruccin se realizan 4 operaciones:

    Q1. Durante este impulso se incrementa el Contador de Programa.

    Q4. Durante este impulso se busca el cdigo de la instruccin en la memoria del programa y se carga en el Registro de Instrucciones.

    Q2-Q3. Durante la actividad de estas dos seales se produce la decodificacin y la ejecucin de la instruccin.

    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 diferenciacin de los dos tipos de memoria (instrucciones y datos)

    permite que cada uno tenga la longitud y el tamao ms 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 bsqueda, se inicia en el contador de programa, quien indica

    la direccin de la memoria de programa.

    EL PIC16(C/F)84

    2

    El cdigo binario de 14 bits se carga en el

    registro de instruccin 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 operacin lgico-

    aritmtica que implica la instruccin decodificada

    EL PIC16(C/F)84

    4

    Las operaciones de E/S las realizan las puertas y las de temporizacin 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 estndar comprendidas entre 100 KHz y 4 MHz.

    Oscilador tipo LP: Oscilador de bajo consumo con cristal o resonador diseado para trabajar en un rango de frecuencias de 35 a 200 KHz.

    EL PIC16(C/F)84

    Cuando se aplica un nivel lgico bajo en la patita MCLR#, el microcontrolador reinicializa

    su estado. Dos acciones importantes se producen en la reinicializacin o reset:

    RESET

    1. El Contador de Programa se carga con la

    direccin 0, apuntando la primera

    direccin de la memoria de programa en

    donde deber estar situada la primera

    instruccin del programa de aplicacin.

    2. La mayora 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 Bsico

    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 aportacin del PIC16F84A es la utilizacin de una memoria

    de programa del tipo FLASH, capaz de ser escrita y borrada elctricamente.

  • 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 esttica o SRAM, donde reside el Banco de Registros Especficos (SFR) y el Banco de Registros de Propsito General (GPR). El primer banco tiene veinticuatro posiciones de tamao 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 alimentacin.

  • 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 fsicamente, 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 seal externa aplicada al pin RA4/TOCKI o de acuerdo a una seal 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 ejecucin normal del programa el contador se incrementa en uno con cada instruccin, a menos que se trate de alguna instruccin 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 aritmtico de la ALU, la causa del reset y los bits de preseleccin 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 propsito 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 generacin 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 conf