Programa De Retardo - Motorola HC05 Manual Del Usuario

Iniciación a los microcontroladores de las familias de 8 bits
Tabla de contenido

Programa de Retardo

La
Figura 32
muestra un organigrama extendido de la subrutina de retardo de 50 ms. Una subrutina es
un programa relativamente corto que normalmente realiza algunas funciones requeridas. Cuando la función
necesita ser realizada muchas veces en el curso de un programa, con la subrutina sólo se tiene que escribir una
sola vez. Cada vez que se necesita esta función, el programador llama a la subrutina con una instrucción de
'bifurcación a subrutina' (BSR) o de 'salto a subrutina' (JSR).
Figura 32. Organigrama de la Rutina de Retardo y mnemónicos
Antes de empezar a ejecutar las instrucciones en la subrutina, la dirección de la instrucción que sigue a
JSR (o BSR) se guarda automáticamente en la pila, en las posiciones de memoria RAM temporales. Cuando la
CPU acaba la ejecución de las instrucciones dentro de la subrutina, se realiza una instrucción de 'retorno de
subrutina' (RTS), como última instrucción de la subrutina. La instrucción RTS causa que la CPU recupere la
dirección de retorno previamente guardada; así, la CPU continúa el programa con la instrucción que sigue JSR (o
BSR) que originalmente llamó a la subrutina.
La rutina de retardo de la
El lazo interno consiste en dos instrucciones ejecutadas 256 veces antes de que X alcance $00 y acabe la
condición de bifurcación BNE. Esto suma seis ciclos, a 500 ns por 256 ciclos, es igual a 0.768 ms para el lazo
interno. El lazo externo se ejecuta 65 veces. El tiempo total de la ejecución para el lazo externo es 65 (1536+9) o
65 (1545) = 100,425 ciclos o 50.212 ms. Las diversas instrucciones de esta rutina son un total de 21 ciclos del
lazo externo; así que, el tiempo total exigido para ejecutar la rutina DLY50 es 50.223 ms, incluyendo el tiempo
requerido para la instrucción JSR que llama a la subrutina DLY50.
El sistema temporizador interno del MC68HC705J1A también se puede usar como una medida de
tiempo. Es preferible este método basado en el temporizador, para que la CPU pueda realizar otras tareas durante
el retardo y el tiempo de retardo no depende del número exacto de instrucciones ejecutadas, todo el contrario que
en la subrutina DLY50.
Figura 32
involucra un lazo interno (INNRLP) dentro de otro lazo (OUTLP).
70
Tabla de contenido
loading

Este manual también es adecuado para:

Hc08

Tabla de contenido