Wiedermal der HD44780 im 4-Bit Modus!

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 15 7 2026  01:11:01      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Wiedermal der HD44780 im 4-Bit Modus!

    







BID = 44778

Timbo

Gerade angekommen


Beiträge: 4
 

  


Hi @ all!

Brauche dringend Hilfe mit der HD44780 zweizeilig/4Bit LCD-software (assembler)!
soweit bis jetzt:

NAME LCD

;//---------------------------------------------------------------------//
;Freigabe


public warten,Zeichen
public LCD_init
public LCD_dat

;//---------------------------------------------------------------------//
;Speicherzuweisung:

LCD_data segment code
Variablen segment data

;//---------------------------------------------------------------------//
;Variablendefinition

RSEG Variablen

warten: ds 1
Zeichen: ds 1

;//---------------------------------------------------------------------//

RSEG LCD_data

LCD_dat: mov a,Zeichen
swap a
anl a,00001111b
orl a,00010000b
mov P1,a
clr a
call LCD_enable

mov a,Zeichen
anl a,00001111b
orl a,00010000b
mov P1,a
call LCD_enable
clr a
mov warten,#1
call delay

ret

LCD_command: mov a,Zeichen
swap a
anl a,00001111b
mov P1,a
clr a
call LCD_enable

mov a,Zeichen
anl a,00001111b
mov P1,Zeichen
clr a
call LCD_enable
mov warten,#1
call delay

ret

LCD_init: mov Zeichen,#33h
call LCD_command
mov warten,#30
call delay
mov Zeichen,#32h
call LCD_command
mov warten,#30
call delay
mov Zeichen,#28h
call LCD_command
mov warten,#30
call delay
mov Zeichen,#0Fh
call LCD_command
mov warten,#1
call delay
mov Zeichen,#01h
call LCD_command

ret

delay: mov r2,#100
delay_loop: djnz r2,delay_loop
mov r2,#100
djnz warten,delay_loop

ret
LCD_enable: setb P3.4
nop
nop
nop
clr P3.4

ret


END

Und hier noch das Hauptprogramm:

NAME LCD_ausgabe

CSEG at 8000h
org 8000h

;//---------------------------------------------------------------------//
;Freigabe

extrn data (Zeichen,warten)
extrn code (LCD_init,LCD_dat)

;//---------------------------------------------------------------------//

LCD_aus: call LCD_init

mov Zeichen,#'F'
LJMP LCD_dat

ret


END


Jungs, ich bin ratlos! Versuche schon seit längerem das Ding zum laufen zu bringen --> vergebens!

Hoffe ihr wisst weiter!

Und übrigens frohe Weihnachten
Timbo

[ Diese Nachricht wurde geändert von: Timbo am 27 Dec 2003  1:49 ]

[ Diese Nachricht wurde geändert von: Timbo am 27 Dec 2003 12:49 ]

[ Diese Nachricht wurde geändert von: Timbo am 27 Dec 2003 12:50 ]

BID = 44786

tixiv

Schreibmaschine



Beiträge: 1492
Wohnort: Gelsenkirchen

 

  

Hi!
Was mir auffällt, ist das Du am Anfang Deiner Initialisierung die Commandos nicht ganz richtig ausführst. Du mußt davon ausgehen, dass Dein Display am Anfang in einem beliebigen Zustand sein kann (ich denke mal Du hast meinen vorherigen Beitrag schon gelesen) desswegen kannst Du mit Deiner 4bit Senderoutine am Anfang noch nicht normal arbeiten. Wenn das Display am Anfang im 8bit Modus ist, nimmt es jedes Deiner 4bit Kommandos als 2 Kommandos! Desswegen auch der ganze Heckmeck mit 3* 8bit Modus und dann erst 4bit...
Du kannst aber trotzdem sofort Deine 4bit Sendebefehle verwenden, wenn Du bedenkst, dass jeder als 2 Befehle interpretiert wird (mit dem unteren Nibble undefiniert). Also schickst Du am Anfang:
33h (setze 8bit, setze 8bit)
32h (setze 8bit, setze 4bit) ab jetzt bist Du definiert im 4bit Modus
28h (setze 4bit, 2Zeilen, 5*7 Font)
0Fh (Display ein, Cursor an, Cursor soll Blinken) ab hier müsstest Du einen Cursor links im Display Blinken sehen. Ich denk mal ab hier kommst Du dann selber weiter

BID = 44787

tixiv

Schreibmaschine



Beiträge: 1492
Wohnort: Gelsenkirchen

Achso: Ich hab zum Schluss noch den Befehl

01h (display löschen, cursor home)

vergessen

BID = 44884

Timbo

Gerade angekommen


Beiträge: 4

Hi!

Mit der Info kann ich glaub ich gut weiterarbeiten!
Danke für die schnelle Antwort

Timbo


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 192384312   Heute : 188    Gestern : 4548    Online : 397        15.7.2026    1:11
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.155231952667