La temporisation est une fonction de perte de temps avec passage de paramètre.
;*********************************************************************
; SOUS-ROUTINE DE TEMPORISATION *
;*********************************************************************
;---------------------------------------------------------------------
; Cette sous-routine introduit un retard.
; Elle ne reçoit un paramètre, le nombre de boucle par la variable
; nb_tempo et n'en retourne aucun.
;---------------------------------------------------------------------
tempo
;Avant la tempo donner la durée avec
; movlw 1 ; pour 2 boucles
; movwf nb_tempo ; Affectation à nombre de tempo
movf nb_tempo,w ; Récupération du nombre de tempo
movwf cmpt3 ; Affectation à cmpt3
boucle3
movlw B'00001111' ; Valeur de la tempo 0xFF=MAX 0x0=MIN
movwf cmpt2 ; Affectation à cmpt2
boucle2
clrf cmpt1 ; effacer compteur1
boucle1
decfsz cmpt1,f ; décrémenter compteur1
goto boucle1 ; si pas 0, boucler
decfsz cmpt2,f ; si 0, décrémenter compteur 2
goto boucle2 ; si cmpt2 pas 0, recommencer boucle1
decfsz cmpt3,f ; si 0, décrémenter compteur 3
goto boucle3 ; si cmpt3 pas 0, recommencer boucle2
return ; retour de la sous-routine