Hallo Microkontroller Freunde
ich habe ein Problem.
Mein 4x16 Display (LCD164A LED) zeigt nur zwei Zeilen an und nicht vier. Außerdem stellt es alle ASCII-Zeichen die mit dem LOW-BIT 00xx Anfangen nicht dar.
z.B D, H, L, 0
Kann mir da vieleicht jemand weiter helfen.
Wahrscheinlich liegt es an meiner Initialisierung:
Funktion in C mit READ51 erstellt
void LCDinit(void) // Display initialisierung
{
#asm
lcall Busy
mov DPTR,#cmd_write
mov A,#56 ;Initialisierung 8-Bit
movx @DPTR,A ;Load data
lcall Busy
mov DPTR,#cmd_write ;0x8000 in den Data Pointer
mov A,#12 ;000001100 in den Akku
movx @DPTR,A ;Load data constant
lcall Busy
mov DPTR,#cmd_write ;Data Pointer
mov A,#0x0C
lcall Busy
mov DPTR,#cmd_write ;Data Pointer
mov A,#1 ;Ini 00000001 Display löschen
movx @DPTR,A ;Load data pointer with a 16-
lcall Busy
mov DPTR,#cmd_write ;Data Pointer
mov A,#15 ;Ini 00001111 Display: ein
movx @DPTR,A ;Load data pointer with a 16-
#endasm
}
#asm
Busy:
mov DPTR, #cmd_read ;data_read 0x8003 in
movx A, @dptr
jb ACC.7,Busy
ret
#endasm
Ich hoffe Ihr könnt mir weiter helfen.
MFG
Christian Hölscher
Hochgeladene Datei :
main.c