-
-
Erfahrener Benutzer
Fleißiges Mitglied
LCD mit AT892051
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
-
Erfahrener Benutzer
Fleißiges Mitglied
Ich konnte keinen Fehler in deinem Programm finden.
Auf dieser Seite findest du auch einen
Codegenerator für deinen Controller.
Lass dir davon einen Code erzeugen und teste das LCD. Wenn es dann
immer noch nicht geht hast du ein Hardwareproblem.
-
Erfahrener Benutzer
Fleißiges Mitglied
Problem mit LCD bei AT892051
Ok versuche mal mit einem generierten Code von dieser Seite das LCD zu testen. Schade das es nur ein 4-Bit anschluss ist, kann es aber dennoch testen. Mal sehen was passiert.
Danke für deine Hilfe. Wenn das nicht klappen sollte weiss ich nicht mehr weiter. Wie oder wo könnte das Hardwareproblem sein?
Danke nochmals
-
Erfahrener Benutzer
Fleißiges Mitglied
-Der Controller könnte nicht anlaufen.
Bist du sicher das das Programm ausgeführt wird?
Schließe noch eine LED an und komplementiere sie an
Stellen in deinem Programm die du prüfen möchtest.
-Die Verbindungen könnten fehlerhaft sein.
Kalte Lötstelle? Sind die Ports richtig angeschossen? Port1 verdreht?
Ich prüfe meine Hardware immer mit einem Programm das die Portpins
einzeln auf low zieht. Man braucht dann nur noch messen ob das Signal
auch an der richtigen Stelle ankommt.
Benutzt du wirklich einen 32.4kHz Quarz?
Das Enable-Signal muß nicht so lang sein. Ein
setb Enable
clr Enable
reicht auch.
Ps.
Ich verstehe nicht was du gegen den 4-bit Bus einzuwenden hast.
Ein 8-bit Anschluß macht eigentlich nur Sinn wenn das LCD in den
Controllerbus integriert wird.
-
Erfahrener Benutzer
Fleißiges Mitglied
Problem mit LCD
Ah, eigentlich habe ich nichts gegen 4-Bit. War nur so ein Gedanke. Mit den Pins bin ich mir sicher. Habe das extra noch mals geprüft. Schaue aber nochmals nach.
Teste mal meine Port mit einer LED. Schauen ob auch ein Hight bei jedem Port kommt. Ist irgendwie schräg.
Wenn ich Spannung ans LCD lege, erscheinen in der ersten Zeile die 16 Quadrate. Dann passiert nichts mehr. Ist wirklich komisch.
Tja, versuche mal meine Hardware zu überprüfen.
Ärgere mich schon seit fast zwei Tagen an dem rum.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen