Initialisation, test et démarrage

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.

Logigramme

Organigramme

Code source

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