Lezione 3

Step 3/3

Passo precedenteInizio lezionePasso successivo

Input da tastiera

 

Dopo aver realizzato, nell'esempio precedente, le luci in sequenza sfruttando le linee da RB0 a RB3 come linee di output,  vediamo ora come si può realizzare un input da tastiera configurando le linee da RB4 a RB7 come linee di input.

Per questo sfruttiamo i quattro pulsanti SW1, SW2, SW3 ed SW4 disponibili sulla scheda PicTech.

Ognuno di questi pulsanti collega ai +5v una linea di ingresso normalmente mantenuta a zero da una resistenza (da R1 a R4). Se colleghiamo ad esempio il pin 10 del PIC16F84 al pulsante SW1, questa linee verrà mantenuta a 0 finchè non verrà premuto il tasto corrispondente SW1 che provvederà a portare la linea ad 1.

Proviamo ad esempio a realizzare un programma che accenderà ciascuno dei led D1, D2, D3 e D4 in corrispondenza della pressione di ciscun tasto da SW1 a SW4.

Per chi dispone della scheda PicTech sarà sufficiente collegare i seguenti pin:

RB4 con PU1
RB5 con PU2
RB6 con PU3
RB7 con PU4

realizzando così i collegamenti riportati nel seguente schema elettrico:

-------> Inserire qui lo schema elettrico <--------

Il source dell'esempio è riportato nel file INPUT.ASM.

Analizziamone ora il funzionamento.

La parte iniziale del programma esegue le stesse funzioni effettuate negli esempi precedenti ed in particolare le istruzioni:

    movlw 11110000B
    movwf TRISB

configurano le linee da RB0 a RB3 in uscita per il collegamento con i led e le linee da RB4 a RB7 in ingresso per il collegamento con i quattro pulsanti. Il resto del programma:

MainLoop
    swapf PORTB,1
    goto MainLoop

effettua semplicemente un loop continuo in cui viene eseguita l'istruzione swapf la quale scambia il contenuto dei bit RB0-RB3 con i bit RB4-RB7. In questo modo lo stato delle linee di ingresso collegate ai quattro pulsanti viene replicato continuamente sulle linee collegate ai led ottenendo l'accensione di un led per ogni pulsante.

 
Home page

PICPOINT, SXPOINT and ELETTROSHOP (C) 1997/98 by Andrea Galizia
For comments on this web site, write to webmaster@picpoint.com
Web design by Tiziano Galizia

Pic by example (c) 1997/98 by Sergio Tanzilli & Tiziano Galizia