lazos de tiempo hc08
DESCRIPTION
Lazos de Tiempo HC08TRANSCRIPT
Diseño de Lazos de Retardo de Tiempo
� Un Lazo de Retardo de Tiempo es un programa que efectúa como objetivo, la generación de un intervalo o retardo de tiempo, y son ampliamente utilizados como parte fundamental de los programas de entrada/salida.
Lazos Pasivos Inicio
Programa
Retardo
Continua Programa
Este tipo de lazos se utilizan en aplicaciones donde no es necesario que el microcontrolador atienda algún otro evento durante el retardo de tiempo.
Lazos Activos Inicio
Programa
Continua Programa
Cont -1 Cont
Programa
= 0 Lazo de Retardo
de Tiempo
Evento que requiere
atención en intervalos
de tiempo menor
al retardo tiempo
Diseño de Lazos de Retardo de Tiempo
� El retardo de tiempo o intervalo se logra aprovechando el tiempo que transcurre durante la ejecución de una instrucción, ejecutándola en forma repetitiva, tantas veces como sea necesario hasta obtener el retardo deseado.
Diseño de Lazos de Retardo de Tiempo
� El tiempo de ejecución de una instrucción, se obtiene, multiplicando el número de ciclos de máquina empleados para su ejecución por la duración del ciclo máquina.
Diseño de Lazos de Retardo de Tiempo
Diseño de Lazos de Retardo de Tiempo
Diseño de Lazos de Retardo de Tiempo
ȝ P U
Lazo dex bne lazo
09 26 fd
MEMORIA
0800 0801
CRISTAL 16 Mhz
Oscilador Divisor / 2
Frec. de Trabajo 8Mhz
1 ciclo maq. 0.125 µseg
Diseño de Lazos Retardo de Tiempo
Instrucción Ciclos Maquina Tiempo de Ejecución
DEX 1 0.125 µseg
BNE 3 0.375 µseg
Tiempo de Ejecución de la Instrucción DEX
Tiempo de Ejecución de la Instrucción BNEX
Ejemplo:
Delay
Ix #$N
Ix – 1 Ix
BNE
RTS V F
Retardo de Tiempo basado en el Registro Índice
Instrucción Ciclos Maq.
A (LDX) 2
B (DEX) 1
C (BNE) 3
D (RTS) 5
Formula para cálculo de Tiempo:
T= (A + D + (B + C) X N) C.M. (0.125 µseg/ 1 C.M.)
Cálculo de la duración del Retardo de Tiempo para un valor del Registro Índice X
de $ffff= 65535
T= (A + D + (B + C) X N) C.M. (0.125 µseg/ 1 C.M.)
T= (2 + 5 + (1 + 3) X 65535) C.M.(0.125 µseg/1 C.M.)
T= (262147)(0.125 µseg)
T= 32768.375 µseg
T= 33 mseg aprox.
Cálculo del valor del Registro Índice X “N” para un retardo de 1 mseg.
Formula:
T= (A + D + (B + C) X N) C.M. (0.125 µseg/ 1 C.M.) Despejando:
N= ((T/0.125 µseg) - A - D)/(B+ C)
N= (1 mseg/0.125 µseg -7) / 4
N= 1998 En Hexadecimal:
N= $7CE
Ejemplo: Retardo de Tiempo de 1 segundo aprox.
Retardo1
Iy #1000
Iy – 1 Iy
BNE
RTS V F
delay La Rutina Delay dura 1 msegundo
Ejemplo: Programa que activa un contador binario en el
Puerto A, con retardo de un 1seg. Aprox. Inicio
Programa PA como Salida
Inicializa Puerto A (Contador)
Retardo
Incrementa Puerto A
Org $0800
$ff (0002)
$00 (0000)
Ejemplo:
Inicio
(0000) + 1 (0000)
Retardo1
Programa que activa un contador binario en el Puerto A, con retardo de un 1seg. Aprox.
Lazo Jsr Retardo1
Mov $ff,$0002 Clr $0000
Inc $0000 Bra lazo