Forum: Mikrocontroller und Digitale Elektronik AT89S8252 + LCD 2x16 + sonderzeichen usw


von Axel (Gast)


Lesenswert?

Hallo Leute, ich hab nen µC AT89S8252 und daran n ganz normales LCD 2x16 
(HD4478...). Programmieren "muss" ich in assembler habs so gelernt und 
keine zeit mich auf c umzustellen)
Mein problem ich werd aus den Datenblättern net schlau mit welchem 
Befehl ich ganz einfach die hinterlegten Sonderzeichen abrufen und 
ausgeben kann. Bis jetzt mach ich alle ausgaben ganz einfach über eine 
tabelle und setze dort direkt den text ein den ich ausgeben will. Den 
rest erledigt eigentlich komplett meine routine.

Bsp:
MOV dptr, #text1  ; Datenpointer auf Text1 setzen
LCALL textzeile1  ; UP für die Ausgabe der ersten Zeile
Text1:  DB 'Zeichen',0

Meine Frage kann mir evtl. jemand ein Helfen das zu proggen ein bsp 
programm geben aus dem ich mir diese infos mopsen darf oder sagen wo ich 
die infos herbekomme. Datenblatt hab ich auch schon mehrere male durch 
und komm irgendwie nich weiter. Danke schonmal im voraus!

 gruß ´s Axele

von Joe (Gast)


Lesenswert?

Sollte ein Omega sein.

Text1:  DB 'Zeichen',0F4,0

von Joe (Gast)


Lesenswert?

zu schnell,

Text1:  DB 'Zeichen',0F4h,0

Zur Erklärung: 11110100 = F4, 8x51 Notation 0F4, HEX = 0F4h.

Die Werte nimmst du aus dem Datenblatt.

von Axel (Gast)


Lesenswert?

Also das wort "zeichen" welches in diesen ' ' beiden strichen steht ist 
mein eigentliches wort etc. mit bis zu 16 zechen welches ich dan an mein 
lcd ausgeben kann. Macht mir soweit auch keine probleme.

Das eigentliche problem ist das ich nicht weiß wie man die zeichen 
direkt mit hex oder dualzahl ausgibt.

soll heißen wen ich schreibe

Text1: DB 'Hallo Welt',0

wird auch einfach hallo welt ausgegeben.

Nun schau ich im Datenblatt, sollte die dualzahl 1111 1111 ein 
komplettes kästchen geben (FFh) ja wie mach ich nun meim controller klar 
das jetzt ein zeichen kommt welches er bereits kennt aber diesesmal mit 
dual oder hexzahl?


hoffe ich konnte es diesesmal besser erklären

Danke joe für deine antwort kam leider fatal error :)

von Joe (Gast)


Lesenswert?

Versteh deine Frage nicht ;-((

Text1: DB 'Hallo Welt',0FFh,0

Probiers doch mal... Deine Tabelle Text1 hat doch nun das Zeichen. Die 0 
am Ende ist doch wohl dein Terminator... oder ?

von Axel (Gast)


Lesenswert?

einfach doof wen ich meine antwort schreibe während du deine schreibst 
^^

hab das "h" für hex auch total übersehen ich bedanke mich vielmals 
funktioniert wunderbar

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Text1: DB 'Hallo Welt',0

macht doch eigentlich nichts anderes als ab der Marke "Text1" die 
folgenden Zeichen in den Speicher (Flash?) zu schreiben.
Eigentlich müsste

Text1: DB 'Hallo Welt',0xFF,0

"Hallo Welt" + ein komplettes Kästchen ausgeben.

Text1: DB 'H',0
DB 'a'
DB 'l'
DB 'l'
DB 'o'
DB ' '
DB 'W'
DB 'e'
DB 'l'
DB 't'
DB '!'
DB 0xFF
DB 0

Sollte zum gleichen Ergebnis führen...



von Joe (Gast)


Lesenswert?

0xFF ist eher C ;-))

von inoffizieller WM-Rahul (Gast)


Lesenswert?

255 oder 0FFh dann eben.

Das kommt ansonsten wohl auch den Assembler an.

von Axel (Gast)


Lesenswert?

Also erstmal danke für alle Antworten die auch wunderbar klappen. Jetzt 
nächste Frage^^ Im Datenblatt sind ja alle Adressen der Zeichen 
aufgeliste... Aber zwei mal, einmal ROM Code: A00 und A02 meine Frage 
kann man das umschalten von 00 auf 02 wen ja was muss ich dafür tun?
denn bei A02 hat es erstens mehr Zeichen und zweitens vernünftigere

Danke schonmal im vorraus

von freak (Gast)


Lesenswert?

geh doch googeln du versager

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.