Hallo,
habe eine Frage.
Ich möchte eine Ausgabe Routine für eine 7 Segment-Anzeige schreiben.
Eher gesagt sind es 8 7 Segment-Anzeigen nebeneinander.
Ich habe einen Text: Meinetwegen HALLO. Den dazugehörigen HEX-Code habe
ich als Textkonstante hinterlegt.
1 | TEXT: DC.B $6E,$EE,$1C,$1C,$FC,$00
|
Die Steuerung ist am PORTJ und die Ausgabe am PORTT
Ich hatte mir die Programmierung so gedacht:
1 | 7SEG_OUT:
|
2 | PSHA ;A in Sicherheit bringen
|
3 | PSHB ;B in Sicherheit bringen
|
4 | LDAB #$80 ; Adresse des ersten Zeichens
|
5 | LDX #TEXT ; Adresse vom Text
|
6 | LDAA 0,X ; Daten von X nach A
|
7 | STAA PORTT ; Buchstabe nach 7SEG
|
8 | STAB PORTJ ; Ansteuerung der richtigen 7SEG
|
9 | INX ; Adresse ein weiter laufen
|
10 | LSRB ; nächste Stelle
|
11 | LDAA 0,X ; nächstes Zeichen nach A laden
|
12 | BNE TEXT_OUT ; wenn kein Zeichen mehr da ist, ende, sonst wieder nach oben
|
13 | LDAB #$00
|
14 | STAB PORTJ ; 7SEG deaktivieren
|
15 | PULB ; B wieder holen
|
16 | PULA ; A wieder holen
|
17 | RTS ; Rücksprung
|
Kann mir jemand sagen ob das funktionieren würde?
Und wenn nicht warum? ;)
Vielen dank schonmal.