Fórum témák
» Több friss téma |
Fórum » LCD kijelző vezérlés - PIC
Témaindító: Net_Boy_debr, idő: Aug 23, 2008
Témakörök:
megoldódott!, de én le is írom, hogy melyik működött, hogy másnak ne kelljen napokat szívni, mire kiírja hogy HELLO WORD!
nem kell olyan kacifántos módon inicializálni, ahogy a doksijában le van írva. Leirás Winpicprog-on (angol)
Sziasztok!
Van egy HITACHI LMG9300XUCC képernyőm. Tudna valaki segíteni, hogy mivel lehet vezérelni (esetleg USB EXPLORER-el) ? És, hogy hány voltot kapcsoljak rá? Előre is köszönöm! geq
Sziasztok,
én is szenvedtem rc1602 -vel, mert a 3. lábát 4,7 k ellenállással nem negatívra kötöttem, hanem + 5V- ra. Így a kijelző ment ugyan, de semmit nem lehetett látni rajta. HELLO WORLD (helyesen) üdv:skari Idézet: Az attól függ... A becsatolt program nem végez inicializálást, hanem az LCD modulra hagyja.„nem kell olyan kacifántos módon inicializálni, ahogy a doksijában le van írva.” Néha azonban szükséges, hogy a PIC is tudja inicializálni az LCD-t (ha pl. nem Power up, hanem más típusú újraindulás történt, vagy "menet közben" meg akarjuk változtatni az LCD üzemmódját). Ilyenkor elkerülhetetlen a "kacifántos módú" inicializálás - ami valójában nem is olyan kacifántos.
Helló. Motorra tettem LCD kijelzőt. Jelzi a számokat, viszont amikor dudálok megbolondul a kijelzés. Természetesen akksiról veszi az áramot, stabilizálva, 1000µF-vel szűrve. Azt hiszem a duda úgy működik, hogy a tekercs magához vonzza avas lemezt, ami kiadja a hangot, de egyben zárlatot is, és elengedi a vasat, de ekkor újra magához vonzza. És ez a zárlat okozza az LCD, vagyis a PIC program megbolondulását? Hogyan korrigálhatom?
Tegyél egy diódát az aksi és a kondi közé.
Legalábbis a kondin megmarad a fesz.Aztán majd kiderül kell-e további szűrés.Igen,a 4000-es sorozat jó.
ÉS amikor megyek mocival, a fordualt is bezavar, és a kijelző befagy. (az előző esetben hülye karaktereket írt ki) De msot minden számérték ugyanolyan marad. Erre is jó a diódás megoldás?
Sziasztok!
Van egy EW13B36BMW típusú grafikus LCD kijelzőm és érdekelne, hogy honnan tudhatom meg, hogy tudja-e a 4 bites üzemmódot? A neten található pdf-ekben nem találtam meg a kérdésemre a választ, nagyon megköszönném ha valaki tudna nekem ajánlani hozzá forrást. Pic16f84-el akarom meghajtani, de csak 9 lábam maradt szabad, az LCD kijelző vezérléshez pedig minimum 10 láb kellene. Ezért akarom megtudni, hogy tudja-e a 4 bites üzemmódot, mert akkor 6 láb elég lenne. Előre is Köszönöm!
Hali
Gondolom KS107-108 vezerlovel van megcsinalva. Esetleg azok adatlapja tudna segitseget nyujtani. Amugy is egy 16F84-re grafikus displayt kotni a mai vilagban mar egy kicsit mereszseg. Inkabb kellene venni valami 16F690, 886, 887 kornyeki uC-t, amiben sokkal tobb a memoria, es sokkal tobb funkciot epitettek bele. Es raadasul sokkal olcsobb.
Szerintem is KS0108 vezérlő van rajta. Ezt a grafikus LCD-t nem fogod 6 lábbal vezérelni, kell neki 14...
Keres "KS0108"-ra!
Köszönöm a válaszokat! Sokat segítettetek
Sziasztok!
Kb 2 hónapja kezdtem el hobbi szinten ismerkedni a mikrovezérlőkkel, azok közül is a PIC-cel, mivel először ebbe botlottam bele a neten, aztán itt is találtam jó cikkeket, meg a könyvtárban is könyvet (PIC mikrovezérlők alkalmazástechnikája). Természetesen a LED villogtatással kezdtem, aztán 2 digites 7 szegmenses kijelző multiplexelésével a TIMER0 számlálót felhasználva megszakítással, majd a kijelzőn a számokat gombnyomásra növelni, a gombnyomást szintén megszakításkezeléssel figyelve. A következő lépés LCD kijelző vezérlése lenne. Elolvastam ehhez is cikkeket (Az intelligens LCD modulok használata 1,2), megcsináltam ezen cikkekben levő mikrovezérlő nélkül, kapcsolókkal való LCD működtetést, 4 bites módban, ez működött is. Rákötöttem a PIC16F877-es mikrovezerlő C portjára. Szintén 4 bites módban szeretném vezérelni, így D4-D7 adatvonalakat rákötöttem a PORTC 4-7 lábára, az enable-t a PORTC,3-ra, az R/W-t a PORTC,2-re és az RS-t a PORTC,1-re. A problémám az, hogy ha a PORTC-re B'00000000'-t adok rá akkor is az RS kivezetésén 5V-ot mérek. És nem is akar működni emiatt, hiszen ahhoz, hogy egyáltalán be tudjam kapcsolni, parancs módban kell legyek, azaz az RS kivezetésnél 0V kellene legyen. Esetleg valaki találkozott már ezzel a problémával? Az LCD típusa: DEM 20486 SYH-LY. Természetesen az adatlapját letöltöttem a netről.
Szoval.. A "PIC kezdo" topikban siman belefert volna. De a port inicializalasnal ki kell kapcsolni minden mas periferiat, mert ugye egyes labak multifunkciosak. Amikor mar minden digitalis utana a Tristate funkcioval kimenetnek kellene allitani. Utana johet a LCD init, majd a kiiras. Persze egyszerubb a MPLAB szimulatoraban vegigkiserni a mukodest, es ha mar minden klappol akkor beegetni a PIC-be. Ajanlanam a gyujtemenyemet, aholis talasz PIC-es temakban doksikat, mintapeldakat, demo panelokat, es meg sok minden mast.
Üdv!
A C port irányát beállítottad, hogy ki vagy bement legyen?? Kezdőként én is elfelejtettem beállítani a TRIS regisztert vagy nem kapcsoltam ki a porthoz tartozó perifériákat és okozott meglepetéseket :yes:
Annyival még kiegészíteném a hozzászólásodat, hogy figyelni kell arra is, hogy a TRISC regiszter a Bank1- ben van, tehát előbb át kell váltani pl. a BANKSEL makró segítségével a megfelelő bankba, majd vissza kell váltani a PORTC (Bank0) bankjába és csak ezután lehet értéket adni a PORTC regiszternek.
Természetesen ez a kérdezőnek szól!
Természetesen így van ha assamblerben írodik a program, C-ben szimplán TRISC=0x02 például
Köszönöm a tanácsokat. A BANK választásokat megcsináltam. Az LCD-t a PORT C-re kötöttem, TRISC-be B'00000000'-tettem, azaz kimenetnek állítottam. A PORTC-be B'00000000'-töltve minden lábon 0V-ot mérek, kivéve a PORTC,1-re kötött RS kivezetésen.
A 16F877 mikrovezérlő adatlapja szerint a PORTC,1-es láb egyben T1OSI (TImer1 oscillator input) és CCP2 (capture2 input / capture2 output / PWM2 output) láb is. Elképzelhető tényleg, hogy ez a probléma, és le kell tiltani ezeket. Ezeket a T1CON és CCP2CON regiszterekkel lehet leállítani?
A T1CON es a CCP2CON regiszterek termeszetesen irhatok es olvashatoak (lasd adatlap). Viszont alaphelyzetben mindketto ki van kapcsolva. Tehat ott valami mas csereptores lehet, nem a periferiak okozzak ezt. Lehet esetleg valami zarlat a LCD kornyeken. Jo lenne ha feltenned a programodat, hatha talalnank benne valami hibat. A masik amit mar elobb is mondtam: a MPLAB szimulatoraval vegig kellene kiserni a programot lepesrol lepesre. Konnyebb igy keresni a hibat, mint talalgatni.
MPLAB-ba írom a programot, de eddig csak a program begépelésére és lefordítására használtam. Az MPLAB szimulátorát hogy kell használni?
Felteszem majd a programot és a kapcsolásomat is, de ezek otthon vannak, majd csak valamikor este tudom. Idézet: A "Debugger" fulon ki tudod valasztani. A "View" fulon pedig ki lehet valasztani mit akarsz latni a debug alatt. Be lehet allitani a SFR ablakot, a Watch ablakot, ahol lathatoak a munkaregiszterek. Persze a MPLAB tartalmaz "Help" funkciot is, ami ezeket igen reszletesen elmagyarazza. Esetleg keress ra a Konya, vagy a T-es-t oldalakon hatha van magyar leiras is hozza. Itt is egy leiras. „Az MPLAB szimulátorát hogy kell használni?”
A következő dolgokra jöttem rá. Ha az LCD-re csak a GND-ot és az 5V-ot kötöm rá az 1 és 2 lábakra, akkor az LCD 4 (RS) és 5 (R/W) lábain 5V-ot mérek.
Az LCD-t rákötöttem a mikrovezérlőre, 4 bites módban. Azaz a PORTC4-7-et rákötöttem az LCD D4-D7 lábára, a PORTC1-3-at az LCD 4 (RS), 5 (R/W) és 6 (E) lábára. Ha a PORTC-re B'00000000' jelet adok rá, akkor az LCD-n a bekötött lábak közül mindenhol 0V-ot mérek, kivéve a PORTC,1-re kötött lábon. Namost ha ezt átkötöm a PORTC,0-ra, akkor már itt is 0V-ot mérek. Vagy az LCD 5-ös lábát kötöm rá a PORTC,1-re, akkor ott lesz 5V. Tehát a PORTC,1-el van valami. Ez nem tudja GND-ra hozni az LCD lábát. Megcsináltam, hogy a PORTC-re B'00000111'-at küldtem, és a PORTC,0-n és PORTC,2-n 5V-ot mértem, a PORTC,1-n csak 0,02V-ot. Tönkrement a mikrovezérlő PORTC,1 lába? Az alábbi programkódot használtam, aminek csak annyi lenne a célja, hogy az LCD lábain tesztelni tudjam, hogy 0V-ot mérek-e. Mivel az LCD beindításához az RS lábon 0V-nak kell ugyebár lennie, hogy parancs módban legyek.
Na úgy néz ki, megtaláltam a problémát. A mikrovezérlő próbapanelba van közvetlenül beledugva. És eddig a lábai melletti lukakba dugott vezetékek végein mértem a fesazültséget. Most viszont megmértem közvetlenül a PORTC,1 lábon, és ott már 5V jön. Megnyomkodtam a mikrovezérlőt a próbapanelba, és már a vezeték végén is mérni lehet az 5V-ot.
Hát elég lúzerságnak tűnik, hogy ez volt a probléma, de nemrég még a PORTC-re a 7szegmenses kijelző volt rákötve, és az ment rendesen, nem gondoltam, hogy valami érintkezési gond lesz. Mindenesetre ezen is tanultam és tapasztalatot szereztem.
Sziasztok
PIC16F877-el CCSC-ből vezérelnék egy HD44780 LCD kijelzőt. Az LCD.C fájlban két módszert ír az LCD bekonfigurálására. A PORT és a PIN access-t. Próbáltam mindkét módon de sajnos nem működik. Az LCD a következő képpen van bekötve: ENABLE - B0 RS- B1 RW - B2 D4 - B4 D5 - B5 D6 - B6 D7 - B7 A kód pedig így néz ki: #include <16F877.h> #FUSES NOWDT, XT, NOPUT, NOPROTECT, BROWNOUT, NOLVP, NOCPD #use delay(clock=4Mhz) #define LCD_ENABLE_PIN PIN_B0 #define LCD_RS_PIN PIN_B1 #define LCD_RW_PIN PIN_B2 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7 #include void main() { delay_ms(1000); // LCD inicializálása lcd_init(); lcd_gotoxy(1,1); lcd_putc("HELLO HE!"); while (1) { } } Mi az amit elrontok szerintetek? Üdv Feri
Eloszor probald meg a kodot kod ablakban beirni. Jobban latnank mi a problema. Itt pl a
Szia
Köszönöm a tippet és segítséget Estére kipróbálom ezzel a driverrel is.
Szia
sajnos ezzel sem megy... Még egy kérdés: ha a kijelző rendesen van bekötve de nincs kiküldve rá semmi, akkor a karakterek helyén a téglalapoknak látszódnia kell vagy sem? Én arra gondolok, hogy esetleg a kontraszt beállítás miatt nem látszik semmi a kijelzőn. Ez lehet? Üdv Feri
Termeszetesen latszani kell a kockaknak ha kap tapot. A helyes bekotes az E, a RS a D4-D7 a PIC-re, a D0-D3 GND. A kontraszt 4k7 ellenallas felul, 1k poti alul. Akkor meg kellene jelennie kockaknak. A RW GND-re kotheto, es a "flex_lcd.h" def vagy use RW komment. Igy altalaban minden kijelzo beindul. Vannak viszont egyes tipusu kijelzok amiknek -5V kornyeki kontraszt fesz kell. Akkor egy cd40106, vagy cmos 555 segitsegevel csinalni kell egy negativ tapot. A "flex_lcd.h" ban be kell allitani a tenyleges labakat.
Az igaz, amit egy másik fórumban olvastam, hogy az E-t másik portra kell kötni mint az RS, RW lábakat?
|
Bejelentkezés
Hirdetés |