82X55, der gute alte Parallelbus läßt grüßen.
Die Initialisierung bei den Peripheriebausteinen der 82XX-Serie läuft
immer nach dem gleichen Muster ab:
- Baustein für die gewünschte Betriebsart vorbereiten, dh in
das Kommandoregister wird ein passendes Steuerwort(-Bitkombination)
eingeschrieben
- Arbeit mit dem Baustein aufnehmen
Wenn Daten über Port A und B eingelesen werden sollen und Port C
ignoriert werden kann , muß der 8255 in Betriebsart 0 konfiguriert
werden. Für das Kommandobyte sind daher folgende Bitkombinationen ltd
Datenblatt(Siemens Datenbuch 1979/80) möglich:
Bit 7, 6, 5, 4, 3, 2, 1, 0
1 0 0 1 0 0 1 0 -> 0x92
1 0 0 1 0 0 1 1 -> 0x93
1 0 0 1 1 0 1 0 -> 0x9a
1 0 0 1 1 0 1 1 -> 0x9b
In Betriebsart 0 gilt: Ein gesetztes Bit konfiguriert den entsprechenden
Port als Eingang und vice versa, wobei Bit 4 Port A, Bit 3 Port C MSB,
Bit 1 Port B, Bit 0 Port C LSB zugeordnet ist. Das gesetzte Bit7 ist für
die Funktion "Betriebsart-Setzen" notwendig, alle übrigen Bit müssen 0
sein.
Die Port A, B, C und das Kommandoregister lassen sich über interne
Register ansprechen, die in Bezug auf die Basisadresse 'hintereinander'
angeordnet sind.
.
.
#define PPI_Basis Basisadresse
#define Port_A 0
#define Port_B 1
#define Port_C 2
#define Kommand 3
#define PAB_IN 0x92 /*oder... s.o.*/
.
.
/*8255 in Betriebsart 0 konfigurieren: Dateneingabe über Port A,B */
*(unsigned char *)(PPI_Basis+Kommand)=PAB_IN;
/* Daten von Port A einlesen*/
pa=*(unsigned char*)(PPI_Basis+Port_A);
.
.
usw
Zu beachten bleibt noch, dass die aktiven Steuer- und Datensignale
Mindestzeiten von ca 500ns nicht unterschreiten sollten, 'sind halt
betagte Teile.
mfg