Fórum témák

» Több friss téma
Fórum » LCD kijelző vezérlés - PIC
Lapozás: OK   3 / 4
(#) TubySmith válasza TubySmith hozzászólására (») Márc 14, 2010 /
 
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)
(#) geq hozzászólása Szept 18, 2010 /
 
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
(#) skari73 hozzászólása Nov 1, 2010 /
 
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
(#) icserny válasza TubySmith hozzászólására (») Nov 1, 2010 /
 
Idézet:
„nem kell olyan kacifántos módon inicializálni, ahogy a doksijában le van írva.”
Az attól függ... A becsatolt program nem végez inicializálást, hanem az LCD modulra hagyja.

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.
(#) jdani hozzászólása Nov 25, 2010 /
 
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?
(#) lalca válasza jdani hozzászólására (») Nov 25, 2010 /
 
Tegyél egy diódát az aksi és a kondi közé.
(#) jdani válasza lalca hozzászólására (») Nov 25, 2010 /
 
ÉS megoldja a problémám? 1N4007?
(#) lalca válasza jdani hozzászólására (») Nov 25, 2010 /
 
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ó.
(#) jdani válasza lalca hozzászólására (») Nov 25, 2010 /
 
É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?
(#) SaNyEee1986 hozzászólása Feb 23, 2011 /
 
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!
(#) vilmosd válasza SaNyEee1986 hozzászólására (») Feb 23, 2011 /
 
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.
(#) MPi-c válasza SaNyEee1986 hozzászólására (») Feb 23, 2011 /
 
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!
(#) SaNyEee1986 hozzászólása Feb 23, 2011 /
 
Köszönöm a válaszokat! Sokat segítettetek
(#) mrcdcscc hozzászólása Jan 4, 2012 /
 
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.
(#) vilmosd válasza mrcdcscc hozzászólására (») Jan 5, 2012 /
 
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.
(#) szaboi válasza mrcdcscc hozzászólására (») Jan 5, 2012 /
 
Ü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:
(#) El_Pinyo válasza szaboi hozzászólására (») Jan 5, 2012 /
 
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!
(#) szaboi válasza El_Pinyo hozzászólására (») Jan 5, 2012 /
 
Természetesen így van ha assamblerben írodik a program, C-ben szimplán TRISC=0x02 például
(#) mrcdcscc válasza vilmosd hozzászólására (») Jan 5, 2012 /
 
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?
(#) vilmosd válasza mrcdcscc hozzászólására (») Jan 5, 2012 /
 
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.
(#) mrcdcscc válasza vilmosd hozzászólására (») Jan 5, 2012 /
 
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.
(#) vilmosd válasza mrcdcscc hozzászólására (») Jan 5, 2012 /
 
Idézet:
„Az MPLAB szimulátorát hogy kell használni?”
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.
(#) mrcdcscc válasza vilmosd hozzászólására (») Jan 6, 2012 /
 
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.

  1. LISTP=16F877
  2. #INCLUDE<P16F877.INC>
  3. __CONFIG _CP_OFF&_WDT_OFF&_XT_OSC
  4.  
  5. ;------------------[ MAKRÓK ]--------------------------------------
  6.  
  7. BANK0macro; Select register BANK 0
  8. bcf     STATUS,RP0
  9. bcf     STATUS,RP1
  10. endm
  11.  
  12. BANK1macro; Select register BANK 1
  13. bsf     STATUS,RP0
  14. bcf     STATUS,RP1
  15. endm
  16.  
  17. BANK2macro; Select register BANK 2
  18. bcf     STATUS,RP0
  19. bsf     STATUS,RP1
  20. endm
  21.  
  22. BANK3macro; Select register BANK 3
  23. bsf     STATUS,RP0
  24. bsf     STATUS,RP1
  25. endm
  26. ;==================[ P R O G R A M  K E Z D E T E ]================
  27. ;
  28. ORG0X000;PROCESSZOR RESET VEKTOR
  29.  
  30. GOTOINI_MAIN;UGRÁS A PROGRAM KEZDETÉRE
  31. ;
  32. ;==================[ M E G S Z A K I T A S V E K T O R ]============
  33. ;
  34. ORG0X004;EZ A 4H CIM
  35. ;
  36.  
  37. ;------------------[ INICIALIZALASOK ]------------------------------
  38. INI_MAIN
  39.  
  40. INI_PORT
  41.  
  42. BANK1
  43.  
  44. CLRF    TRISC
  45. CLRF    TRISD
  46. BANK0
  47. CLRF PORTC
  48. CLRF PORTD
  49.  
  50. ;------------------[ PROGRAM TENYLEGES KEZDETE ]--------------------
  51. MAIN
  52. BANK0
  53. MOVLW B'00000111'
  54. MOVWF PORTD
  55. MOVLW B'00000000'
  56. MOVWF PORTC
  57. GOTO $
  58. END
(#) mrcdcscc válasza vilmosd hozzászólására (») Jan 7, 2012 /
 
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.
(#) fsoregi hozzászólása Jún 11, 2012 /
 
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
(#) vilmosd válasza fsoregi hozzászólására (») Jún 12, 2012 /
 
Eloszor probald meg a kodot kod ablakban beirni. Jobban latnank mi a problema. Itt pl a
  1. #include
sor hianyos. Nalam igy nez ki:
  1. #include"flex_lcd.h"
Az eredeti LCD.C helyett jobban hasznalhato a flex_lcd.c amit a CCS forumrol letolthetsz kulombozo tipusu kijelzokhoz. Szabadon konfiguralhatok a labak, es valaszthato a Busy vagy delay hasznalata. A mellekletben a 2x16 karakteres valtozat talalhato, de a forumon talalsz minde meretu kijelzore megoldast. A hasznalata hasonlo mint a LCD.C
  1. lcd_init();
  2. lcd_putc( "\f Temp Control\n ");
  3. lcd_putc( "DV Electronics ");

flex_lcd.h
    
(#) fsoregi válasza vilmosd hozzászólására (») Jún 12, 2012 /
 
Szia

Köszönöm a tippet és segítséget
Estére kipróbálom ezzel a driverrel is.
(#) fsoregi válasza vilmosd hozzászólására (») Jún 12, 2012 /
 
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
(#) vilmosd válasza fsoregi hozzászólására (») Jún 12, 2012 /
 
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.
(#) fsoregi válasza vilmosd hozzászólására (») Jún 13, 2012 /
 
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?
Következő: »»   3 / 4
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