LEZIONE 28

DO WHILE


In questo caso il ciclo DO WHILE è stato utilizzato come un ciclo FOR ovvero, sapevamo quante volte doveva ripetere il ciclo (100), ma di solito il ciclo DO WHILE viene utilizzato per controllare se un interruttore è stato premuto o se una variabile è stata settata. L'esempio successivo controlla lo stato del primo interruttore del Microchip Trainer, se è attivo esegue il ciclo altrimenti non lo esegue.


#CHIP 16f84, 4				'Tipo di PIC e frequenza
                                               
Dir PortA IN				'Istruzioni viste più avanti
Dir PortB OUT 				'Istruzioni viste più avanti
                                               
DIM Contatore as BYTE			'Variabile contatore
                                               
Contatore = 0 				'Inizializzazione della variabile
                                               
DO WHILE PortA.0 = 1 			'Ciclo con la condizione
        PORTB = Contatore 		'Visualizza la variabile sulla porta B
        Contatore = Contatore +1 	'Incrementa il contatore              
        wait 2 sec 			'Attende un ritardo di 2 secondi circa                            
LOOP 					'Fine ciclo
                                               
END					'Fine del programma

Spostate il primo interruttore sullo stato logico 1 ed alimentate il PIC, il programma inizia a funzionare, spostando l'interruttore su 0 la condizione del ciclo non è più vera e quindi si ferma. Attenzione se spostate di nuovo l'interruttore su 1 il ciclo NON rinizia perchè ormai il programma è arrivato all'istruzione END e quindi è terminato. LA condizione può essere formata da numero, variabili o porte come abbiamo visto per il costrutto IF, per chiarezza vi riporto qualche esempio


DO WHILE Valore = 0          'Valore uguale a zero

DO WHILE Valore = Numero          'Valore uguale a Numero

DO WHILE Valore > 0          'Valore maggiore di 0

DO WHILE Valore > Numero          'Valore maggiore di numero

DO WHILEValore < 10          'Valore minore di 10

DO WHILE Valore <> 0          'Valore differente da zero

DO WHILE Valore <= Numero          'Valore maggiore o uguale a Numero

DO WHILE Valore >=Numero          'Valore minore o uguale a Numero


L'istruzione PortA.0 serve a controllare lo stato del pulsante e verrà approfondita più avanti.

LEZIONE 29
LEZIONE 27