Stránka 1 z 2
BASCOM a display atm1602b 16*2 černé čtverečky nahoře
Napsal: 28 črc 2009, 07:22
od michalino
Dobrý den,
prosím Vás o radu. Mám display atm1602b a když ho zapojím dle dostupných schématek, tak po zapnutí proudu mi v horním řádku
se objeví čtverečky po celém tomto řádku.
Už jsem 1000x kontroloval drátky, tisíckrát si hrál s knihovnama v BASCOMU, 1000x zkoušel nastavit napětí a nic...
Používám ATMEGA8
Určitě se jedná o klasický problém při začátcích s tímto displayem, poradíte mi někdo, co s tím, prosím?
děkuji
Napsal: 28 črc 2009, 09:26
od ivanko18
skus poslat schemu zapojenia na tu atmegu a inicializaciu v baskome
Napsal: 28 črc 2009, 09:38
od Andrea
Ty čtverečky nemají být černé, ale jen šedivé, tak si taky stáhni kontrast, abys vůbec něco viděl.
Napsal: 28 črc 2009, 09:40
od michalino
děkuji,
Podle tohoto zapojení jsem se inspiroval k zapojení pouze ATMGEA8 a DISPLAY.
Nepoužívám celé toto zapojení, jen DISPLAY:
http://www.psc-audio.ro/catalog/html/kit004/schematic_controller.pdf
a nebo toto:
http://www.qsl.net/pa3ckr/bascom%20and%20avr/using%20an%20lcd/index.html
a program bascom:
$regfile = "tady mam soubor PROatmel"
Config lcd = 16*2
Config lcdpin = PIN, DB4 = PORTB.1,DB5=PORTB.2,DB6=PORTB.3,DB7=PORTB.4,E=PORTB.5,RS=PORTB.6
loop:
Lcd "Hello! "
goto loop
end
příkaz config lcd pin neni ted mozna presne podle schematu, protoze to porad menim podle ruznych schematek a na draty a propojeni davam velky pozor, 1000x kontroluju
Napsal: 28 črc 2009, 09:41
od michalino
dekuji, kontrastem to neni...
Napsal: 28 črc 2009, 11:09
od nekmil
Kontrolní otázka: čím ten procesor taktuješ ?
Krystal nebo vnitřní RC oscilátor, dělal jsi něco z fuse bity ?
V programu mi chybí instrukce "$crystal = xxxxxx"
P.S. pozor na instrukci "$sim"
-----------------------------------------
$regfile = "m8def.dat"
$crystal = 1000000 '1MHz taktován vnitřním RC oscilátorem(z výroby)
Config lcd = 16*2
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
loop:
Lcd "Hello! "
Wait 1 'pauza 1 sec
Cls 'vymažeme displej
Wait 1 'pauza 1sec
Goto Loop 'znovu na začátek
End 'end program
zde přeložený hex
:1000000012C0189518951895189518951895189563
:100010001895189518951895189518951895189578
:100020001895189518958FE58DBFC0E4E0E44E2E25
:1000300084E08EBFD4E0F4E05F2EEEEFF3E0A0E6C4
:10004000B0E0A89584B7082E877F84BF88E1992700
:1000500081BD91BD88278D933197E9F722D0662421
:10006000E0EBF1E00AD0E1E0F0E012D00CD0E1E00A
:10007000F0E00ED0F5CFF894FFCF96D0802D11F0A0
:1000800052D0FBCF089581E054D008D080E851C011
:1000900088EE93E07AD03197D9F7089583E09927D5
:1000A00074C08AEF90E071D0BC9ABB9ABA9AB99AA0
:1000B000BD9ABE9AC69885E090E067D0C598C4986E
:1000C000C398C29AC19AC59AEF93FF93E5E1F0E015
:1000D00050D0FF91EF91C59855D0C59AEF93FF93FB
:1000E000E5E1F0E046D0FF91EF91C5984BD0C59A7D
:1000F000EF93FF93E5E1F0E03CD0FF91EF91C598DD
:1001000041D0C198C59AEF93FF93E5E1F0E031D07B
:10011000FF91EF91C59836D088E20BD08EE009D0E0
:1001200086E007D00895C69A829505D004D02AD0DB
:100130000895C698F9CF859510F4C19A01C0C19869
:10014000859510F4C29A01C0C298859510F4C39A9F
:1001500001C0C398859510F4C49A01C0C498C59A8B
:10016000EF93FF93E5E1F0E004D0FF91EF91C598A4
:1001700008953197F1F70895689462F80895E89426
:1001800062F8089581E090E000C0EF93FF93EE27BE
:10019000E82BE92B31F0EAEFF0E03197F1F7019726
:1001A000D1F7FF91EF910895C895319600200895F9
:0801B00048656C6C6F21200012
:00000001FF
Napsal: 28 črc 2009, 11:54
od michalino
Nekmile, děkuji.
Jsem teď mimo pracovní stůl, tak to bemůžu vyzkoušet, nicméně ten program jsem takto už zkoušel....a nefunguje, pořád stejné čtverečky...
crystal jsem dával interní, stejně, jak ho máš napsaný v programu---
Externí nepoužívám....prozatím....
Ale jak jsi vzpomenul ty fuse bity....jak mají být prosím správně nastaveny...v ponyprog 2000? To je věc, ve které tápu a nevím, zda je to správně....jak říkám, jsem mimo pracovní stůl a tak nemohu poslat screenshot...existuje někde prosím ukázka nastavení Fuse bitů .. pro atmel atmega8 případně twento display?
Může být problém v inicializaci displeje? četl jsem někde, že to může být důvodem...ale jak inicializovat, to nevím....
Ten display už jsem jednou zapojený měl podle nějaké knihy, fungovalo to....jen jsem ji ted vratil do knihovny , z nepajiveho pole to vytahl, ze si to urovnam a zpet to nefunguje....zapojeni proto delam dle PDF uvedenyc výše....rozdíl je v tom, že nepoužívám tranzistor a trimr....jestli tohle muze byt duvod...nevim...prosim pomoc....ty fuse bity?
Napsal: 28 črc 2009, 12:25
od nekmil
Ponyprog nepoužívám tak nevím jestli programuje zvlášť fuse bity a zvlášť program.
Tady je on-line kalkulátor na fuse
http://www.brischalle.de/avr8_burn-o-ma ... nline.html
Předpokládám R/W na displeji je uzemněn a s tím kontrastem by bylo dobré něco udělat (trimr).
Napsal: 28 črc 2009, 12:57
od michalino
To je krasny nastroj, viz tvuj link nahore nekmile, pokud jsem dostal fuses: hfuse=D9 lfuse=E1
to mam prosim nekam vepsat do programu a tak se nastavi fuse bitty?
Pokud ne, zaskrtnu v ponyprog ty nazvy, ktere jsou zaskrtle v Tvem nastroji u ATmega8...
R/w je uzemněno...ano...
Kontrast jsem menil v jinem zapojeni, taky jsem ho nasel na NETU, nicmene, porad tam byly ctverecky, ktere se zeslabovaly a zesilovaly
je to nejake divne...kdybyste meli jeste prosim navrhy, dychtim
Napsal: 28 črc 2009, 13:22
od nekmil
Zrovna se dívám na ten Ponyprog a ty "fajfky" by měly být stejné jako v tom Burn_O_Mat.
Zkus si nejdříve ty fuse bity přečíst z procesoru.
Fuse se zadávají do programátoru nikoliv do programu.
Napsal: 28 črc 2009, 13:30
od ivanko18
ked pridem domov mozem posat kus kodu na LCD chces to ako zdrojak alebo aj prelozene
Napsal: 28 črc 2009, 15:47
od Zirafka
Jestli jsem tě dobře pochopila, tak po zapnutí displeje se rozsvítí všechny segmenty v horním řádku. Je to tak?
Pokud ano, tak neproběhla inicializace modulu. Takto se totiž chová po startu až do doby, kdy do něj zapíšeš potřebné informace.
U některých modulů je zrada a chtějí mít při 4bitovém ovládání ty nepoužité připojené na zem a ne nechané ve vzduchu.
Zapomenutá direktiva
$SIM již tu padla, dovede hezky potrápit

