|
cpm-z80z180
Beispiel-Code für MICO 85 Mikroprozessor 8085
Übertragungsprogramm für ein ASCII-Zeichen an den Drucker
; Übergabe des ASCII-Codes im Register C
ZA1MS EQU 0341H PB EQU 22H PC EQU PB+1
DRUCK: PUSH PSW BUSY: IN PC ; Port C (23) , bit 4 = BUSY = L? RLC RLC RLC RLC JC BUSY ; Sprung, solange BUSY = H MOV A,C ; ASCII-Wert in den Akku OUT PA ; und an den Drucker weitergeben. IN PB ; Zustand von Port B (22) erfragen. ORI 80H ; Port B, bit 7 = Strobe = H setzen OUT PB MVI A,1 CALL ZA1MS ; 1 ms warten IN PB ANI 7FH OUT PB ; Port B, bit 7 = Strobe = L setzen POP PSW RET END
; Zeitschleife: Aufruf: (A) = Anzahl der ms ZA1MS: PUSH PSW PUSH B OBER: MVI B,0D6H LAUF: DCR B JNZ LAUF DCR A JNZ OBER POP B POP PSW RET
Z80-PIO
A0 A1 angesprochenes Port
0 0 A Daten 0 1 B Daten 1 0 A Steuerwort 1 1 B Steuerwort
Beispiel I/O-Adressen 2CH,2DH,2EH und 2FH
Moduswort für Z80-PIO
Modus 0 0FH Modus 1 4FH Modus 2 8FH Modus 3 0CFH
Z80-PIO Modus 0 (Nur-Ausgabe)
LD A,0FH OUT (2EH),A ; Ausgabe des Steuerwortes
; Port A = Ausgabe, B/A = 0, C/D = 1 ; Ausgabe von 53H zum Port A
LD A,53H OUT (2CH),A ; Ausgabe der Daten
; Programmieren von Port B
LD A,0FH OUT (2FH),A ; Ausgabe des Steuerwortes
; Port B = Ausgabe, B/A = 1, C/D = 1
; Port B kann als universelles Ausgabeport benutzt werden. ; Dazu werden Daten zur Port-Adresse 2DH geschrieben.
Z80-PIO Modus 1 (Nur-Eingabe)
LD A,0FH OUT (2EH),A ; Ausgabe des Steuerwortes
; Port A ist jetzt ein Ausgabeport
LD A,4FH OUT (2FH),A ; Ausgabe des Steuerwortes
; Port B ist jetzt ein Eingabeport
IN A,(2DH) ; Lese Daten vom Port B OUT (2CH),A ; Ausgabe der Daten zum Port A
|