;****** PunktMatrix 1.0 (c) Oliver Mezger 6.7.2009 ; Balken wandert von Spalte 1 bis Spalte 5 .include "m16def.inc" .def tmp = R16 ;tmp-Register zum Arbeiten .def tmp2 = R17 .def spalte = R18 ;Spalte für Darstellung jmp reset ;Einsprung nach Reset .org $2a ;folgender Code ab Adresse $2a reset: ldi tmp,high(RAMEND);Oberste RAM-Adresse holen out SPH, tmp ;Stack-Pointer initialisieren ldi tmp,low(RAMEND) out SPL, tmp ldi tmp,$ff out DDRA,tmp ;PA als Ausgang out DDRC,tmp ;PC als Ausgang ldi spalte,1 ;Spalte initialisieren out PORTA,tmp ;alle ZeilenLED an loop: out PORTC,spalte;Spalte einschalten rol spalte ;naechste Spalte sbrc spalte,5 ;wenn Spalte 6 ldi spalte,1 ;dann wieder Spalte 1 rcall wait ;warte zum Anzeigen rjmp loop wait: ldi tmp,100 ;aeusseren Zaehler laden 100 ms wl1: ldi tmp2,250 ;inneren Zaehler 1ms bei 1Mhz wl2: nop dec tmp2 ;tmp2-- brne wl2 ;Sprung wenn nicht null dec tmp ;tmp-- brne wl1 ;Sprung wenn nicht null ret