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   1 / 16
(#) Szergely hozzászólása Júl 6, 2006 /
 
Sziasztok!

A problémám a következő:
Rendeltem a ChipCADtől egy EW162G0YMY típusú 16x2 kijelzőt, de nemigazán akar működni. Úgy tűnik, hogy az inicializálásig eljut, de nem ír ki semmit.
Kapcsolás:
Pic16f628a - belső 4MHz-es osc, RB4-RB7: D4-D7-re kötve, RS:RB1, EN:RB3.
RW:GND-n.

Ennyit kéne kiírnia: Hello!

Szimulátoron megy. Valóságban nem. Mi lehet a probléma?

Hex, asm mellékelve
Üdv all
(#) bbatka válasza Szergely hozzászólására (») Júl 6, 2006 /
 
A kontrasztot tedd maximumra ! Az első LCD engem is megtréfált

(picit belenyúltam a végébe:
Idézet:
„Norberto”
)
(#) Szergely válasza bbatka hozzászólására (») Júl 6, 2006 /
 
Felcsavarom kakaóra, de a szöveg sehol.
Kicsit pontosítok:
-ha vezérlés nélkül kapcsolom be az áramkört (kiveszem a picet) akkor az első sor összes pixele izzik.
-ha "rendesen" kapcsolom be, akkor mind a két sor üres, (ha ráadom a max kontrasztot, lehet látni a sorokat, de nem olyan sötéten)

Az nem lehet gond hogy 50K-s potival hangolom a kontrasztot?
(#) Norberto válasza Szergely hozzászólására (») Júl 6, 2006 /
 
Milyen ASM fájl ez? Az a gyanúm, hogy HEX-ből visszafejtett Így kicsit nehézkes vele dógozni
(#) bbatka válasza Szergely hozzászólására (») Júl 6, 2006 /
 
Holnap délután előtt már nem tudok vele foglakozni. Majd leszimulálom én is. Ha szimulációban megy akkor élőben is muszály lesz neki.
(#) deguss válasza bbatka hozzászólására (») Júl 6, 2006 1 /
 
Idézet:
„Holnap délután előtt”
Miért nem írod, hogy holnap délelőtt?
Idézet:
„muszály”
muszáj!
Bocs, nem kötekedek, csak megütötte a fülemet.
(#) Norberto válasza deguss hozzászólására (») Júl 6, 2006 /
 
Hát még ha a szemedet szúrta volna :vigyor3:
(#) MaSTeRFoXX válasza Szergely hozzászólására (») Júl 6, 2006 /
 
Ha véletlen a programmal lenne gond, akkor itt van egy link ahonnan én megtanultam annó PIC-en LCD-t kezelni
[link=http://www.electronic-engineering.ch/microchip/index.html]http://www.electronic-engineering.ch/microchip/index.html[/link]

Valahol a projectek között kel keresgélni, LCD test programs
(#) Thomas10100 válasza Szergely hozzászólására (») Júl 6, 2006 /
 
Ha a kontraszttal lenne a gond akkor kösd simán a GND(Vss)-re, akkor max lesz a kontraszt, nekem működik!
(#) Szergely válasza Norberto hozzászólására (») Júl 7, 2006 /
 
Oshonsoft bácsi féle Picsimulator IDE Basic fejlesztője által generált ASM. Vannak benne LCD kezelő parancsok.(www.oshonsoft.com-ról)

Egyébként rákötöttem egy vadiúj ugyanolyan kijelzőre - ugyanaz történt.
Rákötöttem egy régebbi egysorosra, ott is hasonló eredmény.

Lehet, hogy "kicsit" megbízhatatlan a fejlesztő?
(#) bbatka válasza Szergely hozzászólására (») Júl 7, 2006 /
 
Nem hiszem. Sokmindent még nem tud kezelni a program, de amit megírt a fejlesztő az megbízható. Az LCD modul meg már 3 éve benne van a programjában. Kizárt hogy hibás.
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Este felé már többet tudok mondani. Megépítem én is hardveresen.
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Pont ilyen LCD-ből van nekem itthon 3db. Hát akkor nekilátok egy próbapanelen.
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Hát a szimulációban helyesen müködik az már tuti.
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Egy biztos a programban a Config biztik nincsenek beállítva. LVP ? IntRC io ?
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Nekem sem müködik. Gyanítom a késleltetési idő kevés. Most saját programmal próbálkozom.
(#) bbatka válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Na minden OK!!! Mellékelek egy programot. Ezt próbáld ki. A kontrasztot egy (3láb) kösd egy 100ohmos ellenálláson testre. És RW -> RB2-re. A hardver többi része úgyanaz. Ha leírod hogy mit ír ki az LCD akkor a basic programot is mellékelem.

TESZT2.hex
    
(#) kendtamas válasza bbatka hozzászólására (») Júl 7, 2006 /
 
Én nem néztem a linkelt progit, de az alábbi lehet segít.
Én is sokat szenvedtem az elő LCDvel, és az inicializálásnál volt a probléma, ki kell várni bizonyos időt, hogy a modul tényleg átkerüljön a megfelelő állapotba, pl 4bites adatátvitel.
Valamint mire rájöttem, hogy az LCD nem használt lábait nem szabad a levegőben lógva hagyni! logikai 'L'szintre kell tenni őket, külömben a levegőben lógva prelleznek és valójában nem azt az adatot kapja a modul amit te szeretnél!
Persze ez a IDCben szimulációs körülmények között nem derül majd ki

Tanácsolnám a gyári adatlapok (elég 1ilyen is) elolvasását, ahol korrekten és érthetően le vagyon írva.
(#) kendtamas válasza kendtamas hozzászólására (») Júl 8, 2006 /
 
Szerintem látatlanban is ebbe a hibába estél, azaz 4bites adatátvitelt használsz viszont az LCDmodul többi adatlába a levegőben lógva prellezik (lebeg L-H-L szinteken statikusan).
(#) bbatka válasza kendtamas hozzászólására (») Júl 8, 2006 /
 
Igen azt elfelejtettem hogy a nemhasznált lábakat én is testre kötöttem, de nem az volt igazán a gond hanem a mellékelt program amit feltett egy szimulációra felkészített progi. Amit mellékeltem programot abban már beállítottam a helyes inicializálási időt.
(#) gtk válasza bbatka hozzászólására (») Aug 27, 2006 /
 
Sziasztok!

Nekem is lenne egy kis LCD problemam:
1X16 karakteres kijelzore sehogy sem tudok 8 karakternel tobbet kiirni.

Az init igy nez ki:

  1. outp(0x03,PORT); toggle_E(); lcd_delay(5);      //wait 5ms
  2.   outp(0x03,PORT); toggle_E(); lcd_delay(1);    //wait 1ms
  3.   outp(0x03,PORT); toggle_E(); //lcd_delay(2);
  4.  
  5.   outp(0x02,PORT); toggle_E(); //lcd_delay(2);  //set 4-bit operation
  6.   outp(0x02,PORT); toggle_E(); //lcd_delay(20);
  7.  
  8.   outp(0x08,PORT); toggle_E(); //lcd_delay(2);  //4-bit operation
  9.                                                 //1/16 duty cycle
  10.                                                 // F=font, 1 for 5x11 dot matrix
  11.                                                 // 0 for 5x8 dot matrix  
  12.   outp(0x00,PORT); toggle_E(); //lcd_delay(2);
  13.  
  14.   outp(0x08,PORT); toggle_E(); //lcd_delay(2);  //Display off, cursor off, blink off  
  15.   outp(0x00,PORT); toggle_E(); //lcd_delay(2);
  16.  
  17.   outp(0x01,PORT); toggle_E(); //lcd_delay(2);  //clr  
  18.   outp(0x00,PORT); toggle_E(); //lcd_delay(2); 
  19.  
  20.   outp(0x06,PORT); toggle_E(); lcd_delay(300)//Increment cursor to the right
  21.                                                 //when writing, don't shift screen



Nos ez C -ben van!...
Elmeleti segitsegre,otletekre lenne szuksegem.

Koszonom!
(#) deguss válasza gtk hozzászólására (») Aug 27, 2006 /
 
Ez szerintem segít...
Állítsd be pl a "1-line" módot.

LCD.gif
    
(#) gtk válasza deguss hozzászólására (») Aug 27, 2006 /
 
Koszi a gyors valaszt!

Elfelejtettem irni hogy 4 bites modban hasznalom,de a forrasban levo megjegyzesekbol latszik is.Az adatlapot 6000000000x atneztem,sot sok mas forrast is,..4 bites modban 2 soros modban kell hogy legyen,ugy tudom..igy is van..
(#) deguss válasza gtk hozzászólására (») Aug 27, 2006 /
 
Ha már C-ben programozol, miért nem használod az lcd_putc() függvényt?
Pl így:

  1. #include \<18F4520.h\>
  2. #fuses HS,NOWDT,NOPROTECT,NOLVP
  3. #use delay(clock=20000000)
  4.  
  5. #include <lcd.c>
  6. #include <kbd.c>
  7. void main() {
  8.    char k;
  9.  
  10.    lcd_init();
  11.    kbd_init();
  12.  
  13.    lcd_putc("\fReady...\n");
  14.  
  15.    while (TRUE) {
  16.       k=kbd_getc();
  17.       if(k!=0)
  18.         if(k=='*')
  19.           lcd_putc('\f');
  20.         else
  21.           lcd_putc(k);
  22.    }
  23. }
(CCS EX.)
(#) gtk válasza deguss hozzászólására (») Aug 27, 2006 /
 
Koszi!

De, milyen libet hasznal ez?Mert en avrlibc -t hasznalok,abban nincs lcd kezeles alapbol.Volt egy kesz LCD driver forras,de az meg ugy sem mukodott mint amit en irtam..
Asszem megiscsak 1 line modban volt,most atirtam 2 line modra,mindjart kiporobalom..
(#) deguss válasza gtk hozzászólására (») Aug 27, 2006 /
 
Bocs, de nem teljesen világos valami.
A témakörnél is PIC szerepel, tudom nem te kreáltad a témát. Nem említetted egy szóval sem, hogy AVR-t programozol. Én végig PIC-ben gondolkoztam, meg a PIC C Compiler-ban.
AVR-ekhez (még) nem értek. Tanácsot se tudok adni a lib-ekkel kapcsolatban. Bocs.

Üdv.
p.m. de azért remélem összejön
(#) gtk válasza deguss hozzászólására (») Aug 27, 2006 /
 
Ok!

Bocsi,hogy nem emlitettem,ugyanis nem lattam ertelmet,mert itt LCD vezerles problema volt,es nem AVR programozas problema.

Azert kosz!
Udv!
(#) deguss válasza gtk hozzászólására (») Aug 27, 2006 /
 
Semmi gáz, ha új témát nyitottál volna érte , na... Az gáz lenne.
Sikerült a kétsoros mód?
(#) gtk válasza deguss hozzászólására (») Aug 28, 2006 /
 
Nem mukodik sem 1 soros sem 2 soros modban...Ilyen nincs.. :no:
(#) mspike válasza gtk hozzászólására (») Aug 28, 2006 / 4
 
Hello, ne feled, hogy az 1*16-os LCD úgy nézz ki, hogy 2*8 karakter, a második felét csak úgy érheted el, hogy eltolod a poziciót ! Próbáld meg kiadni a 0x80-as parancsot, ez elvileg az első pozició, ha jól emlékszem, na mármost, ha hozzá adsz aszem 0x40-et akkor kerül a második sorba (két sorosba inicializáld és add ki a 0xC0 parancsot, majd írkálj rá, szerintem ez már a 9. karaktertől fog kezdődni. Üdv.
Következő: »»   1 / 16
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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