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 ![]() 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!
![]() 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...
![]() Katona Á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...... ![]() ![]() ![]() ![]() ![]() 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: Pé, 12:58
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: Pé, 16:53
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 |