PORTE
Per prelevare i valori dalle porte in ingresso è sufficiente utilizzare un istruzione di assegnazione lo
stesso vale per inviare un valore alla porta di uscita, vediamo l’esempio successivo per capire meglio.
Supponiamo di aver bisogno di un programma che legga lo stato delle 5 porte A e le invii ai led e
quindi alla porta B, il programma è il seguente:
#CHIP 16F84, 4 'Tipo di PIC e frequenza
Dir PORTA IN 'Istruzioni viste più avanti
Dir PORTB OUT 'Istruzioni viste più avanti
DIM Valore as BYTE 'Variabile di tipo generico
Label: 'Etichetta
Valore = PortA 'Prendo lo stato dei pulsanti
PortB = Valore 'Visualizza lo stato sui led
GOTO Label 'Salta all'etichetta
END 'Fine del programma
Analizziamo il programma:
Le istruzioni Dir PORTA IN e Dir PORTB OUT settano rispettivamente tutte le porte A come
ingressi e tutte le porte B come uscite.
Successivamente è stata dichiara una variabile, in questa variabile andremo a memorizzare i valori
dei pulsanti, usando l’istruzione Valore = PortA.
Il contenuto di questa variabile a sua volta è spostato nella porta B per visualizzare i valori con i
diodi led, l’istruzione usata è Portb = Valore.
Tutto è racchiuso in un ciclo perchè il controllo dei pulsanti deve essere ripetuto all’infinito e non
solo all’inizio del programma.
Il programma precedente poteva essere scritto anche in questo modo:
#CHIP 16F84, 4 'Tipo di PIC e frequenza
Dir PORTA IN 'Istruzioni viste più avanti
Dir PORTB OUT 'Istruzioni viste più avanti
Label: 'Etichetta
PortB = PortA 'Prendo lo stato dei pulsanti e lo visualizzo
GOTO Label 'Salta all'etichetta
END 'Fine del programma
Come vedete non è più presente la variabile VALORE e la porta A è associata direttamente alla
porta B.
Nel primo esercizio ho usato la variabile solo per capire meglio come spostare i valori in ingresso
od in entrata.
Nel secondo caso si risparmia spazio di memoria e si accorcia il codice sorgente.
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.