Duda rutina temporizacion pic16f84

Hola! Miren que tengo una duda de una temporizacion de 10ms que encontre en un libro. Hace asi:

RETRASO10 bcf INTCON,2 ; borra flag del TMR0
movlw 08
movwf TMR0 ;carga el TMR0 con el valor 39

RETRASO10_1 btfss INTCON,2 ;espera rebosamiento del TMR0
goto RETRASO10_1
decfsz TEMPORAL_1,F
goto RETRASO10
return

Mas o menos entiendo todo, pero no tengo ni idea de lo que es D8 y porque dice que con eso le ha cargado el valor 39.

Luego hace otro retraso pero de 1 segundo, basandose en esta rutina de 10ms, repitiendola 100 veces:

RETRASO1S movlw 0x64
movwf TEMPORAL_1
call RETRASO10
return

Aqui tampoco entiendo lo del 0x64, es que estoy empezando un poquillo...muchas gracias de antemano!
 
Maria dijo:
RETRASO10 bcf INTCON,2 ; borra flag del TMR0
movlw 08 ; = 216
movwf TMR0 ; carga el TMR0 con el valor 39

Lo que carga es el complemento de 39 con respecto a 256: 255 - 39 = 216 = 08.
Al cargar el valor 216 en TIMER0, luego de 39 pasos desbordará al pasar 255.
En el otro carga una variable que usa dentro de RETRASO10. 0x64 es 100 en decimal.
Adentro de RETRASO10 seguramente va restando de a uno hasta que TEMPORAL_1
sea cero y en ese momento termina y sale.

Maria dijo:
RETRASO1S movlw 0x64
movwf TEMPORAL_1
call RETRASO10
return
 
Atrás
Arriba