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: 122
Registrován: 31 kvě 2009, 02: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, 02: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/ki ... roller.pdf

a nebo toto:
http://www.qsl.net/pa3ckr/bascom%20and% ... 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: 780
Registrován: 06 bře 2005, 01: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: 780
Registrován: 06 bře 2005, 01: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: 780
Registrován: 06 bře 2005, 01: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: 122
Registrován: 31 kvě 2009, 02: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, 02: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: 122
Registrován: 31 kvě 2009, 02: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ů“