Ok, habs noch nicht komplett analysiert.
Aber die erste Zeile die mir auffällt ist die:
LCD_RAM CODE 0Ah
Mein Assembler versteht das garnicht. Gibst du damit nicht der Adresse 0Ah im Programmspeicher den Namen LCD_RAM?
Ich denke das sollte IDATA heißen.
Das zweite ist das du beim initialisieren bereits im 4-Bit Modus sendest. Das darf nicht sein. Zum initilasisieren mußt du das Highnibble so anlegen als wärst du im 8-Bit-Modus und dann Enable pulsen.
Sollte in etwa so aussehen:
Code:
lcd-reset:
CLR en
CLR rs
CLR rw
CLR db7
CLR db6
SETB db5
SETB db4
call wait-long
SETB en
CLR en
call wait-long
SETB en
CLR en
call wait-long
SETB en
CLR en
call wait
CLR DB4 ;hier schon im 8-Bit Modus auf 4-Bit umstellen
SETB en
CLR en
RET
Lesezeichen