microcontroladores 3a fase corregida

74
PIC 16F877 Ing. Diana Valdivieso Herrera

Upload: julio

Post on 09-Sep-2015

233 views

Category:

Documents


5 download

DESCRIPTION

microcontroladores pic 16f877 diapositivas ingeniera dvh la mejor

TRANSCRIPT

  • PIC 16F877

    Ing. Diana Valdivieso Herrera

  • PIC 16F877 PIC 16F84A PIC 16F877

    Memoria Programa 1024 * 14 8192 * 14 Memoria Datos RAM / EEPROM

    68 / 64 368 / 256

    Deteccin de baja tensin

    No Si

    Lneas E/S 13 33 Comunicacin Serie No Usart/Mssp CCP No 2 Temporizadores 1 (8 bits), Wdt 1(16), 2(8), Wdt

    Ing. Diana Valdivieso Herrera

  • PIC 16F877

    Ing. Diana Valdivieso Herrera

    PIC 16F84A PIC 16F877 Frecuencia Mxima 20 MHz 20 MHz Interrupciones 4 14 Comunicacin Paralelo

    No Si

    Encapsulado 18 pines 40 pines Conv. A/D No 8 (10 bits)

  • Ing. Diana Valdivieso Herrera

  • PIC 16F877 Cinco puertos de entrada/ salida. Los puertos son los siguientes: Port A 6 pines Port B 8 pines Port C 8 pines Port D 8 pines Port E 3 pines

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Conversor Anlogo Digital El 16F877 posee un conversor A/D de 10 bits de resolucin y 8 canales . Sus entradas se encuentran multiplexadas con 5 de los 6 pines del puerto A y con los 3 pines del puerto E.

    Ing. Diana Valdivieso Herrera

  • Conversor Anlogo Digital

    Ing. Diana Valdivieso Herrera

  • Conversor Anlogo Digital La seal analgica ingresa a un condensador de captura y retencin (sample and hold) y despus se introduce en el convertidor. El convertidor A/D es de aproximaciones sucesivas da como resultado una palabra de 10 bits.

    Ing. Diana Valdivieso Herrera

  • Conversor Anlogo Digital La resolucin que tiene cada bit procedente de la conversin tiene un valor que es funcin de la tensin de referencia Vref, de acuerdo con la frmula siguiente:

    = (+ )

    Ing. Diana Valdivieso Herrera

  • Conversor Anlogo Digital La tensin de referencia puede implementarse con la tensin interna de alimentacin VDD o con una externa que se introduce por el pin RA3/AN3/VREF+, en este caso la polaridad negativa se aplica por el pin RA2/AN2/VREF-. El convertidor A/D es capaz de seguir trabajando mientras el pic esta en modo SLEEP. Para ello el oscilador interno RC debe conectarse al conversor A/D. Ing. Diana Valdivieso Herrera

  • Configuracin del conversor A/D Para el correcto funcionamiento del conversor A/D se requiere configurar los siguientes registros: Registro ADRESH: Parte alta del resultado

    de la conversin. Registro ADRESL: Parte baja del resultado

    de la conversin. ADCON0: Registro de control 0. ADCON1: Registro de control 1.

    Ing. Diana Valdivieso Herrera

  • Configuracin del conversor A/D

    Ing. Diana Valdivieso Herrera

  • Configuracin del conversor A/D

    Ing. Diana Valdivieso Herrera

  • Registro ADCON0 Este registro controla la operacin del A/D. Bit 7-6: Bits de seleccin del reloj de conversin

    Ing. Diana Valdivieso Herrera

    ADCS1 ADCS0 TAD Frecuencia

    0 0 2 * TOSC FOSC /2

    0 1 8 * TOSC FOSC /8

    1 0 32 * TOSC FOSC /32

    1 1 Oscilador RC interno

    Nota: TAD nunca debe ser menor de 1.6 s.

  • Bit 3-5: Bits de seleccin del canal analgico por donde se introduce la seal analgica a convertir de acuerdo a la siguiente tabla.

    Ing. Diana Valdivieso Herrera

    CHS2

    CHS1

    CHS0

    0 0 0 Canal 0 (RA0/AN0) 0 0 1 Canal 1 (RA1/AN1) 0 1 0 Canal 2 (RA2/AN2) 0 1 1 Canal 3 (RA3/AN3) 1 0 0 Canal 4 (RA4/AN4) 1 0 1 Canal 5 (RE0/AN5) 1 1 0 Canal 6 (RE1/AN6) 1 1 1 Canal 7 (RE2/AN7)

  • Bit 2: Bit de estado de la conversin A/D (GO/DONE), Ponindolo a 1 se inicia la conversin y

    mientras se realiza la conversin permanece en 1.

    Al finalizar la conversin pasa a 0, colocando el resultado en la pareja de registros ADRESH-ADRESL y activando el flag ADIF (Registro PIR1), que provoca una interrupcin si el bit de permiso correspondiente esta activado.

    Ing. Diana Valdivieso Herrera

  • Bit 1: No implementado, se lee como 0 Bit 0: ADON,bit de encendido o bit de

    activacin del conversor A/D

    Ing. Diana Valdivieso Herrera

  • Registro ADCON1 El registro ADCON1, es el registro de configuracin de los pines del puerto A. Los cuales pueden trabajar como: como entradas analgicas. entrada de tensin de referencia. entrada o salida digital.

    Ing. Diana Valdivieso Herrera

  • El bit ADFM (bit 7) selecciona el formato del resultado de la conversin. Si vale 1 el resultado est justificado en el

    registro ADRESH que tienen sus 6 bits de ms peso a 0.

    Si ADFM vale 0 la justificacin se realiza sobre el registro ADRESL, que tiene sus 6 bits menos significativos a 0.

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Los bits 6, 5 y 4 no se encuentran implementados.

    Los cuatro bits restantes PCFG0 a PCFG3 se usan para configurar las patitas de los canales de entrada al conversor como analgicas o como entrada o salida digital, de acuerdo a la siguiente tabla.

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Mdulo CCP Mdulo CCP (Capture, Compare, PWM) El 16F877 tiene 2 mdulos: CCP1 y CCP2 Cada mdulo tiene un registro de 16 bits

    y puede operar en los tres modos. Los dos mdulos son idnticos a

    excepcin de la operacin especial event trigger.

    Ing. Diana Valdivieso Herrera

  • El mdulo CCP1 tiene el registro CCPR1 compuesto por la concatenacin de los registros CCPR1H (16h) y CCPR1L (15h) cada uno de 8 bits, lo que hace un total de 16 bits controlado por el registro CCP1CON (17h). El disparo especial es generado por una comparacin y resetea el Timer1. Usa el pin RC2/CCP1.

    Ing. Diana Valdivieso Herrera

  • El mdulo CCP2 tiene el registro de trabajo CCPR2 que est compuesto por la concatenacin de los registros CCPR2H (1CH) y CCPR2L (1BH), controlado por el registro CCP2CON (1Dh). El disparo especial es generado por una comparacin, resetea el timer1 y arranca la conversin A/D. Usa el pin RC1/T1OSCI/CCP2. Ing. Diana Valdivieso Herrera

  • Modos de operacin: Los timer asociados a los modos de operacin son: Modo captura Timer 1 Modo comparacin Timer 1 Modo PWM Timer 2

    Ing. Diana Valdivieso Herrera

  • Interaccin entre los mdulos Captura, captura Captura, comparacin PWM, PWM PWM, captura PWM, comparacin

    Ing. Diana Valdivieso Herrera

  • Registro CCPxCON

    Ing. Diana Valdivieso Herrera

  • Registro CCPxCON Bit 7-6 No implementados se leen como

    cero. Bit 5-4 CCPxX-CPxY: slo se usan en el

    modo PWM, en este caso son los dos bits menos significativos de PWM, los ocho bits ms significativos se encuentran en CCPRxL.

    Ing. Diana Valdivieso Herrera

  • Registro CCPxCON Bit 3-0: bits seleccin modo de trabajo.

    Ing. Diana Valdivieso Herrera

    Modo de Trabajo 0000 Mdulo CCPx desactivado 0100 Modo de captura por flanco descendente 0101 Modo de captura por flanco ascendente 0110 Modo de captura cada 4 flancos ascend. 0111 Modo de captura cada 16 flancos ascend. 1000 Modo comparacin, pone a 1 pin RCy/CCPx 1001 Modo comparacin, pone a 0 pin RCy/CCPx 1010 Modo comparacin que genera interrupcin 1011 Modo comparacin, con disparo especial 11xx Modo PWM

  • Modo Captura La pareja de registros CCPRx captura el valor que tiene el Timer1 cuando ocurre un evento especial en el pin RC2/CCP1 (para el mdulo CCP1) o en el pin RC1/T1OSI/CCP2 (para el mdulo CCP2). Dichos pines deben configurarse como entradas.

    Ing. Diana Valdivieso Herrera

  • Los eventos posibles que pueden ocurrir para que se produzca la captura son: Un flanco ascendente. Un flanco descendente. Cada 4 flancos ascendentes. Cada 16 flancos ascendentes.

    Ing. Diana Valdivieso Herrera

  • Al producirse la captura, se activa el flag CCP1IF.

    Si el bit CCP1IE est habilitado (adems del GIE y PEIE), se genera una interrupcin inmediatamente despus de que CCPR1H-L se cargue con el valor de Timer1.

    Ing. Diana Valdivieso Herrera

  • Modo Comparacin En este modo: El contenido de la pareja de registros

    CCPR1H-L se compara con el valor del Timer 1, cuando ambos valores coinciden, se produce un evento en el pin RCy/CCPx, el cual debe estar configurado como salida.

    Ing. Diana Valdivieso Herrera

  • Los posibles eventos en RCy/CCPx son: Pasa a nivel alto. Pasa a nivel bajo. No cambia su estado, pero se produce

    una interrupcin.

    Ing. Diana Valdivieso Herrera

  • Al coincidir los valores del Timer 1 con los del par de registros CCPRxH-L, se activa el flag CCP1IF.

    Si el bit CCP1IE est habilitado (adems del GIE y PEIE), se genera una interrupcin inmediatamente despus de que CCPR1H-L se cargue con el valor de Timer1.

    Ing. Diana Valdivieso Herrera

  • Modo PWM En este modo se puede producir una salida de frecuencia fija seleccionable, est seal puede ser modulada en ancho de pulso, es decir el ciclo de trabajo de dicha seal tambin se puede programar con una resolucin de hasta 10 bits. Esta salida se obtiene por los pines RCy/CCPx, los cuales deben configurarse como salidas.

    Ing. Diana Valdivieso Herrera

  • Modo PWM

    Ing. Diana Valdivieso Herrera

  • Control del perodo del PWM El perodo de la seal esta dado por un valor cargado en el registro PR2, de acuerdo a la siguiente expresin: Perodo PWM=(PR2+1)*4*Tosc*M donde 1/M es el preescalador del Timer 2.

    Ing. Diana Valdivieso Herrera

  • Cuando el valor de TMR2 alcanza el valor de PR2, se producen: El registro TMR2 se borra. La salida CCPx se pone a 1 (salvo que el

    ciclo de trabajo sea cero). El ciclo de trabajo es cargado de CCPRxL

    a CCPRxH.

    Ing. Diana Valdivieso Herrera

  • Control del ciclo de trabajo del PWM El ciclo de trabajo se especifica cargando un valor de 10 bits en el registro CCPRxL (8 bits de mayor peso) y los dos bits de menos peso en CCPxCON (bits 5 y 4). Para calcular el ciclo de trabajo (CT), se usa la siguiente expresin: Perodo PWM=CT*Tosc*M

    Ing. Diana Valdivieso Herrera

  • Cuando el valor de TMR2 alcanza el valor cargado en CCPRxH, la patita CCPx se pone a cero. El nmero de divisiones que se puede tener en un ciclo de trabajo ser 2^r, donde r es el nmero de bits usados.

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Secuencia de configuracin del PWM Establecer el perodo de PWM

    escribiendo PR2. Establecer CT escribiendo CCPRxL y

    CCPxCON (5 y4 ) Configurar como salida CCPx Configurar el preescalador del Timer 2 y

    habilitar el Timer 2 en T2CON. Configurar el CCPx en modo PWM en

    CCPxCON (2 y 3)

    Ing. Diana Valdivieso Herrera

  • Transmisin serial El pic 16f877 posee dos perifricos para este tipo de transmisin: USART= Universal Synchronous

    Asynchronous Receiver Transmitter. MSSP= Master Synchronous Serial Port

    Ing. Diana Valdivieso Herrera

  • USART Puede ser configurada de tres modos: Modo Asncrono (Full duplex,

    bidireccional) Modo Sncrono - maestro (half duplex) Modo Sncrono - esclavo (half duplex)

    Ing. Diana Valdivieso Herrera

  • Modo Asncrono En este caso el USART utiliza el formato NRZ, el cual utiliza 1 bit de inicio, 8 o 9 bits de datos y bit de paro. Mientras no se transmiten datos se enva continuamente un bit de marca.

    Ing. Diana Valdivieso Herrera

  • Registro TXSTA Este registro sirve para configurar la transmisin, su direccin 98H

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Generador de Baud Rate (BRG), en la tabla X corresponde al valor del divisor de frecuencia de 8 bits controlado por el registro SPBRG (99H).

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • El transmisor asncrono El transmisor asncrono posee un registro de corrimiento (TSR) que se encarga de ir enviando bit por bit, la nica manera de acceder a este registro es escribiendo el dato a transmitir en el registro TXREG (19H). Cada vez que el TSR queda vaco lee el TXREG, al quedar vaco TXREG activa el flag TXIF (bit 4 del PIR1(0CH).

    Ing. Diana Valdivieso Herrera

  • El transmisor asncrono El flag TXIF, no puede ser limpiado por software, ya que cambia a cero en cuanto hay un nuevo dato en TXREG, este flag puede utilizarse para producir una interrupcin. Existe otro bit: TRMT el cual se pone en alto cuando TSR est vaco y en bajo cuando est transmitiendo un dato

    Ing. Diana Valdivieso Herrera

  • El transmisor asncrono Para habilitar el mdulo de transmisin es necesario poner en alto el TXEN. Si se est usando un noveno bit TX9, ste deber ser escrito antes de escribir los 8 bits restantes a TXREG, ya que en cuanto se escribe un dato a este registro inmediatamente es transferido a TSR (si ste est vaco).

    Ing. Diana Valdivieso Herrera

  • Inicializacin del mdulo de transmisin :

    1. Inicializar baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit BRGH . 2. Habilitar comunicacin asncrona limpiando el bit SYNC y poniendo a 1el bit SPEN (registro RCSTA) 3. Si se van a usar interrupciones, activar el bit TXIE 4. Activar TX9 si se desea transmitir datos de 9 bits 5. Habilitar transmisin mediante el bit TXEN. 6.Colocar el noveno bit del dato en TX9D si se estn usando datos de 9 bits. 7. Cargar el dato al registro TXREG. Ing. Diana Valdivieso Herrera

  • El receptor Asncrono El mdulo de recepcin es similar al de transmisin. Una vez que se ha seleccionado el modo asncrono, la recepcin se habilita poniendo en alto el bit CREN (bit 4 del RCSTA).

    Ing. Diana Valdivieso Herrera

  • El receptor Asncrono El dato es recibido mediante la lnea RC7/RX/DT). El receptor posee un registro de corrimiento RSR. Este registro no es accesible, pero cuando el dato recibido se ha completado es transferido al registro RCREG (1Ah) si ste est vaco y al mismo tiempo se activa el flag RCIF(PIR1).

    Ing. Diana Valdivieso Herrera

  • El receptor Asncrono La nica manera de limpiar la bandera RCIF es leyendo los datos del registro RCREG. El registro RCREG puede contener hasta dos datos, ya que es un buffer doble que funciona como un cola de dos posiciones.

    Ing. Diana Valdivieso Herrera

  • El receptor Asncrono Si las dos posiciones del registro RCREG estn llenas (no han sido ledas) y se detecta el bit de Stop de un tercer dato de recepcin, lo cual ocasiona un transferencia automtica del dato recibido a RCREG, esto destruir el primer dato recibido y activar el indicador de sobreescritura OERR (RCSTA). Para evitar esto, se debern leer los dos datos en RSREG haciendo dos lecturas consecutivas.

    Ing. Diana Valdivieso Herrera

  • El receptor Asncrono La nica manera de limpiar el bit OERR una vez que ha sido activado es reseteando el mdulo de recepcin (limpiando CREN y volvindolo a poner), si no se limpia OERR se bloquea la transferencia de datos de RSR a RCREG y no puede haber ms recepcin de datos.

    Ing. Diana Valdivieso Herrera

  • Si se detecta un bit nivel bajo en la posicin del bit de stop se pone el indicador de error de encuadre (frame error) FERR RCSTA. Tanto este indicador como el noveno bit RX9D de los datos estn en una cola de dos posiciones al igual que los datos recibidos, de manera que al leer RCREG se actualizan FERR y RX9D con nuevos valores, por lo cual stos bits debern ser ledos antes de leer RCREG para no perder su informacin.

    Ing. Diana Valdivieso Herrera

  • Inicializacin del mdulo de recepcin 1. Inicializar el baud rate escribiendo en el registro SPBRG el divisor adecuado y el bit BRGH . 2. Habilitar el puerto serie asncrono limpiando el bit SYNC y poniendo el bit SPEN. 3. Si se van a usar interrupciones, activar el bit RCIE (bit 5 del registro PIE).

    Ing. Diana Valdivieso Herrera

  • Inicializacin del mdulo de recepcin 4. Si se desea recepcin de datos de 9 bits se deber activar el bit RX9 del registro RCSTA. 5. Habilitar la recepcin activando el bit CREN. 6. El bit RCIF se activar cuando la recepcin de un dato se complete y se generar una interrupcin si previamente se activo RCIE.

    Ing. Diana Valdivieso Herrera

  • Inicializacin del mdulo de recepcin 7. Leer el registro RCSTA para obtener el noveno bit (si se estn recibiendo datos de 9 bits) o para determinar si ha ocurrido un error de recepcin. 8. Leer los 8 bits del dato recibido leyendo el registro RCREG. 9. Si ocurri algn error este se limpia al limpiar el bit CREN, el cual deber volver a ponerse si se desea continuar la recepcin.

    Ing. Diana Valdivieso Herrera

  • Registro RCSTA

    Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Ing. Diana Valdivieso Herrera

  • Bibliografa ANGULO, Jos, MICROCONTROLADORES

    PIC. DISEO PRCTICO DE APLICACIONES, Ed. McGraw-Hill, Madrid, 2003.

    ANGULO, Jos, MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES. SEGUNDA PARTE: PIC 16F87X, Ed. McGraw-Hill, Madrid, 2000. Ing. Diana Valdivieso Herrera

  • Bibliografa Microchip Technology, PIC16F84 DATA

    SHEET, Arizona, 2002 Microchip Technology, PIC16F877 DATA

    SHEET, Arizona, 2002

    Ing. Diana Valdivieso Herrera

    PIC 16F877PIC 16F877PIC 16F877Nmero de diapositiva 4PIC 16F877Nmero de diapositiva 6Nmero de diapositiva 7Conversor Anlogo DigitalConversor Anlogo DigitalConversor Anlogo DigitalConversor Anlogo DigitalConversor Anlogo DigitalConfiguracin del conversor A/DConfiguracin del conversor A/DConfiguracin del conversor A/DRegistro ADCON0Nmero de diapositiva 17Nmero de diapositiva 18Nmero de diapositiva 19Registro ADCON1Nmero de diapositiva 21Nmero de diapositiva 22Nmero de diapositiva 23Nmero de diapositiva 24Nmero de diapositiva 25Nmero de diapositiva 26Nmero de diapositiva 27Mdulo CCPNmero de diapositiva 29Nmero de diapositiva 30Modos de operacin:Interaccin entre los mdulosRegistro CCPxCON Registro CCPxCON Registro CCPxCON Modo CapturaNmero de diapositiva 37Nmero de diapositiva 38Modo ComparacinNmero de diapositiva 40Nmero de diapositiva 41Modo PWMModo PWMControl del perodo del PWMNmero de diapositiva 45Control del ciclo de trabajo del PWMNmero de diapositiva 47Nmero de diapositiva 48Secuencia de configuracin del PWMTransmisin serialUSARTModo AsncronoRegistro TXSTANmero de diapositiva 54Nmero de diapositiva 55Nmero de diapositiva 56El transmisor asncronoEl transmisor asncronoEl transmisor asncronoInicializacin del mdulo de transmisin :El receptor AsncronoEl receptor AsncronoEl receptor AsncronoEl receptor AsncronoEl receptor AsncronoNmero de diapositiva 66Inicializacin del mdulo de recepcinInicializacin del mdulo de recepcinInicializacin del mdulo de recepcinRegistro RCSTANmero de diapositiva 71Nmero de diapositiva 72BibliografaBibliografa