semicolon
19.10.2005, 18:26
Ich habe jetzt schon vieles ausprobiert und auch mittels eurer Hilfe vom letzten Mal. Krieg es aber nicht hin auch nur eine Buchstaben auf dem Display anzuzeigen. Irgendwie bekomme ich das nicht hin. Liegt eventuell an der Initialisierung. Vielleicht kann mir jemand helfen.
;Variabeln bezeichnen
cseg at 0;
ENABLE EQU P3.7;
RS EQU P3.5;
RW EQU P3.4;
DATEN EQU P1;
Start: call lcd_init;
mov a, #74h;
call LCD_send_data
stop: jmp stop
lcd_init: push ACC;
mov a, #10;
call LCD_wait
clr RS
clr RW
clr ENABLE
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #00001111b
call LCD_send_comandos
mov a, #1h
call LCD_send_comandos
pop ACC
ret
LCD_wait: push ACC
F04_wait: push ACC;
mov a, #255
F04_wait2:
nop
nop
nop
nop
nop
djnz ACC, F04_wait2
pop ACC
djnz ACC, F04_wait
pop ACC
LCD_send_comandos:
clr RW
clr RS
jmp LCD_send
LCD_send_data:
clr RW
setb RS
LCD_send: mov Daten, a
setb ENABLE
push ACC
mov a, #2
call LCD_wait
pop ACC
clr ENABLE
ret
END
So sieht das LCD aus, wenn ich die Spannung anlege und der uC eigentlich laufen sollte
;Variabeln bezeichnen
cseg at 0;
ENABLE EQU P3.7;
RS EQU P3.5;
RW EQU P3.4;
DATEN EQU P1;
Start: call lcd_init;
mov a, #74h;
call LCD_send_data
stop: jmp stop
lcd_init: push ACC;
mov a, #10;
call LCD_wait
clr RS
clr RW
clr ENABLE
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #30h
call LCD_send_comandos
mov a, #00001111b
call LCD_send_comandos
mov a, #1h
call LCD_send_comandos
pop ACC
ret
LCD_wait: push ACC
F04_wait: push ACC;
mov a, #255
F04_wait2:
nop
nop
nop
nop
nop
djnz ACC, F04_wait2
pop ACC
djnz ACC, F04_wait
pop ACC
LCD_send_comandos:
clr RW
clr RS
jmp LCD_send
LCD_send_data:
clr RW
setb RS
LCD_send: mov Daten, a
setb ENABLE
push ACC
mov a, #2
call LCD_wait
pop ACC
clr ENABLE
ret
END
So sieht das LCD aus, wenn ich die Spannung anlege und der uC eigentlich laufen sollte