Sunteți pe pagina 1din 3

;=============================================================================

====================================
;----------------------------------------------RETARDOS.INC-------------------
-----------------------------------
; LIBRERIA PARA EL MANEJO DE RETARDOS DE (20MS, 5MS,
150MICROS, 50MICROS, 2MS)PARA EL LCD Y
; OTROS DE DIFERENTES VALORES PARA PROPOSITO GENERAL YA QUE
PODRIA USARLOS EN OTROS DISPOSITIVOS
;=============================================================================
====================================

;ESTOS RETARDOS ESTAN CALCULADOS PARA UN RELOJ DE 4MHZ ATENCION SI MODIFICO


ESTE PARAMETRO EL RETARDO SE MODIFICA TAMBIEN

CBLOCK 0X20
CUENTA1
CUENTA2
ENDC

;/////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////
;-----RETARDOS DE 4 MICROS HASTA 10 MICROS-----
RETARDO_10MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS MAQUINA
(2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
NOP ;APORTA 1 CICLO
MAQUINA
NOP ;APORTA 1 CICLO
MAQUINA
NOP ;APORTA 1 CICLO
MAQUINA
NOP ;APORTA 1 CICLO
MAQUINA
RETARDO_5MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
RETARDO_4MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETURN ;EL SALTO DEL RETORNO
APORTA OTROS 2 CICLOS MAQUINA (2MICROS)

;/////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////
;-----RETARDOS DE 20 MICROS HASTA 500 MICROS-----
RETARDO_500MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
MOVLW D'164' ;APORTA 1 CICLO MAQUINA
GOTO TIME_FIN ;EL DIRECCIONAMIENTO "GOTO" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETARDO_200MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
MOVLW D'64' ;APORTA 1 CICLO MAQUINA
GOTO TIME_FIN ;EL DIRECCIONAMIENTO "GOTO" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETARDO_150MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
NOP ;APORTA 1 CICLO
MAQUINA
MOVLW D'47' ;APORTA 1 CICLO MAQUINA
GOTO TIME_FIN ;EL DIRECCIONAMIENTO "GOTO" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETARDO_100MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS
MAQUINA (2MICROS)
MOVLW D'31' ;APORTA 1 CICLO MAQUINA
GOTO TIME_FIN ;EL DIRECCIONAMIENTO "GOTO" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETARDO_50MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS MAQUINA
(2MICROS)
NOP ;APORTA 1 CICLO
MAQUINA
MOVLW D'14' ;APORTA 1 CICLO MAQUINA
GOTO TIME_FIN ;EL DIRECCIONAMIENTO "GOTO" APORTA 2 CICLOS
MAQUINA (2MICROS)
RETARDO_20MICROS ;LA LLAMADA "CALL" APORTA 2 CICLOS MAQUINA
(2MICROS)
MOVLW D'5' ;APORTA 1 CICLO MAQUINA

; EL PRÓXIMO BLOQUE "RETARDOMICROS" TARDA:


; 1 + (K-1) + 2 + (K-1)X2 + 2 = (2 + 3K) CICLOS MÁQUINA.

TIME_FIN ;EL SIGUIENTE BLOCKE APORTA


(2+3K)CICLOS MAKINA
MOVWF CUENTA1 ;APORTA 1 CICLO MAQUINA
BUBLE
DECFSZ CUENTA1,F ;APORTA (K-1)X1 CICLOS MAKINA CUANDO
NO SALTA + 2 CICLOS MAKINA AL SALTAR
GOTO BUBLE ;APORTA (K-1)X2 CICLOS MAKINA
RETURN ;EL SALTO DEL RETORNO
APORTA OTROS 2 CICLOS MAQUINA (2MICROS)

;/////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////
;-----RETARDOS DE 1MS HASTA 200MS-----
RETARDO_200MS ; LA LLAMADA "CALL" APORTA 2 CICLOS
MÁQUINA.
MOVLW D'200' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_100MS ; LA LLAMADA "CALL" APORTA 2 CICLOS
MÁQUINA.
MOVLW D'100' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_50MS ; LA LLAMADA "CALL" APORTA 2 CICLOS
MÁQUINA.
MOVLW D'50' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_20MS ; LA LLAMADA "CALL" APORTA 2 CICLOS
MÁQUINA.
MOVLW D'20' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_10MS ; LA LLAMADA "CALL" APORTA 2 CICLOS
MÁQUINA.
MOVLW D'10' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_5MS ; LA LLAMADA "CALL" APORTA
2 CICLOS MÁQUINA.
MOVLW D'5' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_2MS ; LA LLAMADA "CALL" APORTA
2 CICLOS MÁQUINA.
MOVLW D'2' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".
GOTO TIMES_FIN ; APORTA 2 CICLOS MÁQUINA.
RETARDO_1MS ; LA LLAMADA "CALL" APORTA
2 CICLOS MÁQUINA.
MOVLW D'1' ; APORTA 1 CICLO MÁQUINA. ESTE ES EL
VALOR DE "M".

; EL PRÓXIMO BLOQUE "RETARDOS_MS" TARDA:


; 1 + M + M + KXM + (K-1)XM + MX2 + (K-1)MX2 + (M-1) + 2 + (M-1)X2 + 2 =
; = (2 + 4M + 4KM) CICLOS MÁQUINA. PARA K=249 Y M=1 SUPONE 1002 CICLOS MÁQUINA
; QUE A 4 MHZ SON 1002 µS = 1 MS.

TIMES_FIN
MOVWF CUENTA2 ; APORTA 1 CICLO MÁQUINA.
BUBBLE
MOVLW D'249' ; APORTA MX1 CICLOS MÁQUINA. ESTE ES
EL VALOR DE "K".
MOVWF CUENTA1 ; APORTA MX1 CICLOS MÁQUINA.
CICLOS
NOP ; APORTA KXMX1
CICLOS MÁQUINA.
DECFSZ CUENTA1,F ; (K-1)XMX1 CM (CUANDO NO SALTA) +
MX2 CM (AL SALTAR).
GOTO CICLOS ; APORTA (K-1)XMX2 CICLOS MÁQUINA.
DECFSZ CUENTA2,F ; (M-1)X1 CM (CUANDO NO SALTA) + 2
CM (AL SALTAR).
GOTO BUBBLE ; APORTA (M-1)X2 CICLOS MÁQUINA.
RETURN ; EL SALTO DEL RETORNO
APORTA 2 CICLOS MÁQUINA.

;////////////////////////////////////////////FIN DE LA
LIBRERIA////////////////////////////////////////////////////////////////

S-ar putea să vă placă și