|
|
In particolare, appartengono al primo gruppo i segnali PA0..PA7, PB0..PB7, PC0..PC7; fanno parte del secondo gruppo i segnali D0..D7, i 2 pin per l'alimentazione e tutti gli altri segnali di controllo. |
|
Dal punto di vista della programmazione del dispositivo, questi due blocchi logici di controllo sono visti come un unico registro ad 8-bit, detto registro di controllo, indirizzabile dal microprocessore nell'area di I/O; |
| A1 | A0 | Registro |
| 0 | 0 | Registro Porta A |
| 0 | 1 | Registro Porta B |
| 1 | 0 | Registro Porta C |
| 1 | 1 | Registro di Controllo |
N.B. Durante le operazioni di acquisizione o invio di dati attraverso le porte del PPI, la logica di controllo si preoccupa di abilitare il trasferimento dati fra il buffer che interfaccia il bus dati con il PPI e i buffer che interfacciano il PPI con il mondo esterno; si garantisce così la sincronizzazione fra il microprocessore e i dispositivi periferici, che in generale lavorano a clock differenti;
La programmazione del PPI avviene caricando nel registro di controllo opportuni valori che consentono non solo di selezionare le varie porte come porte di ingresso/uscita, ma anche di definire per ciascuna di esse la modalità di funzionamento, che può essere scelta tra:In particolare quando il bit più significativo (D7) vale 1, il
byte di controllo consente di impostare le modalità di funzionamento delle tre
porte secondo il seguente schema:
| D7 | 1 | Preimpostato per la programmazione delle porte |
| D6-D5 | 00 01 10 | Modo di funzionamento del gruppo A MODO 0 MODO 1 MODO 2 |
| D4 | 1 0 |
Direzione del trasferimento per la porta A INPUT OUTPUT |
| D3 | 1 0 |
Direzione del trasferimento per la parte alta della porta C INPUT OUTPUT |
| D2 | 1 0 |
Modo di funzionamento del gruppo B MODO 0 MODO 1 |
| D1 | 1 0 |
Direzione del trasferimento per la porta B INPUT OUTPUT |
| D0 | 1 0 |
Direzione del trasferimento per la parte bassa della porta C INPUT OUTPUT |
Quando invece il bit più significativo assume il valore 0, il byte di controllo permette di modificare il valore dei singoli flip-flop di abilitazione delle interruzioni, usati nelle modalità 1 e 2.
| D7 | 0 | Preimpostato per la programmazione dei flip-flop |
| D6..D4 | Non significativi | |
| D3..D1 | 000 001 010 ... 111 |
Selezionano il bit della porta C su cui operare bit 0 bit 1 bit 2 ... bit 7 |
| D0 | Definisce il valore da assegnare al bit |
| rPA = 0300h | rPB = 0301h | rPC = 0302h | rCTRL = 0303h |
MOV AL,8Ah
MOV DX,0303h
OUT DX,AL
MOV AL,35h
MOV DX,0300h
OUT DX,AL
MOV DX,301h
IN AL,DX
Il dato 35h verrà emesso su PA, i dati presenti su PB verranno caricati (letti) nel registro AL.