.include "m8def.inc"
; .def definiert ein Synonym (Namen) für ein µC Register
.def temp1 = r16
.def temp2 = r17
.def temp3 = r18
ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
out SPL, temp1
ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse
out SPH, temp1
ldi temp1, 0xFF ; Port D = Ausgang
out DDRD, temp1
rcall lcd_init ; Display initialisieren
rcall lcd_clear ; Display löschen
ldi ZL, LOW(str1*2) ; Adresse des Strings in den
ldi ZH, HIGH(str1*2) ; Z-Pointer laden
ldi r20, 'a'
st Z+, r20
ldi r20, 'b'
st Z+, r20
ldi r20, 'c'
st Z+, r20
ldi r20, 'd'
st Z+, r20
ldi ZL, LOW(str1*2) ; Adresse des Strings in den
ldi ZH, HIGH(str1*2) ; Z-Pointer laden
ld r20, Z+
mov temp1, r20 ; Zeichen anzeigen
rcall lcd_data
ld r20, Z+
mov temp1, r20 ; Zeichen anzeigen
rcall lcd_data
ld r20, Z+
mov temp1, r20 ; Zeichen anzeigen
rcall lcd_data
ld r20, Z+
mov temp1, r20 ; Zeichen anzeigen
rcall lcd_data
loop:
rjmp loop
.include "lcd-routines.asm" ; LCD-Routinen werden hier eingefügt
.DSEG
str1: .byte 20