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
hd64180-cpm |