Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori PIC. Nona puntata - 3

Corso di programmazione per microcontrollori PIC

Essendo, nel nostro caso, il file la porta di uscita, il risultato è quello di imporre sulle quattro linee un livello logico alto. Dall’etichetta MAIN comincia il programma di lettura vero e proprio.

Viene dapprima posta a zero la prima colonna, con l’istruzione BCF PORT_B,0, che abbassa a livello 0 la linea RB0; non resta a questo punto che andare a testare lo stato delle quattro righe. Per fare questa operazione viene utilizzata l’istruzione BTFSS che va appunto a testare un bit della porta b (bit che corrisponderà di volta in volta ad una riga diversa) ed esegue la seguente operazione: se lo trova alto, salta l’istruzione seguente, mentre se lo trova basso esegue anche l’istruzione successiva.

Se il tasto che stiamo verificando è stato premuto, la corrispondente riga si troverà a livello basso e quindi verrà eseguita l'istruzione seguente alla BTFSS che provvede a caricare nel registro W il valore corrispondente al tasto premuto; se invece il tasto non è stato premuto, semplicemente il programma pro-segue andando a verifica lo stato degli altri tasti.

In pratica, il nostro software è costituito da 16 blocchi simili, raggruppati in 4 sottoprogrammi. Viene selezionata una colonna e vengono testate le quattro righe: se la riga è trovata bassa, viene caricato W con il valore corrispondente al tasto premuto. Alla fine delle 16 operazioni di lettura, nel registro W si troverà o il valore precedente, se nessun tasto è stato premuto, oppure se un tasto è stato premuto, il valore corrispondente a detto tasto.

A questo punto, con l’istruzione MOVWF PORT_A si provvede a trasferire sulla porta A, a cui è collegato il display, il valore di W, ottenendo una immediata visualizzazione di detto valore. E’ da notare che, anche se la routine prevede la lettura dei tasti A, B, C, D, # e * , questi non possono essere visualizzati in quanto la decodifica utilizzata (l’integrato 4511) accetta in ingresso numeri BCD da 0 a 9; gli altri caratteri non visualizzabili danno come risultato lo spegnimento del display.

Il programma appena esposto è molto utile per leggere e visualizzare immediatamente il tasto premuto; vogliamo ora proporvi un software più “impegnativo” che ci consentirà di imparare alcune funzioni importanti nella programmazione dei PIC. Questo nuovo listato (DEMO7) deve leggere la tastiera a matrice (i numeri da 0 a 9) e memorizzare i tasti premuti. Quando viene pigiato il tasto *, il display deve visualizzare in sequenza i tasti precedentemente acquisiti.

Osservando il relativo listato riportato in queste pagine possiamo notare che questo programma è decisamente più complesso del precedente: nelle inizializzazioni troviamo anche il registro CONTATASTI che ci permetterà di memorizzare il numero dei tasti che sono stati premuti e altri due registri, FSR e INDF, utilizzati nei microprocessori PIC per memorizzare un dato in una cella di memoria RAM.

I registri COUNT_1 e COUNT_2 vengono utilizzati come al solito nella routine DELAY. Il “corpo” del programma principale è comunque simile al software precedente, in quanto effettua la scansione delle righe e delle colonne (da notare che viene effettuata la lettura dei soli tasti 0 ÷ 9 e del tasto * per la riproduzione).

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 6 utenti e 58 visitatori collegati.

Ultimi Commenti