Hier habe ich ein Programm. Leider ist es für Segmentanzeigen mit gemeisamer Anode. Meine Anzeige hat aber eine gemeinsame Kathode.
Was muss ich ändern, damit aich diese läuft?

Der Code:

Code:
.include "m8def.inc"
 
.def zero  = r1
.def count = r16
.def temp1 = r17
 
.org 0x0000
           rjmp    main                ; Reset Handler
;
main:
           ldi     temp1, LOW(RAMEND)  ; Stackpointer initialisieren
           out     SPL, temp1
           ldi     temp1, HIGH(RAMEND)
           out     SPH, temp1
;
           ldi     temp1, $FF        ; die Anzeige hängt am Port D
           out     DDRD, temp1       ; alle Pins auf Ausgang
;
           ldi     count, 0          ; und den Zähler initialisieren
           mov     zero, count
;
loop:
           ldi     ZL, LOW(Codes*2)  ; die Startadresse der Tabelle in den
           ldi     ZH, HIGH(Codes*2) ; Z-Pointer laden
 
           mov     temp1, count      ; die wortweise Adressierung der Tabelle
           add     temp1, count      ; berücksichtigen
 
           add     ZL, temp1         ; und ausgehend vom Tabellenanfang
           adc     ZH, zero          ; die Adresse des Code Bytes berechnen
 
           lpm                       ; dieses Code Byte in das Register r0 laden
 
           out     PORTD, r0         ; und an die Anzeige ausgeben
;
           inc     count             ; den Zähler erhöhen, wobei der Zähler
           cpi     count, 10         ; immer nur von 0 bis 9 zählen soll
           brne    wait
           ldi     count, 0
;
wait:      ldi     r17, 10           ; und etwas warten, damit die Ziffer auf
wait0:     ldi     r18, 0            ; der Anzeige auch lesbar ist, bevor die
wait1:     ldi     r19, 0            ; nächste Ziffer gezeigt wird
wait2:     dec     r19
           brne    wait2
           dec     r18
           brne    wait1
           dec     r17
           brne    wait0
;
           rjmp    loop              ; auf zur nächsten Ausgabe
;
Codes:                               ; Die Codetabelle für die Ziffern 0 bis 9
                                     ; sie regelt, welche Segmente für eine bestimmte
                                     ; Ziffer eingeschaltet werden müssen
                                     ;
           .db     0b11000000        ; 0: a, b, c, d, e, f
           .db     0b11111001        ; 1: b, c
           .db     0b10100100        ; 2: a, b, d, e, g
           .db     0b10110000        ; 3: a, b, c, d, g
           .db     0b10011001        ; 4: b, c, f, g
           .db     0b10010010        ; 5: a, c, d, f, g
           .db     0b10000010        ; 6: a, c, d, e, f, g
           .db     0b11111000        ; 7: a, b, c
           .db     0b10000000        ; 8: a, b, c, d, e, f, g
           .db     0b10010000        ; 9: a, b, c, d, f, g