Lors du démarrage, afin de vérifier que tous les éléments permettant
l'interaction avec l'utilisateur sont en état de marche, on procède
à une activation de ces derniers. Ainsi, l'utilisateur peut détecter une
défaillance sur l'une des DELs ou sur le buzzer.
De plus le robot se positionne en attente d'une pression du bouton poussoir
par l'utilisateur, afin de ne démarrer que quand ce dernier le désirera.
start
;Les DELS sont en PULL-UP, il faut les éteindre en les passant à 1
bsf DEL_1 ;Éteindre la DEL_1
bsf DEL_2 ;Éteindre la DEL_2
bsf DEL_3 ;Éteindre la DEL_3
bsf FEUX_ST ;Éteindre les feux stop
;Le buzzer aussi
bsf BUZZ ;Éteindre le buzzer
;effet robotcop sur les DEL (serpentin)
;Définition de la durée de la tempo
movlw 6 ; pour 2 boucles
movwf nb_tempo ; Affectation à nombre de tempo
movlw B'01101101' ; Valeur de l'empreinte de rotation
movwf rotled ; Affectation
bsf STATUS,C ; Le Bit de Carry
rot_aff
rlf rotled ; décalage à gauche
movf rotled,w ; Affectation à W
andlw B'01110' ; Masquer sur les !(trois LED)
movwf PORTA ; Affichage
call tempo ; appeler la tempo
btfss BP_STAR ; Si bouton non pressé
goto rot_aff ; si pas 0, boucler
;fin du robocop
;test buzz
bcf BUZZ ;Allumer le buzzer
movlw 20 ; pour 20 boucles
movwf nb_tempo ; Affectation à nombre de tempo
call tempo ; appeler la tempo
bsf BUZZ ;Etteindre le buzzer
;Fin de la séquence d'initialisation.
bsf DEL_1 ;Éteindre la DEL_1
bsf DEL_2 ;Éteindre la DEL_2
bsf DEL_3 ;Éteindre la DEL_3
bsf FEUX_ST ;Éteindre les feux stop