9
SUBRUTINAS

Subrutinas de retardo

Embed Size (px)

Citation preview

Page 1: Subrutinas de retardo

SUBRUTINAS

Page 2: Subrutinas de retardo

CICLO MÁQUINAEl tiempo que tarda en ejecutarse un programa depende de la frecuencia del oscilador conectado al microcontrolador y del número de ciclos máquinaejecutados.Un ciclo de Máquina es la unidad básica de tiempo que utiliza el microcontrolador para el PIC 16F84, el ciclo máquina equivale a 4 ciclos de reloj, por lo tanto el tiempo que tarda en producirse un ciclo de máquina es igual a cuatro veces el período del oscilador.

Page 3: Subrutinas de retardo

CICLO MÁQUINALas instrucciones en elmicrocontrolador PIC 16F84 necesitan 1 ciclo de máquina para ejeciutarse, excepto las de salto (goto, calla, btfss, btfsc, return, etc.) que necesitan de dos ciclos máquina.El tiempo que tarda el microcontrolador en ejecutar una tarea se determina por:Tiempo = 4 1/f cmF= frecuencia del osciladorCm= número de ciclos de máquina que tarda en ejecutar la tarea.

Page 4: Subrutinas de retardo

CICLO MÁQUINAEjemplo: Calcular la duración de 1 ciclo máquina para un PIC 16F84 que utiliza un cristal de cuarzo de 4 Mhz. cm = 1 = 1 µs

Calcular el tiempo que tarda en ejecutarse la instrucción call si el sistema funciona con un cristal de cuarzo de 4MHz.La instrucción call dura 2 ciclos máquina. (2)cm = (2) = 2 µs

Page 5: Subrutinas de retardo

CICLO MÁQUINAEjemplo: En un sistema con microcontrolador PIC 16F84 y cristal de cuarzo de 4 Mhz. Se desea generar un retardo de 1,5 ms. Calcular el número de ciclos máquina necesarios. cm → cm= tiempo = 1500µs = 1500 cm

Con el cristal de 4 Mhz. El período del oscilador será de 0,25 µsY el ciclo máquina tendrá una duración cuatro veces mayor, 1 µsParac conseguir 1,5 ms serán necesarios 1500 ciclos máquina.

Page 6: Subrutinas de retardo

Medir tiempos con el MPLABEl MPLAB dispone de una opción de cronómetro denominada Stopwach que permite medir el tiempo de ejecución de las instrucciones de los programas.El cronómetro Stopwacht calcula el tiempo basándose en la ferecuencia de reloj del microcontrolador PIC que se está simulando.. Es necesario fijar previamente la frecuencia del oscilador empleado, para eso, se activa desde el menú Debugger > Settings > Stopwach, con esto se abre la ventana que muestra el tiempo transcurrido y los ciclos máquina empleados en la ejecución de cada instrucción.

Page 7: Subrutinas de retardo

INSTRUCCIÓN “NOP”La instrucción nop (No Operation) no realiza operación alguna. En realidad consume un ciclo máquina sin hacer nada. Se utiliza para hacer gastar tiempo al microcontrolador sin alterar el estado de los registros ni de los flags. Esta instrucción tarda 1 ciclo máquina en ejecutarse.

Page 8: Subrutinas de retardo

RETARDOS MEDIANTE LAZO SIMPLE

En muchas aplicaciones resulta necesario generar tiempos de espera, denominados tiempo de retardo. Estos intervalos pueden conseguirse mediante una subrutina de retardo, basada en un lazo simple de algunas instrucciones que se repiten tantas veces como sea necesario, hasta conseguir el retardo pretendido.Como el tiempo de ejecución de cada instrucción es conocido, lo único que hay que hacer es calcular el valor inicial que debe tener el registro R_ContA, que actúa como contador del número de iteracciones en el lazo para obtener el tiempo de retardo deseado.

Page 9: Subrutinas de retardo

RETARDOS MEDIANTE LAZO SIMPLE

E muchas aplicaciones resulta necesario generar tiempos de espera, denominados tiempo de retardo. Estos intervalos pueden conseguirse mediante una subrutina de retardo, basada en un lazo simple de algunas instrucciones que se repiten tantas veces como sea necesario, hasta conseguir el retardo pretendido.Como el tiempo de ejecución de cada instrucción es conocido, lo único que hay que hacer es calcular el valor inicial que debe tener el registro R_ContA, que actúa como contador del número de iteracciones en el lazo para obtener el tiempo de retardo deseado.