Fórum témák

» Több friss téma
Fórum » LCD probléma
 
Témaindító: Szergely, idő: Júl 6, 2006
Témakörök:
Lapozás: OK   6 / 16
(#) Stadi válasza Tom-Tom19 hozzászólására (») Aug 27, 2007 /
 
Van egy ilyen totyik, hogy LCD kijelző PC-re. Ott olvasgass vissza. És inkább ott folytassuk majd.
(#) hatizsak hozzászólása Okt 24, 2007 /
 
sziasztok en is most kezdem a pic et . es nekem egy ew13b10gly kijelzovel van problemam nem talalok reszletes leirast pl h kell e inicializalni es ha igen akkor hogy.ezzel kapcsolatban kerem a segitsegeteket.
elore is koszi
(#) Medve válasza hatizsak hozzászólására (») Okt 24, 2007 /
 
Hello, milyen tip. chip van rajta?
(#) hatizsak válasza Medve hozzászólására (») Okt 24, 2007 /
 
nincs tajta tipus. mar probaltam az alapjan de az aramkor hatuljan csak 3 fekete gomboc van a chip helyen miire esetleg ra lehetne irva.
mellekelem a kepet
amit nem latni a kispapiron szam .:0608b1
ennyi

ew13b10.JPG
    
(#) szilva válasza hatizsak hozzászólására (») Okt 24, 2007 /
 
Gugli első találati oldalán:

Bővebben: Link

Ez nem jó Neked? Vagy ennél több kellene?
(#) zoknee válasza hatizsak hozzászólására (») Okt 24, 2007 /
 
Hello!

Itt van a gyártó honlapja Bővebben: Link. Most mintha elég szűkmarkúak lennének, régebben többmindent megadtak a moduljaikról... remélem segít valamit.
(#) hatizsak hozzászólása Okt 24, 2007 /
 
ez nekem is megvan mar megtalatam de itt vezerlesrol es inicializalasrol nincs szo. ezert irtam
de koszonom
(#) MPi-c válasza Medve hozzászólására (») Okt 24, 2007 /
 
EDT gyártmány és S6B0108 chipek vannak rajta.
Az adatlapon kevés információt kapsz a működtetéshez, de egy másik adatlap (pl.:ez) leírása már többet segíthet.
Ja, és miben akarod programozni, mert szerintem C-ben a legegyszerűbb.
(#) szilva válasza szilva hozzászólására (») Okt 24, 2007 /
 
Egy másik fórumban meg azt találtam, hogy a Displaytech KS0108-cal működő 64128A kijelzője szerint kell használni (lásd kép, printerportos bekötés).

Displaytech 64128A adatlap (PDF)
(#) Tomi20 hozzászólása Jan 6, 2008 /
 
Heló

A nyáron vettem Topitól két 2*20 nagy karakteres kijelzőt. Ezek belekerültek a tápegységembe, de a következő probléma adódott: A kijelzők hátulján található egy poti, ami a kontrasztot állítja. A poti egyik oldalán van kb 8V, a másik oldalán a 0V, és értelem szerűen a harmadik lába 0-8V-ig szabályozható. A kijelzők időnként kb két hetente meghülyülnek, és a poti egyik oldalán lévő 8V elmászik, és vele együtt a kontraszt is. A potival ugyan be lehet állítani újra a kontrasztot, de ehhez mindíg szét kell szedni a tápot. A probléma mindkét kijelzőnél előfordul, ezért tatrom nagyon furcsának. A kijelző csatlakozói közt megtalálható egy kontraszt állító láb is, de ez alapesetben semmit nem csinál. Rájöttem, hogy a kijelző hátulján lévő réz felületek üzemmód váltóként működnek. Ha az egyessel bekarikázottakat átforrasztom, akkor semmire nem reagál a kijelző. Van még két forrasztási lehetőség, de nem szeretném kinyírni a kijelzőt próbálkozással. Remélem valaki látott már hasonló kijelzőt, és tudja, hogy mit kell még átforrasztanom rajta, hogy ne a kijelzőn lévő potival szabályozza a kontrasztot, hanem én a csatlakozóján keresztül tudjam.
Köszi

R0014680.JPG
    
(#) deguss válasza Tomi20 hozzászólására (») Jan 6, 2008 /
 
Szia!

Nekem is van ilyen kijelzőm, mit csinálsz a VLCD lábbal? Tedd le földre!
(#) Novak hozzászólása Feb 21, 2008 /
 
Sziasztok,

az a közismert probléma lépett fel nálam, hogy miután bekapcsolom az áramkört (L-C mérő), az egysoros, 16 karaketeres kijelzőn csak az első 8 karakter jelenik meg. Azt tudom, hogy mi a baja, csak nem értek a programozáshoz. Ha mindenigaz azt kellene megoldani, hogy 2X8 sorosként kezelje a kijelzőt. A vezérlése egyébként a felső 4 biten történik.
Aki esetleg tud benne segíteni, annak hálás lennék, ha átírná nekem a programban a megfelelő részt. Előre is nagyon köszönöm!
Csatoltam a forráskódot (+a hex-et, hátha kell valamire)
(#) kobold válasza Novak hozzászólására (») Feb 21, 2008 /
 
Valamelyik témában már megírtam a megoldást, csak nem találtam nagy hirtelen, pedig nemrég volt.
Két dolog kell az asm kódodba a kétsoros kijelzéshez. Egyrészt van benne egy ilyen rész:
; BTFSS FIXIT
; GOTO LINE2
Szándékosan írom kommentezve, mert a csatolt kódban is úgy van. A FIXIT egy bemeneti vonal kellene, hogy legyen, amit ha nullára kötsz, akkor kétsoros, ha 1 vagy lebeg, akkor egysoros a kijelzés. Abban a progiban, amit én láttam, RB4-re volt deklarálva ez a bemenet, de a te kódodban ez már foglalt, és a FIXIT nincs is deklarálva egyáltalán. Szóval azt kellene eldönteni, van-e a panelon olyan jumper, ami egy vonalat nullára tudna húzni, vagy valamelyik láb fel van húzva Vcc-re, esetleg üresen hagyva, és a program nem használja. Ha van, akkor valószínűleg az lesz az. Attól függően, melyik lábra megy, a kódba be kell írni egy #define FIXIT PORTx, 0x... deklarációt a többi bitszintű változó közé, ez a második változtatás, ami szükséges.
Ezután már csak nullára kell kötni azt a lábat, és kétsoros a kijelzés.
Amennyiben azonban nincs ilyen láb, akkor régebbi verziójú hw-d van egy széleskörűen kompatibilis progival, és csak akkor lehet belőle kétsorost csinálni, ha a panelt is módosítod (már ha van szabad láb).
(#) Novak válasza kobold hozzászólására (») Feb 22, 2008 /
 
Köszi a gyors választ, de őszinte leszek: nem sokat értettem abból, amit írtál. Mármint nem azért, mert rosszul írtad le, hanem mert nagyon buta vagyok a programozáshoz, meg LCD kezeléshez.
Szabad port már nincsen a PIC-en sajnos... Most csatolom a kapcsolási rajzot, hátha az segít neked valamiben. Amik vannak jumperek azok más célt szolgálnak (freki ellenőrzés, és kalibráció +/- irányban).

LCM2.gif
    
(#) kobold válasza Novak hozzászólására (») Feb 22, 2008 /
 
Előkerült a téma, meg is találtam.
Ennél a hsz-nél van egy link, olyan mérőhöz, mint ami neked is van, és ott van alatta a megoldás is. Előfordulhat, hogy még korábbi verziójú a panelod, és nem lehet kétsorosra bővíteni, de meg kellene nézni a honlapot, hogy megoldható-e valahogy. Kicsit most behavaztak, meg állást kajtatok, és nem nagyon tudok belemerülni.
(#) szilva válasza Novak hozzászólására (») Feb 22, 2008 /
 
Ha az asm-et újra tudod fordítani és az eredményt beégetni a PIC-be, akkor első körben érdemes lenne a kobold által is javasolt környéken kutakodni a programban.

Arra gondolok, hogy a "; GOTO LINE2" elől vedd ki a pontvesszőt. Ahogy néztem a kódot, ez majd a 9. karakter kiírásánál ugrana a második sorra, azt hiszem, pont ez kellene esetedben.
(#) Novak válasza szilva hozzászólására (») Feb 24, 2008 /
 
Átnéztem a forráskódot, azt hiszem meg is találtam benne azt a részt, ami a kijelzőért felelős. Itt a kommentekből ha jól veszem ki 2 soros LCD van definiálva. De ilyen goto line2-t sehol nem találtam. Szerintem ebbe a részbe kellene belenyúlni, amit csatoltam.
Tudna esetleg valaki segíteni, és átírná nekem, hogy egysoros LCD-t kezeljen?
Előre is nagyon köszönöm!

lcd.txt
    
(#) szilva válasza Novak hozzászólására (») Feb 24, 2008 /
 
Elnézést, természetesen nem GOTO, hanem CALL.

A korábban Általad betett "lc2.asm" file-ban néztem, van egy DATS rutin, ami a kijelzőre ír, abban van kikommentezve ez a "CALL LINE2" sor. Első körben azt kellene megpróbálni kivenni a kommentből (kitörölni a pontvesszőt), és újrafordítani a progit.

Az újrafordításhoz szükség van egy "FP.TXT" nevű, lebegőpontos számítási rutinokat tartalmazó file-ra is. Ez a Microchip AN575-ös application note-jában benne lévő forráskódból kibányászható, véleményem szerint az "FP24.A16" file-t kellene "FP.TXT" néven az "lc2.asm" mellé másolni a fordításhoz.

Microchip AN575
(#) kobold válasza Novak hozzászólására (») Feb 24, 2008 /
 
Itt van kikommentezve az asm, és a szükséges fp.txt-t is csatoltam.
(#) szilva válasza kobold hozzászólására (») Feb 24, 2008 /
 
Én ezt most lefordítottam Neked MPLAB-ból, de ezt megcsinálhattad volna Te is. Csatolom a HEX-et, remélem, így jó lesz.

lc2.HEX
    
(#) Novak válasza szilva hozzászólására (») Feb 24, 2008 /
 
Köszönöm szépen mindkettőtöknek, most már úgy működik, ahogy kell. Mind a 16 karakter aktív a kijelzőn.
Bocs, hogy ezzel háborgattalak titeket, csak tényleg nem értek a programozás részéhez. Mégegyszer nagyon köszönöm!
(#) szilva válasza Novak hozzászólására (») Feb 24, 2008 /
 
Szívesen. Ha már itt tartunk, elérhető panelterv van ehhez a kütyühöz?
(#) SzaboZE hozzászólása Márc 7, 2008 /
 
Sziasztok!

Úgy két hete megfogant a gondolat, hogy szeretnék egy LCD kijelzős egységet építeni, ami kijelez hőmérsékletet és időt. Azt a javaslatot kaptam, hogy induljak neki PIC-kel. Első lépésként ehhez beszereztem egy Chipcad-es PicKit2 készletet egy 44 pines demopanellel (16F887). Lelkesen össze is raktam az LCD kijelzővel, de semmilyen példaprogrammal se akar elindulni. Kivéve eggyel, de az is hibásan működik (csak a második sor jelenik meg a kijelzőn (mellékelve az asm file). Probáltam több kijelzővel is (4x20-as AV 20400 - http://www.datasheet4u.com/download.php?id=241776, illetve 2x16-os VFD http://www.datasheets.org.uk/pdf/60147.pdf). Utóbbival az említett program a második sort megjeleníti, de az első üres marad. Szóval kezd elmenni a kedvem tőle, mert akárhogy görcsölök még magaszintű nyelvekkel se akarnak menni (mikropascal, mikroc). Az LCD-k LPT porton számítógéppel hibátlanul mennek. Próbáltam 16F887, 16F876A, 16F886 PIC-eket, de csak nyűglődés és ugyanaz. Nem tudná nekem valaki szájbarágósan elmagyarázni, hogy induljak neki? Legjobban annak örülnék, ha magaszintű nyelven menne a dolog, mert a kezdeti szívások után gondolom a hőméréshez, órához a i2c se lesz egyszerűbb móka. Egy képet szúrok az elképzelt megvalósításról is. Előre is köszi a segítséget!
(#) szilva válasza SzaboZE hozzászólására (») Márc 7, 2008 /
 
Csodák nincsenek Az asm-be belenéztem, szerintem nagyjából jó is, de az időzítések nincsenek rendesen betartva, legfőképpen az inicializálásnál. Nekem az sem derül ki, milyen órajelről jár a PIC, így miért éppen 165 a 100us-os időzítés konstansa.

Belinkelem a HD44780U adatlapját, ebben a 45. oldaltól kezdve vannak folyamatábrák 8 és 4 bites inicializálási folyamatokra. Ezeket kellene követni!

Az adatlapot megnézve az is kiderül (24. oldaltól), hogy az utasítások elküldése után, ha nem használsz BUSY olvasást, akkor legrosszabb esetben 1.52ms-ot kell várni, adatok elküldése után pedig 37(+4) us-ot.

Ha az adatlapban leírt szekvenciát és időzítéseket betartod a programban, biztosan működni fog, nekem soha nem volt még gondom vele.

Néhány apró megjegyzés:
- az asm-ben a ",0" ",1" helyett ",w" ",f" használata sokkal beszédesebb lenne;
- egy ideig néztem, hogy mit is csinálnál a Timer1 és Timer2-kkel, aztán leesett, hogy az sima saját változó - csak kicsit megtévesztő a neve;
- időnként sokkal beszédesebbek a hexa vagy akár a bináris alakú konstansok, érdemes akkor azt használni a forrásban (és nem csak a megjegyzésbe beleírni a hexa alakot).


Bővebben: Link
(#) trudnai válasza SzaboZE hozzászólására (») Márc 7, 2008 /
 
Szatlakozva ahhoz amit Szilva irt, par nem megfeleloen kezelt dolog van a kodban ami nekem szemet szurt:

1. Radix MPASM-ben a default hex. Ha azt irod, hogy

Kesl100 movlw 165 ; 100us késleltetés

akkor W-be H'65' fog kerulni, emellett forditas kozben valoszinuleg kapsz egy figyelmeztetest hogy a szamodat csonkolta.

Ez meg vicces is ennek tudataban:
movlw 56 ; 38h=56 dec, 8 bit interface set

Ha radixot valtasz akkor az a forras kodod elejen legyen, igy az dokumentalva van, nem fuggenek project file-oktol, munkakornyezettol stb... Ha nem valtasz akkor D'56' vagy .56 (pont-otvenhat)...


2. Ha idozito rutinok fuggnek az orajeltol azt is erdemes megjegyezni, hogy a ciklus valtozok milyen orajelhez lettek illesztve - ill a legjobb lenne definialgatni az ilyeneket, pl megadod egy valtozonak az orajelet, es a varakozas merteket abbol szamolod ki. Mindez forditas soran kiertekelodik tehat a vegleges kod meretet ill futasi teljesitmenyt nem befolyasolja.


3. Ha PCL-hez hozza adsz akkor biztosnak kell lenned abban, hogy nem tortenik tulcsordulas. Azaz vagy org-gal kikenyszerited a tablad jo helyen legyen vagy kezeled a PCLATH-ot is (ill. ha olyan az MCU-d akkor PCLATU-t is...)
(#) SzaboZE válasza trudnai hozzászólására (») Márc 7, 2008 /
 
Köszönöm a válaszokat! Szilva, átrágom az adatlapot. Azt viszont továbbra se értem, hogy a magasabb szintű nyelvek rutinjai miért nem futnak. Gondolom ott visszaolvassák a Busy flag-et, nem?

Trudnai: Igen defaultban hex, ezt nem írtam, hogy át kell állítani decimálisra, úgy fut a program. A programot nem én írtam, csak egy picit faragtam rajta, hogy egyáltalán megjelenjen valami a kijelzőn. Teljesen elveszítettem a fonalat ugyanis, hogy semmivel nem akart elindulni egyik kijelzőm se. A vicc az, hogy több féle megoldást próbálgattam, próbáltam 4 biten is, de mind hiába C-ben vagy pascalban nem kéne ennek tök egyszerűen mennie?

Az órajel a PICek default beállításán van, nem állíitottam rajta.
(#) trudnai válasza SzaboZE hozzászólására (») Márc 7, 2008 /
 
Nem lehet, hogy itt 2* adod ki a resetet aminek nagyobb idozites kell es mar irnad az elso sort de meg a chip nem tert magahoz, aztan mikor a 2. sort irod akkor mar reset vegrehajtodott szoval a sor megjelenik?

movlw 56 ; 38h=56 dec, 8 bit interface set
call Write
call Kesl ; Busy flag olvasását "helyettesíti"


movlw 56
call Write

Tamas
UI: Minden LCD modul kicsit mas, foleg ha nem eredeti Hitachi, es ha mas az idozites, akkor elkepzelheto, hogy a kesz LCD rutinok nem mukodnek kielegitoen. Azonfelul elektronikai problemak is lehetnek - tap nem all fel idoben, adatvonal zajos vagy kapacitiv stb.
(#) szilva válasza SzaboZE hozzászólására (») Márc 7, 2008 /
 
Szia!

Magas szintű rutinokkal sosem próbáltam az LCD-t kezelni, fogalmam sincs, melyik mit csinál meg és mit nem. Asm-ben mennie kell.

Egy nagyon fontos dolgot elfelejtettem kiemelni: a bekapcsolás után kell időzítés, amíg az LCD tápfesze is feláll, valamint az LCD saját initje lefut. Ezt írja is a folyamatábrában az elején, sok ms időzítéssel. Azaz nem szabad azonnal nekiesni rögtön a reset rutinban, kell adni időt neki "észhez térni".

A másik, amire figyelni kell, az a trudnai által is kiemelt, parancsok utáni időzítés.
(#) SzaboZE válasza szilva hozzászólására (») Márc 8, 2008 /
 
Újrakezdtem az egészet. Valami nagyon fura, mert a tesztpanelen úgy látom, hogy többször fut le a program egymás után :?!? Elindult az LCD, azonban a kiírandó karaktert már nem akarja kitenni. Valami nem gömbölyű vagy a pickit-tel vagy a fordítással, mert szó szerint úgy látom, hogy többször fut végig a ciklus és szerencsétlen LCD nem érti mit akarok. Ezen az oldalon sikerült megértenem a folyamatot, ott működik is, de az asm program már nem fut rendesen. Esetleg tudtok valami jó időzítőrutint ajánlani egy külső oszcillátor nélküli 16f887-hez?

http://www.geocities.com/dinceraydin/djlcdsim/djlcdsim.html
(#) bbalazs_ válasza SzaboZE hozzászólására (») Márc 8, 2008 /
 
Watchdog ki van kapcsolva?
Tegyel egy rovid LED felkapcsolast a rutin elejere es egy masikat a vegere.
Következő: »»   6 / 16
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem