2. CICLO MÁQUINA
El 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.
3. CICLO MÁQUINA
Las 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 cm
F= frecuencia del oscilador
Cm= número de ciclos de máquina que tarda en ejecutar la tarea.
4. CICLO MÁQUINA
Ejemplo: Calcular la duración de 1 ciclo máquina para un PIC
16F84 que utiliza un cristal de cuarzo de 4 Mhz.
𝑇𝑖𝑒𝑚𝑝𝑜 = 4
1
𝑓
cm = 4
1
4𝑀ℎ𝑧
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.
𝑇𝑖𝑒𝑚𝑝𝑜 = 4
1
𝑓
(2)cm = 4
1
4𝑀ℎ𝑧
(2) = 2 µs
5. CICLO MÁQUINA
Ejemplo: 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.
𝑇𝑖𝑒𝑚𝑝𝑜 = 4
1
𝑓
cm → cm= tiempo
𝑓
4
= 1500µs
4𝑀ℎ𝑧
4
= 1500 cm
Con el cristal de 4 Mhz. El período del oscilador será de 0,25 µs
Y el ciclo máquina tendrá una duración cuatro veces mayor, 1 µs
Parac conseguir 1,5 ms serán necesarios 1500 ciclos máquina.
6. Medir tiempos con el MPLAB
El 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.
7. 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.
8. 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.
9. 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.