Displej 4x40 BASCOM

Zdravim Vas, mam problem s ovladanim lcd displeja 4x40. Tento displej ma dva cipy pre prepinanie prvej a druhej polovice displeja. Nasiel som kniznicu aj s prikladom ako by to malo fungovat, no mne sa na displeji nezobrazuje nic. Trapim sa s tym uz druhy den a bez vysledku. Vedel by niekto kde mozem robit chybu? Dakujem

[code] $regfile = “m644pdef.dat”
$crystal = 16000000
$hwstack = 32
$swstack = 8
$lib “Lcd4e2.lib”

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0 , E2 = Portb.3
Config Lcd = 40x4
Cls

Dim ___lcde As Byte : ___lcde = 1

Do
Locate 1 , 1
Waitms 100
Lcd “AHOJ”
Waitms 100
Cls
Loop

End[/code]

Že by špatně nastavený kontrast ?

:slight_smile: to urcite nie. Na displeji mam len obdlzniky miesto textu, akoby neslo ani vymazanie displeja a ani jeho inicializacia. Zapojeny je urcite spravne, kontroloval som to niekolkokrat. Pokial nepouzijem kniznicu a idem bez nej a vyuzivam prikaz ___lcdeno(alebo tak nejako) tak sa mi podari na displej nieco napisat ale bud je to totalny nezmysel, alebo mi napriklad miesto slova AHOJ napise len HOJ, pricom nefunguje ani zmena riadkov lebo toto vypisuje len na druhom riadku

Otázka : Co definuje Lcdpin = Pin ?

Po zapnutí napájení musíš dát displeji nějaký čas na vnitřní inicializaci. Já dávám 500ms, zatím to vždy stačilo.

Je to len prikaz ktorym definujem mcu na ktorych pinoch ma pripojene piny lcd. Ak pouzivam 4bit ako v mojom pripade tak pouzivam moj zapis, pri 8bit sa pouziva cely port. Ine displeje mi problem nerobia, 4x20 ide bez problemov. Problem nastal ked som pouzil tento displej ktory ma dva radice a kazdy treba zvlast ovladat. Na nete som hladal a aj som cosi nasiel ale vacsinou mali ludia problem s niecim inym, ako so samotnym vypisovanim na displej. Neviem kde mozem robit chybu

Zkus toto snad ti to pomůže pozor je tam zaplá simulace $sim

[code]$regfile = “m644pdef.dat”
$crystal = 16000000
$hwstack = 32
$swstack = 8
$sim
Dim ___lcdno As Byte
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0 , E2 = Portb.3
Config Lcd = 40 * 4

Cls
___lcdno = 0
Locate 1 , 1
Waitms 10
Lcd “AHOJKSDCNB”
Waitms 10

Locate 1 , 41
Waitms 10
Lcd “AHOJKSDCNB”
Waitms 10

Locate 1 , 81

Waitms 10
Lcd “AHOJKSDCNB”
Waitms 10

Locate 1 , 121
Waitms 10
Lcd “AHOJKSDCNB”
Waitms 10
End[/code]

ujosvec

Já jsem v Bascomu rozběhával displej 2x20 znaků. S knihovnou nic. Tak mě tady poradili přímou definici pinů a ejhle - začalo to běhat.

Duplicitní příspěvek - prosím smazat.

Dakujem Vam krasne, hned ako budem v praci to vyskusam a dam urcite vediet ako som dopadol

Dnes som sa k tomu nachvilu dostal, no vysledok je ten ze na displeji teraz sice vidim co som napisal ale okrem toho su tam same dalsie nezmysly ktore sa zobrazuju uplne nahodne. Uz pomaly stracam nervy :frowning:

Zkus:
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E1 = Portb.2 , Rs = Portb.0 , E2 = Portb.3
Config Lcd = 40x4a

tak to funguje v BasCom 8051