Direktiva
$crystal = xxxxxx není vyloženě nutná, ale potom pozor na to, co je nastavená v předvolbách kompileru.
Napsal: 28 črc 2009, 16:14
od michalino
Děkuji Vám všem za rady...až přijdu domů, prvně zkusím přečíst fuse bity....a následně zkusím všechny nožičky LCD zapojit na zem....
Jsem zvědav, jak to dopadne...protože už to trápí pěknou chvilku

člověk se alespoň poučí...
Jestli chci program na LCD tak nebo tak?....budu rád za cokoliv, proto nejlépe v klasickém programovém jazyku...bascom je prosím možný?
Děkuji, zdravím Vás...
Napsal: 28 črc 2009, 16:16
od michalino
A případně inicializace modulu se dělá prosím jak, děkuji...
Napsal: 28 črc 2009, 16:46
od ivanko18
interny oscilator nakonfigurujes cez fusebit
ponyprog2000
zaskrtnute su "BOOTSZ1, BOOTSZ0, SUT1, SUT0, CKSEL3, CKSEL1, CKSEL0
napis ako to dopadlo
$regfile = "m8def.dat"
$lib "mcsbyte.lbx"
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , E = Portd.3 , Rs = Portd.4
Config Lcd = 16 * 2
Initlcd
Cursor Off
Cls
Cursor Off Noblink
Do
Cls
Locate 1 , 1
Lcd " SKUSKA"
Locate 2 , 1
Lcd " LCD"
Waitms 100
Loop
End