BASCOM a display atm1602b 16*2 černé čtverečky nahoře

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
michalino

BASCOM a display atm1602b 16*2 černé čtverečky nahoře

#1 Příspěvek 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
Uživatelský avatar
ivanko18
Příspěvky: 126
Registrován: 31 kvě 2009, 00:00
Bydliště: Povazie,SK

#2 Příspěvek od ivanko18 »

skus poslat schemu zapojenia na tu atmegu a inicializaciu v baskome
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#3 Příspěvek 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.
michalino

#4 Příspěvek 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
michalino

#5 Příspěvek od michalino »

dekuji, kontrastem to neni...
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#6 Příspěvek 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
michalino

#7 Příspěvek 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?
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#8 Příspěvek 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).
michalino

#9 Příspěvek 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
Uživatelský avatar
nekmil
Příspěvky: 787
Registrován: 06 bře 2005, 00:00
Bydliště: Havířov

#10 Příspěvek 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.
Uživatelský avatar
ivanko18
Příspěvky: 126
Registrován: 31 kvě 2009, 00:00
Bydliště: Povazie,SK

#11 Příspěvek od ivanko18 »

ked pridem domov mozem posat kus kodu na LCD chces to ako zdrojak alebo aj prelozene
Zirafka
Příspěvky: 819
Registrován: 20 srp 2006, 00:00

#12 Příspěvek 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.
michalino

#13 Příspěvek 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...
michalino

#14 Příspěvek od michalino »

A případně inicializace modulu se dělá prosím jak, děkuji...
Uživatelský avatar
ivanko18
Příspěvky: 126
Registrován: 31 kvě 2009, 00:00
Bydliště: Povazie,SK

#15 Příspěvek 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
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“