Fórum témák
» Több friss téma |
hi
hány PINes csatija van?, nekem is EL fóliás háttérvilágításos is van, olyan barnás a kijelző, csak sajna nicns inverterem, aztán nem tom működtetni. LCM-5xxx vagy valmi ilyesmi a kódja, de szerintem szabványos lábkiosztása van asszem húsz lába vna az enyémnek. sajna nicns rajtuk vezérlő, szóval elég nehézkes képet megjeleníteni ,de nekem is tervbe van véve az életrekeltése, ha lesz belőle valami szólok. üdv.
Hello. 4 csatlakozó van rajta. Egy 15, egy 13, egy 4 és egy 3 tűs csatlakozó. Rengeteg ic van rajta: 22db M52299, 1db LA5316, 1db TA75902F, 1db MB654824 (ez lehet a proci), 2db 74HC244A, és egy 4053BF. Este töltök fel róla képet. Ennek a fóliája 200-240Vról üzemel. (persze nem hálózatról
![]()
Van egy kis problémám kar. LCD ügyben, a segítségeteket kérném:
Szóval olyan progit akarok írni, ami vizsgál busy flag-et, ami röviden annyit tesz, hogy ha RS=0, és R/W=1, akkor, megnézi, hogy DB7 mikor vált 1-ről 0-ra, és utána jöhet a következő utasítás. Az első kérdésem az, hogy mennyi késleltetés legyen az adatkiküldés+engedélyezés és az olvasás közt. A HD44780 adatlapján ezt 3,18us-nak írták (1/270kHz), az eddigi tapasztalatom szerint ez kevés lesz, mivel egy karakterküldésre elvileg 30-40us-ot kell várni (nekem valamiért 100us-ot kellet várnom ![]() A másik, hogy az LCD szimulátor nem akarja kirakni a busy flag-et:http://www.geocities.com/dinceraydin/djlcdsim/djlcdsim.html Úgy próbáltam, hogy kiírtam egy karaktert, aztán rs0, rw1, de a db7 változatlan maradt, csak rinyált amikor az enable-t cseszegettem R/W közben. ![]()
A fenti hsz.-emben linkelt LCD szimulátor szerintetek tud busy flag-et ellenőrizni?
Mert szerintem nem. Ugyanezen az oldalon megtalálható utasítás szerint: Checking the Busy Flag To check the state of the busy flag and read the address counter -Set R/W Pin of the LCD HIGH(read from the LCD) -Select the instruction register by setting RS pin LOW -Enable the LCD by Setting the enable pin HIGH -The most significant bit of the LCD data bus is the state of the busy flag(1=Busy,0=ready to accept instructions/data).The other bits hold the current value of the address counter. *This is a 1-micro-second instruction. Ezzel az utasítással is hibaüzenetet írt ki...
Hello
Nekem is lenne egy problémám... Egy 1×16-os kijelzőre csak az első 8 karaktert tudom kiirni, a többi nem is látszik... Valakinek van ötlete mi lehet a gond?
Már annyit próbálkoztam vele, hogy kezdem azt hinni hogy esetleg valami hardwares gyári hiba okozza...
![]()
nekem nincs semmi zárlat meg ilyesmi, szal a HW jó.
te milyen környezetben használod az LCD-t? és milyen PIC-cel?
gyárira gondoltam, utolag kijavitottam... én AVR-t használok, assemlyben, most probapanelon van összedugva az egész...
Ha a kontrasztot feljebb veszem addig, hogy a nem kijelzett négyzetek is látszódjanak oldalrol, akkor is csak az elsö 8 kocka látszik, utána semmi sem... szoval mintha az a része halott lenne az LCD-nek...
![]() ![]()
Lehet már valahol leírták, vagy tudjátok is....
De az 1x16 Karakteres LCD valójában 2x8 karakteres vezérlésű... Szerintem itt kellene kezdeni a programban a hibakeresést...
És az első 8 után a címzés ha jól emlékszem nem folytatólagos....
hű erröl még nem hallottam... köszönöm szépen a választ, hozzá is látok a korrigáláshoz!
![]()
A második 8-as blokk $40H-címen kezdődik....
És akkor 1 vagy két soros LCD-ként kell kezelni?
no elővettem a 84A-s eredetit,
és ezeket: http://www.piclist.com/techref/piclist/weedfreq8x2LCD.htm http://www.chipcad.hu/download/f84tof62x.pdf valami alakult, de még nem jó :rinya:
Mintha 2-soros lenne...
A 9. karakternél hozzá kell adni a címhez 37H - t és akkor 40H-ra kerül a 9. karakter, ami a 2. sor 1. karaktere.
Működik
![]() ![]() ![]() ![]()
Nálam egy 16f877a hajtja meg a dem16216-os 2X16 K.-es LCD-t, és még busy flag nélkül is inicializási gondok vannak. Így csinálom:
-tápfesz be, 26ms várakozás -0010 => 4bit -Várakozás 1,6ms -10XX => 2sor, 5X7 karakterfelbontás -Várakozás 1,6ms -Várakozás 26ms . . . (ez 3-szor lefut) -0000 -1111 ;Kilelző be, kurzor aláhúz, villog -0000 ;Kijelző törlés -0001 Ezt a szekvenciát a szimulátorral való próbálkozás alapján írtam. Először azt hittem, hogy tökéletes, mert amikor ICSP-vel felraktam a progit, akkor ment. Viszont amikor csak simán rádugom a tápfeszt akkor gyönyörűen izzik a felső sor. Csak kb. 25-30 MCLR reset után műxik rendesen, mert vagy nem csinál semmit, vagy telekrakja hülyeséggel az első sort. ![]() A HD44780 (42.o) adatlapján lévő "4-bit interface" névre hallgató inicializálásra nem csinál semmit az LCD, sem a szimulátorban, sem a valóságban. ![]() Úgyhogy megvan a véleményem az "intelligens LCD modulról". Most írom a busy flag-es szubrutint, de nemtom mekkora időzítés legyen a két félbájt kiküldés közt, a sima rutinba 1,6ms-et raktam a karakterkiküldésben is, mert 40us-ossal nem ment (mert gondolom félbájtonként nem rak ki busy flag-et). Nincs semmi ötlet busy flag időzítés, és inic. -ra??? ![]()
Hmm... Itt először nem kapcsolják be az alsó sort, csak a második utasításra. Előszedem az ICSP-t, mindjárt kipróbálom
![]()
Szia!
En is sokat kinlodtam regebb amig rendesen mukodott minden a HD44780 alapu kijelzokon. Vegul sikerult egy jobb drivert osszehozni (avr,C) . lcd driver Amire erdemes odafigyelni az INITnel: -4 ,vagy 8 bites modban van.A ket modot nem szabad osszekeverni. Amit tapasztaltam: -hogy HD44780 alapu kijelzok nem mind egyformak az idozitesekben.Sot kozel sem egyformak! - egyik kijelzom sem az adatlap szerinti idozitest kivanta,hanem sokkal tobbet. -A toggle_E a legkritikusabb ido. -a tobbi a forrasban ![]()
Sajnos semmivel sem lett jobb azóta, pedig szinte minden összegoglezott doksi és progi alapján már megpróbáltam rá init írni.
Csak egy esetben működött: amikor a tápfesz ráadásától 15-20s után adom ki a parancsot! Persze már gyanús, hogy az LCD-vel van probláma. Így valszeg ki kell próbálni másikkal is. Sajnálom a mostanit mert egész szép piros háttérvilágítású inverz megjelenítésű lcd. Nem tudok c-ben progizni, így az általad belinkelt forrást még nem tudtam értelmezni. Nem tudnál nekem segíteni ebben? Csak nagy vonalakban kellene tudnom, hogy milyen időzítéseket és parancsokat ad ki inicializáláskor.
Én is nyűglődtem egy ilyen LCD-vel, csak az kék-inverz volt. Végül felhagytam az időzítésekkel, és inkább az LCD-től kérdem meg, hogy kész van-e... Azóta jól működik.
Nem olvastam at az egesz topicot.
Az LCD adatlapja megvan?Ez alapjan irtad a drivert? Mint mar emlitettem HD44780 alapu chippel szerelt 3 LCD kijelzom sem ugyanazokat az idozeiteseket kivanja! Atnezem a C forrast,hogy hogy van az INIT es majd irok.
Probaltam pseudoban leirni.
LCD_PORT: LCD_DB4-DB7 ig, RS es E(nable) //INIT kezd: LCD_PORT ra kiir 0-t. var > mint 40ms //4 bites mod DB5 = 1 toggle_Enable DB5 = 1 toggle_Enable DB7 = 1 (vagyis ket soros modba valtas,5X8 font) toggle_Enable var tobbet mint 39us //kijelzo ki,curzor ki,blink ki LCD_PORT = 0 toggle_Enable DB7 = 1 toggle_Enable var tobbet mint 39us //kijelzo torles LCD_PORT = 0 toggle_Enable DB4 = 1 toggle_Enable var ~1.6 ms-t //init vege! TOGGLE_ENABLE -rol megjegyzesek: a toggle_enable pulzus szellesseg (H level) minimum 230ns Nehany HD44780 alapu kijelzonel ahogy nekem mukodott: KS0065: ~25us, DEM16102SYH-PY: ~50us, HD44780: ~550 us
Köszi!
![]() A progit az LCD adatlapja szerint kezdtem el írni, de természetesen az időzítések túl rövidek voltak. Például: Karakterküldés esetén 40us-ot ír, de nekem 100us lett a megfelelő. |
Bejelentkezés
Hirdetés |