51353264 subrutinas de retardo con el pic

Upload: rocio-lorenzo-perez

Post on 17-Oct-2015

79 views

Category:

Documents


1 download

TRANSCRIPT

  • Subrutinas de retardo con Subrutinas de retardo con el PICel PIC

    M.IM.I. Israel . Israel NavaNava

    BravoBravo

  • RetardosRetardos

    En algunos proyectos En algunos proyectos es necesario controlar es necesario controlar el tiempo que tardan el tiempo que tardan en ejecutarse algunas en ejecutarse algunas acciones.acciones.

  • Ciclo de mCiclo de mquinaquina

    Unidad bUnidad bsica de tiempo que utiliza el sica de tiempo que utiliza el microcontrolador.microcontrolador. Para el PIC 1 ciclo de mPara el PIC 1 ciclo de mquina equivale a quina equivale a

    4 ciclos de reloj.4 ciclos de reloj.

  • Tiempo de ejecuciTiempo de ejecucin de n de instruccionesinstrucciones

    Las instrucciones en el PIC necesitan 1 Las instrucciones en el PIC necesitan 1 ciclo de mciclo de mquina para ejecutarse, quina para ejecutarse, excepto las de salto que requieren de 2 excepto las de salto que requieren de 2 ciclos de mciclos de mquina.quina. Verificar en las hojas de datos del PIC.Verificar en las hojas de datos del PIC.

  • Tiempo de una tareaTiempo de una tarea

    El tiempo que tarda el El tiempo que tarda el microcontrolador en microcontrolador en una tarea viene dado una tarea viene dado por la siguiente por la siguiente ffrmula:rmula: cm

    fTiempo 14=

    Donde:

    f es la frecuencia del oscilador

    Cm

    es el nmero de ciclos de mquina que tarda en ejecutar la tarea

  • Ejemplo 1Ejemplo 1

    Calcular la duraciCalcular la duracin de 1 ciclo de mn de 1 ciclo de mquina quina para un PIC16F84 que utiliza un cristal de para un PIC16F84 que utiliza un cristal de cuarzo de 4 cuarzo de 4 MHzMHz..SoluciSolucin:n:

    sMHz

    cmf

    Tiempo 114

    1414 ===

  • Ejemplo 2Ejemplo 2

    Calcular el tiempo que tarda en ejecutarse la Calcular el tiempo que tarda en ejecutarse la instrucciinstruccin n callcall si el sistema funcionase con un si el sistema funcionase con un cristal de cuarzo de 4 cristal de cuarzo de 4 MHzMHz..SoluciSolucin: Al tratarse de un salto la instruccin: Al tratarse de un salto la instruccin tarda 2 n tarda 2

    ciclos en ejecutarse.ciclos en ejecutarse.

    sMHz

    cmf

    Tiempo 224

    1414 ===

  • EjercicioEjercicio

    En un sistema En un sistema microcontrolador microcontrolador PIC16F84 y cristal de PIC16F84 y cristal de cuarzo de 4 cuarzo de 4 MHzMHz se se desea generar un desea generar un retardo de 1.5 retardo de 1.5 msms. . Calcular el nCalcular el nmero mero de ciclos de mde ciclos de mquina quina necesarios.necesarios.

  • SoluciSolucinn

    De la ecuaciDe la ecuacin principal se deduce:n principal se deduce:

    15004

    415004

    === MHzsfTiempocm

  • InstrucciInstruccin NOPn NOP

    La instrucciLa instruccin NOP (no operacin NOP (no operacin) no realiza n) no realiza operacioperacin alguna.n alguna. Solo consume un ciclo de mSolo consume un ciclo de mquina sin hacer quina sin hacer

    nada.nada.

  • Retardos mediante lazo simpleRetardos mediante lazo simple

    Se trata de un conjunto de instrucciones Se trata de un conjunto de instrucciones que se repiten tantas veces como sea que se repiten tantas veces como sea necesario, hasta conseguir el retardo necesario, hasta conseguir el retardo pretendido.pretendido. Puede implementarse como subrutina.Puede implementarse como subrutina.

  • Estructura de un retardo simpleEstructura de un retardo simpleCALL RETARDO

    CARGA CONTADOR CONT1 CON ELVALOR INICIAL "K"

    PEQUEO TIEMPO DE ESPERA

    DECREMENTA CONT1

    CONT1 =0

    RETURN

    NO

    SI

  • Programa en ensambladorPrograma en ensamblador

    Retardo1msRetardo1ms MOVLW MOVLW dd249249MOVWF MOVWF CONT1CONT1

    LOOPLOOP

    NOPNOPDECFSZDECFSZ

    CONT1,FCONT1,F

    GOTOGOTO LOOPLOOP

    RETURNRETURN

  • Tiempo de la subrutinaTiempo de la subrutinaRetardo1msRetardo1ms

    ;LA LLAMADA CALL APORTA 2 CICLOS;LA LLAMADA CALL APORTA 2 CICLOSMOVLW dMOVLW d249249

    ;APORTA 1 CICLO DE MAQUINA, ;APORTA 1 CICLO DE MAQUINA, KKMOVWF CONT1MOVWF CONT1

    ;APORTA 1 CICLO DE M;APORTA 1 CICLO DE MQUINAQUINALOOPLOOP

    NOPNOP

    ;APORTA Kx1 CICLO DE M;APORTA Kx1 CICLO DE MQUINAQUINADECFSZ CONT1,F ;(KDECFSZ CONT1,F ;(K--1)x1 CM (CUANDO NO SALTA), 2 AL SALTAR1)x1 CM (CUANDO NO SALTA), 2 AL SALTAR

    GOTOGOTO

    LOOPLOOP

    ;APORTA (K;APORTA (K--1)x2 CICLOS DE M1)x2 CICLOS DE MQUINAQUINARETURNRETURN

    ;EL RETORNO APORTA 2 CICLOS DE M;EL RETORNO APORTA 2 CICLOS DE MQUIINAQUIINA

    En total esta subrutina tarda:En total esta subrutina tarda:2 + 1 + 1 + (Kx1) + (K2 + 1 + 1 + (Kx1) + (K--1)x1 + 2 + (K1)x1 + 2 + (K--1)x2 +2 = 5 + 4K = 1001 ciclos de m1)x2 +2 = 5 + 4K = 1001 ciclos de mquinaquina

    1001 ciclos suponen 1 milisegundo (1001 1001 ciclos suponen 1 milisegundo (1001 s) para un cristal de 4 s) para un cristal de 4 MHzMHz

  • EcuaciEcuacin para el tiempo en n para el tiempo en microsegundosmicrosegundos

    4545 =+= TiempoKKTiempo

  • Ejemplo 3Ejemplo 3

    Calcular el valor de la constante K, para obtener Calcular el valor de la constante K, para obtener una subrutina de retardo de 500 una subrutina de retardo de 500 s con la s con la estructura vista.estructura vista. SoluciSolucin:n:

    7.1234

    55004

    5 === TiempoK

  • QuQu

    valor se debe elegir para K?valor se debe elegir para K?

    Si se elige 123, se obtiene un tiempo de Si se elige 123, se obtiene un tiempo de retardo real de:retardo real de:

    Si se elige 124, se obtiene un tiempo de Si se elige 124, se obtiene un tiempo de retardo real de:retardo real de:

    sxKTiempo 497)1234(545 =+=+=

    sxKTiempo 501)1244(545 =+=+=

  • Puede obtenerse el tiempo exacto Puede obtenerse el tiempo exacto de 500 de 500 s?s?

    QuQu opciones propones?opciones propones?

  • Programe el retardo en MPLABPrograme el retardo en MPLAB

  • TareaTarea

    CCmo puede crearse un retardo mo puede crearse un retardo anidado?anidado? Diagrama de flujoDiagrama de flujo CodificaciCodificacin en ensambladorn en ensamblador

    Subrutinas de retardo con el PICRetardosCiclo de mquinaTiempo de ejecucin de instruccionesTiempo de una tareaEjemplo 1Ejemplo 2EjercicioSolucinInstruccin NOPRetardos mediante lazo simpleEstructura de un retardo simplePrograma en ensambladorTiempo de la subrutinaEcuacin para el tiempo en microsegundosEjemplo 3Qu valor se debe elegir para K?Puede obtenerse el tiempo exacto de 500 s?Programe el retardo en MPLABTarea