Initialisierung LCD über Datenbus in C

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: 14 7 2026  04:00:23      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


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


Autor
Initialisierung LCD über Datenbus in C
Suche nach: lcd (4712)

    







BID = 51581

dohdoh

Gerade angekommen


Beiträge: 9
Wohnort: NRW
 

  


Hallo Microkontroller Freunde..

ich möchte ein Diplay initialisieren. Das Display ist an den Datenbus angeschlossen und belegt den bereich oberhalb 8000h.

Das Display belegt daher die folgenden Adressen:

Komando_schreiben 0x8000;
Komando_lesen 0x8001;
Daten_schreiben 0x8002;
Daten_lesen 0x8003;

Meine Frage: Wie sieht nun die Programierung in C aus.
Ich verwende C51 von Keil und das
89S8252 Flash-Board von Elektor

In Assembler habe ich das so Programiert:

#define data_write 0x8002;
#define data_read 0x8003;
#define cmd_write 0x8000;
#define cmd_read 0x8001;

//----------------------

void LCDinit(void) // Display initialisierung
{
#asm

lcall Busy
mov DPTR,#cmd_write
mov A,#3Ch ;Initialisierung 8-Bit
movx @DPTR,A

lcall Busy
mov DPTR,#cmd_write
mov A,#15
movx @DPTR,A

lcall Busy
mov DPTR,#cmd_write
mov A,#1
movx @DPTR,A

lcall Busy
mov DPTR,#cmd_write
mov A,#6h
movx @DPTR,A
#endasm
}

#asm
Busy:
mov DPTR, #cmd_read
movx A, @dptr
jb ACC.7,Busy
ret
#endasm

Vielicht kann mir ja jemand dabei weiterhelfen. Ich würde mich sehr freuen da ich nicht mehr weiter weiß.

MFG
Christian

BID = 51583

dohdoh

Gerade angekommen


Beiträge: 9
Wohnort: NRW

 

  

Nachtrag:

So sieht mein Problem in Assembler aus. wie schreibe ich das in C..

MOV DPTR,#8000h
;Speicheradresse 7000h in Datapointer schreiben

MOVX @DPTR,A
;Akkuinhalt unter 7000h im RAM speicher

MFG
Christian

P.S. Vielen Dank schon

BID = 51749

ottO

Gerade angekommen


Beiträge: 8

Hi!
Du must Deine Displayadressen dem Compiler als Variable in xdata deklarieren. Ungefähr so:

unsigned char xdata Kommando_schreiben _at_ 0x8000;
usw.

Dann redet der µC mit dem LCD. Überigens geht's so auch mit dem EEPROM des 89C8252.

Beim LCD die Timing-Spec beachten, gerade bei der Initialisierung.

Gruß
ottO

BID = 51760

dohdoh

Gerade angekommen


Beiträge: 9
Wohnort: NRW

Vielen Dank für die schnelle Hilfe,
weißt du zufällig auch wie ich meinen Compiler
(Keil uvision2) einrichten muss damit er auf den Speicher zugreifen kann. Oder liege ich da Falsch..

Ich habe in der Hilfe gesehen das man Grundeinstellungen treffen muss, weiß aber nicht so genau welche wichtig und wie das so funktioniert.

MFG
Christian

BID = 51766

ottO

Gerade angekommen


Beiträge: 8

Ich nehme an, Du meinst den Simulator. Eigentlich musst Du nichts weiter tun, außer vielleicht den Speicher beobachten.
Welche Version von C51/uV2 verwendest Du denn (Hilfe->Info->Viele Zahlen, aber nur bei geladenem Projekt)?
Du solltest im Target->Options-Dialog den 89C8252 als Ziel auswählen. SOnst kennt der Sim die "inneren Werte" (EEPROM, Watchdog) Deines uC nicht.

BID = 51786

dohdoh

Gerade angekommen


Beiträge: 9
Wohnort: NRW

Bedeutet das das ich für die eigentliche Übertragung zu meinem Kontroller kar keine Einstellungen machen brauche.

Die Einstellunegn die ich bei Target mache beziehen sich nur auf die Simulation?

Ich verwende die uVision2 7.0..

Schöne Grüße Christian

BID = 51974

ottO

Gerade angekommen


Beiträge: 8

So ist es. die Version 7 sollte den 89S8252 kennen, damit tauchen dann im Sim auch die zusätzlichen Features auf (Peripherals).

Im Programm muss die inclide-File des Prozessors eingebunden werden:
#include <at89s8252.h>

Für die eigentliche erstellung einer Hex-File aus dem Object File (das benutzt dann auch der Sim) musst Du im Target-Dialog unter Output noch die Option "Create Hex File" ankreuzen.

Damit die speziellen SFRs des uC bekannt und unter ihren Namen angesprochen werden können.
Gruß
ottO

BID = 51992

dohdoh

Gerade angekommen


Beiträge: 9
Wohnort: NRW

OK vielen Dank für die Antwort..

Schöne Grüße Christian


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 1 Beiträge verfasst
© x sparkkelsputz        Besucher : 192380104   Heute : 519    Gestern : 4606    Online : 100        14.7.2026    4:00
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.16406917572