semicolon
20.10.2005, 11:29
Ich weiss nicht mehr weiter. Mei LCD tut einfach keinen Wank sobald ich den AT892051 einschalte. Immer nur die erste Zeile ist zu sehen. Irgendetwas stimmt nicht.
uC: At892051
Quarz: 32.4kHz
Code:
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; ;buchstabe ausgeben
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 ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #38h ;8-bit Modus, 2 Zeilen, 5*8 Fonts
call LCD_send_comandos
mov a, #00001111b ;display on, courser on, blink on
call LCD_send_comandos
mov a, #1h ;display clear
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
ret
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
uC: At892051
Quarz: 32.4kHz
Code:
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; ;buchstabe ausgeben
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 ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #30h ;Interface auf 8-bit setzen
call LCD_send_comandos
mov a, #38h ;8-bit Modus, 2 Zeilen, 5*8 Fonts
call LCD_send_comandos
mov a, #00001111b ;display on, courser on, blink on
call LCD_send_comandos
mov a, #1h ;display clear
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
ret
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