INDIRIZZI PORTE: ---------------------- PIO1 PORTA A 8 PIO1 PORTA B 9 NOTA: questo circuito può usare PIO1 CONTROLLO A 10 gli interrupt delle porte dei PIO. PIO1 CONTROLLO B 11 Se si vuole usare un altra sorgente PIO2 PORTA A 4 di interrupt sul pin INT della CPU PIO2 PORTA B 5 allora si devono scollegare i pin INT PIO2 CONTROLLO A 6 dei PIO. PIO2 CONTROLLO B 7Esempio di programmazione delle porte:
si vogliono programmare le porte nel seguente modo:
PIO1 A: tutte uscite
PIO1 B: tutti ingressi
PIO2 A: da PA0 a PA5 ingressi, da PA6 e PA7 uscite
PIO2 B: PB3 e PB6 uscite, gli altri pin ingressiPer configurare la prima porta si scrivono nel relativo registro di controllo (all'indirizzo 10) i 2 byte 11111111B e 00000000B.
Per la seconda porta si scrivono all'indirizzo 11 i due byte 11111111B e 11111111B.
Per la terza porta si scrivono all'indirizzo 6 i due byte 11111111B e 00111111B.
Per la quarta porta si scrivono all'indirizzo 7 i due byte 11111111B e 10110111B.LD C,10 ;indirizzo reg. di controllo porta A PIO1 (10) LD L,11111111B ;(o 255 o FFH è la stessa cosa) LD A,00000000B ;tutte uscite OUT (C),L ;invia primo byte OUT (C),A ;invia secondo byte INC C ;indirizzo reg. di controllo porta B PIO1 (11) CPL A ;tutti ingressi (inverte tutti i bit di A) OUT (C),L ;invia primo byte OUT (C),A ;invia secondo byte LD C,6 ;indirizzo reg. di controllo porta A PIO2 (6) LD A,00111111B ;PA0..PA5 ingressi PA6,PA7 uscite OUT (C),L ;invia primo byte OUT (C),A ;invia secondo byte INC C ;C=indirizzo reg. di controllo porta B PIO2 (7) LD A,10110111B ;PB3,PB6 uscite, il resto ingressi OUT (C),L ;invia primo byte OUT (C),A ;invia secondo byteA questo punto si può scrivere sulla prima porta con OUT (8),A leggere dalla seconda con IN A,(9), scrivere o leggere dalla terza con OUT (4),A o IN A,(4) e scrivere o leggere dalla quarta con OUT (5),A o IN A,(5).
Pagina e disegni realizzati da
Claudio Fin
Ultimo aggiornamento 23-9-2000