Hoe krijg ik karakters op de rechter helft van een 1x16 LCD display ?

Ik heb een standaard 1x16 LCD (HD44780)

Hoe krijg ik karakters op de rechter helft hiervan ?

Ik zie nu: Hello Wo (dit zijn dus 8 plekken) Meer niet. Is het zo dat de cursor niet vanzelf op de rechterhelft schuift ? Nu verhoog ik het DDRAM adres telkens met 1, na de 8ste keer werkt dat niet meer.

Bedankt.

Reply to
RES
Loading thread data ...

meer.

De HD44780 zelf heeft geen 'rechter helft', maar misschien dat de display fabrikant het nodig vond om de laatste 8 karakters op latere segmenten te zetten en er dus een gat in de adres ruimte zit. Of men heeft zelfs de rechterhelft als 2e regel ingesteld. Probeer eens de gehele adres ruimte voor 1 regel (0x00 - 0x4F) of voor 2 regels (0x00 - 0x27, 0x40 - 0x67) vol te schrijven.

Het kan ook zijn dat je gewoon te snel wilt schrijven, die controller is echt langzaam. Dus hou je aan de timing uit de datasheet en controleer ook echt de busy flag. Als je een scoop hebt, meet dan de timing na.

Ook kunnen de shift instructies vreemde effecten geven. Kijk dus je gehele initialisatie en aansturing na. Gebruik je de 4-bit of de 8-bit interface?

--
Stef            (remove caps, dashes and .invalid from e-mail address to reply)

What an artist dies with me!
		-- Nero
Reply to
Stef

Ben eruit, ik moet de cursor op 0x40 zetten. Linker helft zit op DDRAM 00 - 07, rechter helft van 40 - 47. Alleen hoe ? Als ik het DDRAM op 0x40 zet zie ik niets verschijnen. Een FAQ zegt dat ik de cursor op 0x40 moet zetten, alleen hoe doe ik dit ?

8-bit. Timing heb ik wat ruimer gezet dan de datasheet (init), het werkt verders perfect.

Bedankt.

Reply to
RES

Logisch eigenlijk, in de datasheet staat op de eerste pagina eigenlijk al dat een stand-alone HD44780 1 of 2 regels van 8 chars kan weergeven, voor meer chars per regel heb je een extension driver nodig.

Je moet om te beginnen de controller instellen op 2 regels. Je hebt in feite een display van 2x8 met de regels achter elkaar i.p.v. onder elkaar. Verder entry mode etc instellen. En dan moet je DDRAM adres kunnen zetten en vervolgens zou data schrijven de chars op het LCD moeten zetten. Het zetten van DDRAM adres zorgt er gelijkertijd voor dat data read/write operaties naar DDRAM gaan.

--
Stef            (remove caps, dashes and .invalid from e-mail address to reply)

About all some men accomplish in life is to send a son to Harvard.
Reply to
Stef

Het is gelukt. Werkte meteen toen ik em als 2-line initialiseerde.

Bedankt voor de tips.

RES

Reply to
RES

?

niet meer.

De meeste modi van het display verschuiven de display pointer automatisch als je een karakter naar het display schrijft. Dus als je 'Hello world' schrijft komen deze allemaal op het scherm. Er is geen 'rechter helft' of zo.

Reply to
Uddo Graaf

Ben er ondertussen achter (volledig) Een 1x16 LCD is in feite een 2x8, alleen dan niet onder elkaar, maar naast elkaar gezet (werkt dus idem als een 2x8) Ik moest em eerst op

2-line initiliseren (1-line heb je dus alleen de linker "helft" van een 1x16) Daarna het DDRAM adres op 0x40 gooien. Dan zit je op de digits 8-15, anders 0-7.

RES

Reply to
RES

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.