Fórum témák
» Több friss téma |
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
itt nézz szét már van ilyen téma
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.........
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
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...
Csillagos ötös! Nekem is ez volt az első gondolatom...
Sziasztok!
Sajnos ez nem jött be, már 2.2 V fölött magas a szint...
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 )?
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: 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.)
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álomKatona Ábel
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 LCD kijelző karakterekSziasztok!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!
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: Máj 2, 2025
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
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?
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: Máj 2, 2025
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.
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!
É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. |
Bejelentkezés
Hirdetés |




)valakinek esetleg van valami ötlete/meglátása vagy akármi ami segíthet?
) oldalt használom
végülis csak 4. éve tanulok elektronikát + apu elektromérnök.....azthiszem lesz valami "jutalom"..... 
