Beispiel 1 zur PIO-Programmierung | ![]() |
Letztmalig dran rumgefummelt: 06.10.20 18:21:16 | ![]() |
Aufgabe: Kanal A des PIO ist Byte-Ausgabe bei gesperrtem Interrupt und Kanal B in Einzelbitsteuerung so zu programmieren, dass ein Interrupt auf Bit 6=L ausgelöst wird!
ACHTUNG: ... das ist vorerst lediglich der Baustein PIO-Programmierung - der gesamte Interrupt-Bereich fehlt noch!
Prinzipschaltplan - er würde in der Praxis so nicht funktionieren |
elektronisch korrekter Schaltplan |
![]() |
![]()
|
Lösungsalgorithmus: Durch entsprechendes Laden des Registers A und anschließendes Schreiben auf die entsprechenden Programmier- bzw. Datenports werden die beiden Ports des PIO programmiert Adressen sind hier 06H sowie 07H. Anschließend können über die Datenwort-Adressen - natürlich entsprechend der Betriebsart Daten ein- bzw. ausgelesen werden.
Anmerkungen zur Hardware:
Marke | Adresse | Hex-Code | Assembler-Code | Kommentar |
ORG 0040H | ;Adresse Programmbeginn (... dieser fiktive Rechner hat seinen RAM-Bereich ab dieser Adresse - das ist nicht zu dikutieren WARUM - das ist Hardware!!!) | |||
M1: | 0040H | 3E C0 | LD A, 0C0H | ;Interruptvektor Kanal B - willkürlich festgelegt - Bit 0 muss 0 sein - hier also C0H |
0042H | D3 07 | OUT (007H), A | ;Interruptvektor auf Steuerwortadresse Kanal B | |
M2: | 0044H | 3E 0F | LD A, 00FH | ;Byte-Ausgabe für Kanal A |
0046H | D3 06 | OUT (006H), A | ;aktuelles Steuerwort auf Steuerwortadresse Kanal A - hier 006H | |
M3: | 0048H | 3E 03 | LD A, 003H | ;Interruptsteuerwort Kanal A A verboten |
004AH | D3 06 | OUT (006H), A | ;Interrupt Kanal auf Steuerwortadresse Kanal A - hier 006H | |
M4: | 004CH | 3E F0 | LD A, 0F0H | ;Grundeinstellung Kanal A |
004EH | D3 04 | OUT (004H), A | ;definierte Signale an Kanal A | |
M5: | 0050H | 3E FF | LD A, 0FFH | ;Einzelbitsteuerung für Kanal B |
0052H | D3 07 | ;Steuerwort auf Steuerwortadresse Kanal B | ||
M6: | 0054H | 3E E3 | LD A, 0E3H | ;E/A-Steuerwort für Bits auf Kanal B |
0056H | D3 07 | OUT (007H), A | ;Steuerwort auf Steuerwortadresse Kanal B | |
M7: | 0058H | 3E 97 | LD A, 097H | ;Interruptsteuerwort Kanal B |
005AH | D3 07 | OUT (007H), A | ;Steuerwort auf Steuerwortadresse Kanal B | |
M8: | 005CH | 3E BF | LD A, 0BFH | ;Interruptsteuerwort Kanal B |
005EH | D3 07 | OUT (007H), A | ;Interrup-Maskierungswort auf | |
M9: | 0060H | 3E 83 | LD A, 083H | ;Interruptfreigabe Port B |
0062H | D3 07 | OUT (007H), A | ;Eintragen in Interruptfreigabe Register Port B | |
M10: | 0064H | 3E 10 | LD A, 010H | ;Bitmuster für Bit 6 |
0066H | D3 05 | OUT (005H), A | ;definiertes Signal an Port B - Steuerwortadresse Kanal B (Bit 6 L-Aktiv) | |
LOOP: | 0068H | 18 FE | JR LOOP | ;Endlosschleife |
Beispiel für eine Anweisungstabelle in vollständiger Mnemoic-Codierung
Wir zerlegen das Gesamtproblem und
analysieren die Teilprozesse - wir können die Funktionalitäten aus dem Inhalt
des Registers A sowie der Portadresse eruieren:
M1 |
M2 | M3 | M4 |
LD A, 0C0H OUT (007H), A
|
LD A, 00FH OUT (006H), A
|
LD A, 003H OUT (006H), A
|
LD A, 0F0H OUT (004H), A
|
M5 |
M6 | M7 | M8 |
LD A, 0FFH OUT (007H), A
|
LD A, 0E3H OUT (007H), A
|
LD A, 097H OUT (007H), A
|
LD A,
0BFH OUT (007H), A
|
M9 |
M10 | ... dies als CORELDRAW-Datei im 11.0-Format dmit kann man auf 8 Nit unversell rechnen - das ist für Programmierer extrem wichtig!!! | ... das Projekt im A-Side-Format |
LD A, 083H
|
LD A, 010H OUT (005H), A
|
... Projektgestaltung PIO-Programmierung mit vollständiger ISR | ... Projekt-Entsprechung - kein "überflüssiger Ballast"! | ... Delphi-Projekt PIO-Programmierung |
|
PIO-Programmierung - die Übersicht |
... der PIO - die Details zum gesamten IC |
Programmierungsbeispiele für Interrupt-Steuerungen |
Kieser/Meder Mikroprozessortechnik - die U880-Bibel - der PIO |
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 28. März 2002 um 7.36 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |