lazos de tiempo hc08

15
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.

Upload: rogelio-perales

Post on 15-Jan-2016

7 views

Category:

Documents


0 download

DESCRIPTION

Lazos de Tiempo HC08

TRANSCRIPT

Page 1: Lazos de Tiempo HC08

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.

Page 2: Lazos de Tiempo HC08

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.

Page 3: Lazos de Tiempo HC08

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

Page 4: Lazos de Tiempo HC08

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.

Page 5: Lazos de Tiempo HC08

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.

Page 6: Lazos de Tiempo HC08

Diseño de Lazos de Retardo de Tiempo

Page 7: Lazos de Tiempo HC08

Diseño de Lazos de Retardo de Tiempo

Page 8: Lazos de Tiempo HC08

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

Page 9: Lazos de Tiempo HC08

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

Page 10: Lazos de Tiempo HC08

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.)

Page 11: Lazos de Tiempo HC08

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.

Page 12: Lazos de Tiempo HC08

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

Page 13: Lazos de Tiempo HC08

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

Page 14: Lazos de Tiempo HC08

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

Page 15: Lazos de Tiempo HC08

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