Lezione 3

Step 1/3

Passo precedenteInizio lezionePasso successivo

Le porte A e B

 

Il PIC16F84 dispone di un totale di 13 linee di I/O organizzate in due porte denominate PORTA A e PORTA B. La PORTA A dispone di 5 linee configurabili sia in ingresso che in uscita identificate dalle sigle RA0, RA1, RA2, RA3 ed RA4. La PORTA B dispone di 8 linee anch'esse configurabili sia in ingresso che in uscita identificate dalle sigle RB0, RB1, RB2, RB3, RB4, RB5, RB6 ed RB7.

La suddivisione delle linee in due porte distinte è dettata dai vincoli dell'architettura interna del PIC16F84 che prevede la gestione di dati di lunghezza massima pari a 8 bit.

Per la gestione delle linee di I/O da pogramma, il PIC dispone di due registri interni per ogni porta denominati TRISA e PORTA per la porta A e TRISB e PORTB per la porta B.

I registri TRIS A e B, determinano il funzionamento in ingresso o in uscita di ogni singola linea, i registri PORT A e B determinano lo stato delle linee in uscita o riportano lo lo stato delle linee in ingresso.

Ognuno dei bit contenuti nei registri menzionati corrisponde univocamente ad una linea di I/O.

Ad esempio il bit 0 del registro PORTA e del registo TRIS A corrispondono alla linea RA0 , il bit 1 alla linea RA1 e così via.

Se il bit 0 del registro TRISA viene messo a zero, la linea RA0 verrà configurata come linea in uscita, quindi il valore a cui verrà messo il bit 0 del registro PORTA determinerà lo stato logico di tale linea (0 = 0 volt, 1 = 5 volt).

Sel il bit 0 de registro TRISA viene messo a uno, la linea RA0 verrà configurata come linea in ingresso, quindi lo stato logico in cui verrà posta dalla circuiteria esterna la linea RA0 si rifletterà sullo stato del bit 0 del registro PORTA.

Facciamo un esempio pratico, ipotizziamo di voler collegare un led sulla linea RB0 ed uno switch sulla linea RB4, il codice da scrivere sarà il seguente:

movlw	00010000B
tris	B

in cui viene messo a 0 il bit 0 (linea RB0 in uscita) e a 1 il bit 4 (linea RB4) in ingresso. Si ricorda a tale proposito che nella notazione binaria dell'assembler il bit più a destra corrisponde con il bit meno significativo quindi il bit 0.

Per accendere il led dovremo scrivere il seguente codice:

bsf	PORTB,0

Per spegnerlo:

bcf	PORTB,0

Per leggere lo stato dello switch collegato alla linea RB4, il codice sarà:

btfss	PORTB,4
goto 	SwitchAMassa
goto 	SwitchAlPositivo

Nel passo successivo analizzeremo gli stadi d'uscita che gestiscono le linee di I/O.

 
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