Anda di halaman 1dari 6

UNIVERSIDAD PRIVADA ANTENOR ORREGO

GENERACIN DE RETARDOS
EN ASSEMBLER
Ing. Lenin Llanos Len

Generacin de Retardos

Para la generacin de retardos en assembler


hay que tener en cuenta el ciclo de mquina.

El ciclo de mquina es el tiempo que utiliza el


microcontrolador en ejecutar una instruccin
simple y equivale a 4 ciclos de reloj.

Si utilizamos un cristal de 4MHz, el ciclo de


reloj es de 250 ns y el ciclo de mquina es de
1 us.

Generacin de Retardos

Objetivo crear una subrutina, parecida a los


comandos existentes en alto nivel (BASIC:
delayms 100).

Para ello crearemos una Subrutina llamada


Delay_Xus
Instruccin
Call

Delay_Xus
Instruccin

Generacin de Retardos
Delay_Xus

Delay_Xus
movlw 0xXX
movwf Cuenta
Repeticion
Decfsz Cuenta
goto Repeticion
return

Cuenta 0xXX

Cuenta Cuenta 1

Cuenta=0
SI

RETURN

NO

Generacin de Retardos

Cunto demora mi subrutina Delay_Xus?

Delay=[2 + 1 +1 + 3(XX 1) + 2 + 2]Tci = [3XX+5]Tci


call (2)

movlw (1)
movwf (1)

decfsz (2)
Es cero
decfsz (1)
goto (2)

return (2)

Si Osc=4MHz, Tci=1useg, entonces el retardo


mximo se da cuando XX=FF, es decir 770 useg.

Generacin de Retardos

Cmo hacer retardos mayores a (3XX+5)Tci?


Delay_Xus
C1 0xXX
C2 0xYY

C1 C1 1

C2 C2 1
C1=0
NO

C2=0

SI

SI

RETURN

NO