UNIDAD DE APRENDIZAJE 2OPERACIÓN DE MICRO CONTROLADORESCONALEP SAN MARTÍNACADEMIA DE ELECTRÓNICADOCENTE: REBECA ISLAS BADILLOMATERIAL DE APOYO PARA LA MATERIA DE MICROS E INTERFASES
PROPÓSITO DE LA UNIDADREALIZAR LA OPERACIÓN DE MICRO CONTROLADORES EN OPERACIONES BÁSICAS DE CONTROL , PARA SU IMPLEMENTACIÓN EN SISTEMAS ELECTRÓNICOS INDUSTRIALES
RESULTADO DE APRENDIZAJE2.1. IDENTIFICA LA ARQUITECTURA  BÁSICA DE MICROCONTROLADORES , MEDIANTE EL ANÁLISIS DE SUS COMPONENTES
El PIC16F84 es un microcontrolador, una especie de "ordenador en miniatura“  que podremos programar. En su interior posee un microprocesador, una memoria RAM (volatil) donde guardaremos las variables, una memoria EEPROM (no volatil) donde guardaremos nuestro programa, un Timer o contador que nos facilitará algunas tareas, y algunas cosas mas.
CARACTERÍSTICAS REPRESENTATIVASOpera a una frecuencia máxima de 10 MHz 1Kbyte de memoria EEPROM para nuestro programa 68 bytes (de 8 bits) de memoria RAM 64 bytes de memoria EEPROM para datos (no volátiles) Solo 35 instrucciones 13 pines de entrada/salida (un puerto de 8 bits + otro de 5 bits) Timer/contador de 8 bits
Descripción de sus pines
VIDEOhttp://www.youtube.com/watch?v=ztnJOgBdrNI
RA0-RA4: SON LOS PINES DEL PUERTOA.RBO-RB7: SON LOS PINES DEL PUERTOB.MCLR: PIN DE RESETEO DEL PIC, CUANDO SE PONE A 0 EL PIC SE RESETEA.Vdd y Vss: PINES DE ALIMENTACIÓN (5V Y TIERRA RESPECTIVAMENTE).OSC1/CLKIN Y OSC2/CLKOUT: SON PARA EL OSCILADOR
OSC1/CLKIN y OSC2/CLKOUT: son para el oscilador Los tipos de osciladores mas usados son el XT (cristal de cuarzo) y el RC (resistencia y condensador) el modo de conexionado es el  siguiente: Oscilador XT                   Oscilador RCC1=C2=33pF              C1 alrededor de 20pF Crystal ≤ 4MHz           5KΩ ≤ R1 ≤ 100KΩ
ARQUITECTURAEl registro W funciona a modo de acumulador.
La RAM es vista como un ‘archivo de registros’.
Modos de direccionamiento:
Directo(dirección contenida en la instrucción)
Indirecto (dirección en FSR)
Uso de la pila para anidamiento de llamadas a rutinas. No para datos.
Permite datos inmediatos.
Almacenamiento directo de resultados en memoria.
EEPROM grabable dinámicamente.
OPERACIÓN DE LAMEMORIA
En primer lugar tenemos que distinguir claramente entre tres tipos de memoria:Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leída por el pic (el pic va leyendo las instrucciones del programa almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra. Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra. Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear.
MEMORIA EEPROM
EL ESPACIO  MARCADO COMO USER MEMORY SPACE ES EL ESPACIO DE MEMORIA DONDE IRÁ NUESTRO PROGRAMA, COMPRENDE LAS DIRECCIONES DE MEMORIA DESDE 0000H HASTA 3FFH (3FFH EN DECIMAL ES 1023, MAS LA DIRECCIÓN 0000H HACEN 1024 DIRECCIONES, ES DECIR, 1KBYTE.RESET VECTOR ES LA PRIMERA DIRECCIÓN A LA QUE SE DIRIGE EL PIC AL ENCENDERLO O AL RESETEARLO.PC Y LOS STACK LEVEL SON EMPLEADOS POR EL PIC Y NOSOTROS NO TENEMEOS ACCESO A  ELLOS.
LA MEMORIA RAM
LA MEMORIA RAM NO SOLO SE USA PARA ALMACENAR NUESTRAS VARIABLES, TAMBIÉN SE ALMACENAN UNA SERIE DE REGISTROS QUE CONFIGURAN Y CONTROLAN EL PIC.ESTA DIVIDIDA EN DOS BANCOS, EL BANCO 0 Y EL BANCO 1.Selección del banco:Bit RP0 del registro STATUSRP0 = 0 -> Banco 0RP0 = 1 -> Banco 1Registros:SFRBanco 0: RP0=0  0x00 -> 0x0BBanco 1: RP0=1  0x00 -> 0x0BGPRBanco 0: 0x0C -> 0x4F (68 bytes)Banco 1: Mapeado completamente en el banco 0
Registros internosEstos registros se usan para controlar los pines del pic, consultar los resultados de las operaciones de la ALU (unidad aritmética lógica), cambiar de banco de memoria... entre otras cosas.
INDF (direccionamiento indirecto)TMR0 (Timer/contador) PCL (Parte baja del contador de programa)FSR (Puntero)
EN ESTE APARTADO CONOCISTE LAS CARACTERÍSTICAS PRINCIPALES DEL PIC16F84.EN LA SIGUIENTE ENTREGA APRENDERÁS A PROGRAMARLOS.
MEMORIA DE DATOS

Introducpic2

  • 1.
    UNIDAD DE APRENDIZAJE2OPERACIÓN DE MICRO CONTROLADORESCONALEP SAN MARTÍNACADEMIA DE ELECTRÓNICADOCENTE: REBECA ISLAS BADILLOMATERIAL DE APOYO PARA LA MATERIA DE MICROS E INTERFASES
  • 2.
    PROPÓSITO DE LAUNIDADREALIZAR LA OPERACIÓN DE MICRO CONTROLADORES EN OPERACIONES BÁSICAS DE CONTROL , PARA SU IMPLEMENTACIÓN EN SISTEMAS ELECTRÓNICOS INDUSTRIALES
  • 3.
    RESULTADO DE APRENDIZAJE2.1.IDENTIFICA LA ARQUITECTURA BÁSICA DE MICROCONTROLADORES , MEDIANTE EL ANÁLISIS DE SUS COMPONENTES
  • 4.
    El PIC16F84 esun microcontrolador, una especie de "ordenador en miniatura“ que podremos programar. En su interior posee un microprocesador, una memoria RAM (volatil) donde guardaremos las variables, una memoria EEPROM (no volatil) donde guardaremos nuestro programa, un Timer o contador que nos facilitará algunas tareas, y algunas cosas mas.
  • 5.
    CARACTERÍSTICAS REPRESENTATIVASOpera auna frecuencia máxima de 10 MHz 1Kbyte de memoria EEPROM para nuestro programa 68 bytes (de 8 bits) de memoria RAM 64 bytes de memoria EEPROM para datos (no volátiles) Solo 35 instrucciones 13 pines de entrada/salida (un puerto de 8 bits + otro de 5 bits) Timer/contador de 8 bits
  • 6.
  • 7.
  • 8.
    RA0-RA4: SON LOSPINES DEL PUERTOA.RBO-RB7: SON LOS PINES DEL PUERTOB.MCLR: PIN DE RESETEO DEL PIC, CUANDO SE PONE A 0 EL PIC SE RESETEA.Vdd y Vss: PINES DE ALIMENTACIÓN (5V Y TIERRA RESPECTIVAMENTE).OSC1/CLKIN Y OSC2/CLKOUT: SON PARA EL OSCILADOR
  • 9.
    OSC1/CLKIN y OSC2/CLKOUT:son para el oscilador Los tipos de osciladores mas usados son el XT (cristal de cuarzo) y el RC (resistencia y condensador) el modo de conexionado es el siguiente: Oscilador XT Oscilador RCC1=C2=33pF C1 alrededor de 20pF Crystal ≤ 4MHz 5KΩ ≤ R1 ≤ 100KΩ
  • 10.
    ARQUITECTURAEl registro Wfunciona a modo de acumulador.
  • 11.
    La RAM esvista como un ‘archivo de registros’.
  • 12.
  • 13.
  • 14.
  • 15.
    Uso de lapila para anidamiento de llamadas a rutinas. No para datos.
  • 16.
  • 17.
    Almacenamiento directo deresultados en memoria.
  • 18.
  • 19.
  • 20.
    En primer lugartenemos que distinguir claramente entre tres tipos de memoria:Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podrá ser leída por el pic (el pic va leyendo las instrucciones del programa almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra. Dos: la memoria RAM en cuyos registros se irán almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra. Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratará aquí por ser una memoria mas difícil de emplear.
  • 21.
  • 22.
    EL ESPACIO MARCADO COMO USER MEMORY SPACE ES EL ESPACIO DE MEMORIA DONDE IRÁ NUESTRO PROGRAMA, COMPRENDE LAS DIRECCIONES DE MEMORIA DESDE 0000H HASTA 3FFH (3FFH EN DECIMAL ES 1023, MAS LA DIRECCIÓN 0000H HACEN 1024 DIRECCIONES, ES DECIR, 1KBYTE.RESET VECTOR ES LA PRIMERA DIRECCIÓN A LA QUE SE DIRIGE EL PIC AL ENCENDERLO O AL RESETEARLO.PC Y LOS STACK LEVEL SON EMPLEADOS POR EL PIC Y NOSOTROS NO TENEMEOS ACCESO A ELLOS.
  • 23.
  • 24.
    LA MEMORIA RAMNO SOLO SE USA PARA ALMACENAR NUESTRAS VARIABLES, TAMBIÉN SE ALMACENAN UNA SERIE DE REGISTROS QUE CONFIGURAN Y CONTROLAN EL PIC.ESTA DIVIDIDA EN DOS BANCOS, EL BANCO 0 Y EL BANCO 1.Selección del banco:Bit RP0 del registro STATUSRP0 = 0 -> Banco 0RP0 = 1 -> Banco 1Registros:SFRBanco 0: RP0=0  0x00 -> 0x0BBanco 1: RP0=1  0x00 -> 0x0BGPRBanco 0: 0x0C -> 0x4F (68 bytes)Banco 1: Mapeado completamente en el banco 0
  • 25.
    Registros internosEstos registrosse usan para controlar los pines del pic, consultar los resultados de las operaciones de la ALU (unidad aritmética lógica), cambiar de banco de memoria... entre otras cosas.
  • 26.
    INDF (direccionamiento indirecto)TMR0(Timer/contador) PCL (Parte baja del contador de programa)FSR (Puntero)
  • 27.
    EN ESTE APARTADOCONOCISTE LAS CARACTERÍSTICAS PRINCIPALES DEL PIC16F84.EN LA SIGUIENTE ENTREGA APRENDERÁS A PROGRAMARLOS.
  • 28.
  • 29.
    MEMORIA DE DATOSEstáorganizada en dos páginas o bancos de registro, banco 0 y banco 1. Para cambiar de página se utiliza un bit del registro STATUS (RP0).Cada banco se divide a su vez en dos áreas:RFS (Registros de Funciones Especiales)RGP (Registros de Propósito General)
  • 30.
    BANCO 0INDF (direccionamientoindirecto): Dirección 00h, sirve para ver el dato de la dirección a la que apunta el registro FSR (dir. 04h) . TMR0 (Timer/contador): Dirección 01h, Aquí se puede ver el valor en tiempo real del Timer/contador. También se puede introducir un valor y alterar así el conteo. Este conteo puede ser interno (cuenta ciclos de reloj) o externo (cuenta inpulsos introducidos por RA4). PCL (Parte baja del contador de programa): Dirección 02h, Modificando este registro se modifica el contador de programa, este contador de programa es el que señala al pic en que dirección (de EEPROM) tiene que leer la siguiente instrucción. Esto se utiliza mucho para consultar tablas (ya veremos mas adelante)
  • 31.
    STATUS (ESTADO): Dirección03h, este es uno de los registros mas importantes y el que mas vas a utilizar. Hay que analizar el funcionamiento de este registro bit a bit.IRPRP1 DCRP0/T0 C Z /PD 7 6 5 4 3 2 1 0 C – CARRY. Este bit se pone a "1" cuando la operación anterior ha rebasado la capacidad de un byteDC – DIGIT CARRY. lo mismo que el anterior pero esta vez nos avisa si el número no cabe en cuatro bits.Z – CERO. Se pone a "1" si la operación ha sido cero. Y pasa a "0" si la operación no ha sido cero.
  • 32.
    /PD - Power- Down bit. Se pone a "0" después de ejecutar la instrucción SLEEP*, se pone a "1" después de ejecutar la instrucción CLRWDT* o después de un power-up/PD - Power - Down bit. Se pone a "0" después de ejecutar la instrucción SLEEP*, se pone a "1" después de ejecutar la instrucción CLRWDT* o después de un power-up/T0 – TIMER UP. Se pone a "0" cuando se acaba el tiempo del WATCHDOG*, Se pone a "1" despues de ejecutar las instrucciones, CLRWDT* o SLEEP* o despues de un power-up*.RP0 Y RP1 – SELECCIÓN DEL BANCO. La selección del banco se hace mediante RP0 (STATUS,5), si está a "0" nos encontramos en el banco 0, y si está a "1" nos encontramos en el banco 1.IRP. En este PIC no se usa
  • 33.
  • 34.
    El PIC16F84A pertenecea la gama media y es de tipo RISC; esto quiere decir que tiene un juego de instrucciones reducido, en concreto de 35 instrucciones o nemónicos que son la base de funcionamiento del PIC.
  • 35.