Fórum témák

» Több friss téma
Fórum » LCD vezérlés-probléma
Lapozás: OK   1 / 1
(#) p3n3m hozzászólása Szept 17, 2009 /
 
Jóestét mindenkienk!
Van egy LCD-m aminek ks0066-os vezérló ic-je van(ez nagyjából ugyanaz mint a HD44780).Írtam hozzá programot egy pic26f16ka102-es microchipre, de valahogy nem működik...a chip 3.3 voltot ad ki ezért a kijelzőnek saját tápja van.Amikor bekapcsolom a kijelző tápját akkor feláll 1soros üzemmódba(alapbeállítás) tehát nem a kijelzővel van a baj...csatolom a programot mert szerintem abban van a hiba(legalábbis remélem mert külömben nemis tudom mivan )valakinek esetleg van valami ötlete/meglátása vagy akármi ami segíthet?
Előreis köszönöm:Katona Ábel

main.c
    
(#) Georgee válasza p3n3m hozzászólására (») Szept 17, 2009 /
 
itt nézz szét már van ilyen téma
(#) p3n3m válasza Georgee hozzászólására (») Szept 17, 2009 /
 
nekem igazából nem azzal van nehézségem hogy nem értem hogy hogyan kéne vezérelni(legalábbis lcd simulatorral müködött...Link) nekem valószínűleg a programozási részével van gondom.........
(#) Prinner válasza p3n3m hozzászólására (») Szept 17, 2009 / 4
 
Ha a felső sor jelenik meg csak, akkor inicializálás problémád van. Próbáld ki ezt a sorrendet, ez 4 bites módra inicializál, nálam működik hd44780-al kompatibilis kijelzőkkel:
Power-On Initialization -(SF_D<11:8> = db4-db7)/-
• Wait 15 ms or longer, although the display is generally ready when the FPGA finishes
configuration. The 15 ms interval is 750,000 clock cycles at 50 MHz.
• Write SF_D<11:8> = 0x3, pulse LCD_E High for 12 clock cycles.
• Wait 4.1 ms or longer, which is 205,000 clock cycles at 50 MHz.
• Write SF_D<11:8> = 0x3, pulse LCD_E High for 12 clock cycles.
• Wait 100 μs or longer, which is 5,000 clock cycles at 50 MHz.
• Write SF_D<11:8> = 0x3, pulse LCD_E High for 12 clock cycles.
• Wait 40 μs or longer, which is 2,000 clock cycles at 50 MHz.
• Write SF_D<11:8> = 0x2, pulse LCD_E High for 12 clock cycles.
• Wait 40 μs or longer, which is 2,000 clock cycles at 50 MHz

Display Configuration
After the power-on initialization is completed, the four-bit interface is now established.
The next part of the sequence configures the display:
• Issue a Function Set command, 0x28, to configure the display for operation on the
Spartan-3E Starter Kit board.
• Issue an Entry Mode Set command, 0x06, to set the display to automatically
increment the address pointer.
• Issue a Display On/Off command, 0x0C, to turn the display on and disables the
cursor and blinking.
• Finally, issue a Clear Display command. Allow at least 1.64 ms (82,000 clock cycles)
after issuing this command.

További információk: Bővebben: Link
(#) zolee1209 válasza p3n3m hozzászólására (») Szept 18, 2009 /
 
Szia!
Nézd meg a kijelződ adatlapját, mekkora feszültség számít logikai H szintnek. Lehet, hogy a 3,3V még nem elég a H szint kiváltásához az LCD-nél...
(#) SzervízMacska válasza zolee1209 hozzászólására (») Szept 18, 2009 /
 
Csillagos ötös! Nekem is ez volt az első gondolatom...
(#) Hp41C válasza zolee1209 hozzászólására (») Szept 18, 2009 /
 
Sziasztok!

Sajnos ez nem jött be, már 2.2 V fölött magas a szint...

KS0066.pdf
    
(#) SzervízMacska válasza p3n3m hozzászólására (») Szept 18, 2009 /
 
Szia! Ellenőrizted az adatlap alapján, hogy az lcd vezérléséhez felhasznált lábak:
- kivétel nélkül digitális kimenetként vannak-e konfigurálva;
- nem nyitott kollektoros valamelyik kimenet ( mert akkor oda felhúzó ellenállás kell )?
(#) zolee1209 válasza Hp41C hozzászólására (») Szept 18, 2009 /
 
Hmmm... Nem gondoltam volna, hogy "ilyen alacsony" fesz is jelenthet magas szintet! Most már ezt is tudom. Sajnos ezek után nem tudom, miért nem működik a kijelző... :no:
(#) watt válasza zolee1209 hozzászólására (») Szept 18, 2009 /
 
Idézet:
„Nem gondoltam volna, hogy "ilyen alacsony" fesz is jelenthet magas szintet!”

Pedig ez elég elterjedt érték a TTL-ben. (1,8V ...2,5V között szokott lenni.)
(#) p3n3m válasza SzervízMacska hozzászólására (») Szept 18, 2009 /
 
szerintem ha nem configurálom külön alapbeállításban minden digitális és nem nem nyitott kollektoros...de azért a biztonság kedvéért megnéztem az adatlapot és analóg lábak csak a "bal" oldalon vannak és én csak a "jobb"(na ez aztán tudományos fogalmazás... ) oldalt használom
Katona Ábel
(#) p3n3m válasza p3n3m hozzászólására (») Szept 18, 2009 /
 
MŰKÖDIK!
else hinnétek hogy milyen amatőr hibát vétettem..... az lcd külön tápjának a földjét nem kötöttem össze a pickit földjével...... végülis csak 4. éve tanulok elektronikát + apu elektromérnök.....azthiszem lesz valami "jutalom".....
de legalább működik!
Köszönöm mindenkinek az ötleteket:Katona Ábel
(#) Laja1 hozzászólása Pé, 12:34 /
 

LCD kijelző karakterek

Sziasztok!

Kétsoros LCD kijelzővel kapcsolatban kérdeznék. 4 bites vezérléssel íratok ki számokat. Minden jól is működik, de a mellékelt karakter táblázat szerint pl. a 0 kódja 0x30 lenne. De csak akkor ír ki 0-t, ha a 0x30 helyett 0x48-t írok be. Miért lehet ez? El lenne csúszva a táblázat (ezt nem gondolnám) vagy ez a táblázat nem az én kijelzőmhöz való?

Köszönöm!

LCD.pdf
    
(#) tki válasza Laja1 hozzászólására (») Pé, 12:57 /
 
0x30, az pontosan decimális 48. Vagyis ott keresd a hibát, ahol az a szám átalakításra vagy felhasználásra kerül. : -)
A hozzászólás módosítva: Pé, 12:58
(#) Gabtronic válasza Laja1 hozzászólására (») Pé, 13:15 / 1
 
Szia,
A CGROM memóriacímek címei megegyeznek az ASCII karaktereivel. Ha az éppen futó program a „P karakter küldése a portra” parancsot kapja, akkor a porton a 0101 0000 bináris érték jelenik meg. Ez az érték a P karakter ASCII megfelelője. Ezután egy LCD-re íródik, aminek eredményeként a CGROM 0101 0000 helyéről származó szimbólum jelenik meg. Más szóval, a „P” karakter jelenik meg. Ez az ábécé minden betűjére vonatkozik (nagy- és kisbetűkre), de a számokra nem. Amint az előző térképen látható, minden számjegy címe 48-cal előrébb van tolva az értékéhez képest (a 0. számjegy címe 48, az 1. számjegy címe 49, a 2. számjegy címe 50 stb.). Ennek megfelelően a számjegyek helyes megjelenítéséhez mindegyikhez hozzá kell adni a 48-as decimális számot, mielőtt az LCD-re küldenék őket.

ASCII 48 = Hex 30 = 0

ascci.JPG
    
(#) Laja1 válasza Gabtronic hozzászólására (») Pé, 16:42 /
 
Köszönöm szépen, hogy leírtad ilyen részletesen. De azért zavaros még mindig nekem, mert pl. számoknál tényleg igaz ez a 48-al való eltolás, de karaktereknél (nem betűknél) mintha nem így volna. Ha a portra 58-t küldök, akkor ez a kettős pont ASCII kódjának felel meg, szépen meg is jelenik a kettős pont. De ha 20-t küldök ki a portra, akkor nem az ASCII=20-nak megfelelő DC4-t írja ki, hanem egy üres karaktert (szóközt), aminek a HEX kódja 20, de az ASCII kódja 32. Tehát azt honnan tudhatom, hogy mit küldjek a portra, az ASCII kódját vagy az LCD adatlapon lévő HEX kódját?
(#) Bakman válasza Laja1 hozzászólására (») Pé, 16:53 /
 
A kijelzők általánosan három karakterkészlettel kerülnek forgalomba:

angol - japán
angol - európai
angol - cirill

Csak az angol - európai karaktertáblában van karakter a 20-as (0x14) pozícióban (tulajdonképpen ott is szóköz van). Lásd melléklet 27, 28 és 29. oldalát.
A hozzászólás módosítva: Pé, 16:53

LCD 2x16.pdf
    
(#) tki válasza Laja1 hozzászólására (») Pé, 17:08 / 2
 
Minden eddigi állításodból az látszik, hogy decimális számokat használsz a kódban (és nem karakterváltozókat), így nem csoda, hogy a 48-ra látod a nullát. Két tévedésed van:

- az egyik, hogy te 0x48-at írtál ki, de ez nem lehet, mert a nulla kódja a decimális 48, tehát azt írattad ki,
- a másik, hogy a táblázat "DC4" szövege alapján azt hitted, valami olyat kell látni a kijelzőn, és ha semmit sem látsz, akkor az a szóköz kódja (a 32), és ez összezavart.

Mivel az eredeti kérdésed csak annyi volt, hogy miért van ez a "csúszás", azt szerintem sikerült megválaszolni. A többi azon múlik, hogyan állítod elő ezeket a számokat.

Ha például az okoz konkrét problémát, hogy nehézkesen tudsz egy karaktert vagy számot kiíratni, kényelmetlen a kód, nem tudod, mikor lehet karaktereket beírni és mikor számokat, ahhoz a kódot kell látni, hogy segíteni lehessen, lépésenként elmagyarázni, mi történik és eloszlatni a kétségeket. Célszerű ilyenkor egyből minden információt megadni.
(#) Laja1 válasza tki hozzászólására (») Pé, 17:36 / 1
 
Most értettem meg! Tényleg összekevertem a hexadecimális és a decimális számokat! Minden világos.
Még egyszer köszönöm!
(#) Bakman válasza Laja1 hozzászólására (») Pé, 17:53 /
 
Én elvesztettem a fonalat. Az egyik hozzászólásod szerint kevered a decimális és hexadecimális számokat, a másik szerint pedig nagy valószínűséggel angol-japán karakterkészletű kijelződ van.

58: kettőspont (stimmel)
20: szóköz (stimmel a fenti keijlező esetén)

Egyébként tudod tesztelni a kijelződ egyszerűen, végigpróbálod az összes karaktert 0 - 255 -ig, így láthatod, milyen karakterkészlettel rendelkezik. 0 - 15 -ig egyedi karakterkek tárolhatóak, nyolc darab. 0 - 15 -ig 16 hely van, gyakorlatilag 8 - 15 -ig ismétli a 0 - 7-es helyen lévőket, így jön ki a nyolc egyedi.
(#) Laja1 válasza Bakman hozzászólására (») Pé, 18:06 /
 
Igen, végig teszteltem. Decimális számokat használok és aszerint minden rendben van. Köszönöm.
Következő: »»   1 / 1
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