Fórum témák

» Több friss téma
Fórum » Karakteres LCD-k meghajtása, vezérlése
Lapozás: OK   4 / 17
(#) vicsys válasza boomerang hozzászólására (») Ápr 8, 2010 /
 
1k~10k-s poti egyik szélső=+5V, másik szélső=GND, közepe(csúszka)=LCD kontraszt.
Bővebben: Link
(#) boomerang válasza vicsys hozzászólására (») Ápr 8, 2010 /
 
Hagyhatom a poti GND-re menő lábát lógva ?
(#) vicsys válasza boomerang hozzászólására (») Ápr 8, 2010 /
 
Persze. Csak akkor nem fog működni. Kb. 04-06V kell a V0 lábnak.
(#) boomerang válasza vicsys hozzászólására (») Ápr 8, 2010 /
 
Okés úgy csinálom ahogy mondtad. Köszi szépen.
(#) boomerang hozzászólása Ápr 14, 2010 /
 
Hello !

Hagyományos karakteres lcd.....
Ha a 8 adatláb közül csak 4-et akarok használni akkor mindegy hogy melyik négyet ? Illetve a többit le kell földelni vagy ilyesmi ?

Köszi
(#) pipi válasza boomerang hozzászólására (») Ápr 14, 2010 /
 
44780 a felső 4-el működik, általában az alsó 4 bit közömbös, én le szoktam kötni földre
(#) vBalu hozzászólása Ápr 15, 2010 /
 
Sziasztok!
Ha volna egy kis időtök és ránéznétek a kódomra, h mi a bántért nem inicializálja a 2x16 os kijelzőmet hálás lennék érte:

bekötés rendben van, kontakt hiba ilyesmi nincs, az LCD 16f-es pic-vel megy, 18f-vel nem tudom megszólaltatni.
Köszi!

LCD2.h:

#define use_portb_lcd TRUE


struct lcd_pin_map { // This structure is overlayed
BOOLEAN enable; // on to an I/O port to gain
BOOLEAN rs; // access to the LCD pins.
BOOLEAN rw; // The bits are allocated from
BOOLEAN unused; // low order up. ENABLE will
int data : 4; // be pin B0.
} lcd;


#if defined use_portb_lcd
//#locate lcd = getenv("sfrORTB") // This puts the entire structure over the port
#ifdef __pch__
#locate lcd = 0xf81
#else
#locate lcd = 6
#endif
#define set_tris_lcd(x) set_tris_b(x)
#else
//#locate lcd = getenv("sfrORTD") // This puts the entire structure over the port
#ifdef __pch__
#locate lcd = 0xf83
#else
#locate lcd = 8
#endif
#define set_tris_lcd(x) set_tris_d(x)
#endif

#ifndef lcd_type
#define lcd_type 2 // 0=5x7, 1=5x10, 2=2 lines
#endif

#define lcd_line_two 0x40 // LCD RAM address for the second line


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
// These bytes need to be sent to the LCD
// to start it up.


// The following are used for setting
// the I/O port direction register.

struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; // For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in



BYTE lcd_read_byte() {
BYTE low,high;
set_tris_lcd(LCD_READ);
lcd.rw = 1;
delay_cycles(1);
lcd.enable = 1;
delay_cycles(1);
high = lcd.data;
lcd.enable = 0;
delay_cycles(1);
lcd.enable = 1;
delay_us(1);
low = lcd.data;
lcd.enable = 0;
set_tris_lcd(LCD_WRITE);
return( (high<<4) | low);
}


void lcd_send_nibble( BYTE n ) {
lcd.data = n;
delay_cycles(1);
lcd.enable = 1;
delay_us(2);
lcd.enable = 0;
}


void lcd_send_byte( BYTE address, BYTE n ) {

lcd.rs = 0;
while ( bit_test(lcd_read_byte(),7) ) ;
lcd.rs = address;
delay_cycles(1);
lcd.rw = 0;
delay_cycles(1);
lcd.enable = 0;
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);
}


void lcd_init() {
BYTE i;
set_tris_lcd(LCD_WRITE);
lcd.rs = 0;
lcd.rw = 0;
lcd.enable = 0;
delay_ms(15);
for(i=1;i<=3;++i) {
lcd_send_nibble(3);
delay_ms(5);
}
lcd_send_nibble(2);
for(i=0;i<=3;++i)
lcd_send_byte(0,LCD_INIT_STRING[i]);
}


void lcd_gotoxy( BYTE x, BYTE y) {
BYTE address;

if(y!=1)
address=lcd_line_two;
else
address=0;
address+=x-1;
lcd_send_byte(0,0x80|address);
}

void lcd_putc( char c) {
switch (c) {
case '\f' : lcd_send_byte(0,1);
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2); break;
case '\b' : lcd_send_byte(0,0x10); break;
default : lcd_send_byte(1,c); break;
}
}

char lcd_getc( BYTE x, BYTE y) {
char value;

lcd_gotoxy(x,y);
while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low
lcd.rs=1;
value = lcd_read_byte();
lcd.rs=0;
return(value);
}


#include <18F6622.h>

#fuses NOWDT,NOPROTECT,NOLVP,INTRC_IO
#use delay (clock= 10000000)
#include "LCD2.h"

void main()
{ lcd_init();
for(;{
output_high(PIN_G3);
lcd_gotoxy(1,1);
printf(lcd_putc,"Hola Mundo ESP");
lcd_gotoxy(1,2);
printf(lcd_putc,"Hello Word ENG");
}
}>>>>
(#) (Felhasználó 56240) hozzászólása Ápr 16, 2010 /
 
Sziasztok
Vettem egy PQC1601A1-SYL karakteres kijelzőt és nem találok normális dokumentációt a lábkiosztásról valaki, tud segíteni?
(#) chriskross hozzászólása Ápr 28, 2010 /
 
Sziasztok!

Pár napja LCD-PIC kombinációval szórakozom, de az LCD nem csinál semmit... Egyelőre csak annyit kellene csinálnia, hogy megjeleníti a kurzort és villog. PIC simulatoron rendesen megy, de a kapcsolásban nem akar életre kelni... Mindent jól kötöttem össze, ellenőriztem már jó párszor. (DB-ket RB-kel, vezérlők RA0, RA2) RW földön.
A kijelző típusa: EW16410BMW
PIC: 16F819
Most programozok LCD-t először és nem tudom hol a hiba... Mellékeltem a forrást

lcd.asm
    
(#) chriskross hozzászólása Ápr 28, 2010 /
 
Rosszul írtam. RA0 és RA1 a vezérlő. RW földön
(#) vilmosd válasza chriskross hozzászólására (») Ápr 28, 2010 /
 
Hali
Rossz az inicializalas. Eloszor ki kell kuldeni a 8 bites modot, majd 2x a 4 bites modot. Elo kell venni a 44780 adatlapjat ott mindent leirnak a vezerlesrol. A leirt idoziteseket be kell tartani kulonben a kijelzo nem szeret dolgozni. El kellene felejteni ezt a hulye szimulatorokat. MPLAB a lelke a dolognak.
Udv Vili
(#) zenetom hozzászólása Aug 25, 2010 /
 
Van egy kis problémám. A csatolt képen lehet látni, hogy az első 8 oszlopban nagyon halványan jelennek meg a pixelek. Ez mitől lehet?
(#) zenetom válasza zenetom hozzászólására (») Aug 25, 2010 /
 
Ha tápot kap az LCD, azonos kontraszttal jelenik meg az első sor, de a programban nem történ semmi változtatás, egyik pillanatról a másikra lett ilyen. Majd megnézem PIC-kel is...
(#) Hp41C válasza zenetom hozzászólására (») Aug 25, 2010 /
 
Szia!

Ne aggódj, ha a tápra azonos a kontraszt, akkor a programod túl gyorsan változtatja a vezérlő jeleket, és ezért az LCD nem rendesen értelmezi őket.
- Nézd meg betartod-e az időzítéseket. A PicKit2 klónban 3 csatornás logikai analizátorod is van,
- A PC-s fordító programban néha elég az optimalizálási mód megváltoztatása, az eredmény teljesen másként futó program,
- Lassítsd le a programot.
A másik lehetséges ok a vezetékezésban keresendő:
- Egy vagy több vezeték nem érintkezik, esetleg zárlatos, forrasztás letört,
- Az LPT csatlakozó nem érintkezik megfelelően.
És még az is lehetséges, hogy a Wind@ws nyomtatót keres a porton, és beleszól a jelek vezérlésébe.
(#) zenetom válasza Hp41C hozzászólására (») Aug 25, 2010 /
 
Egy pár napig jól működött, egyik pillanatról a másikra lett ilyen.
(#) vicsys válasza zenetom hozzászólására (») Aug 25, 2010 /
 
Lehet, hogy LCD hiba, hanem a PC szoftvered kever be. Szerintem töröld a beállításokat és tedd fel újra egy újraindítás után...
(#) zenetom válasza vicsys hozzászólására (») Aug 25, 2010 /
 
Saját programom hajtja meg, csináltam ilyet direkt tesztelésre is, de azzal is ugyanez a helyzet.
Egyébként már elkönyveltem bukott projectnek.
(#) vicsys válasza zenetom hozzászólására (») Aug 25, 2010 /
 
Nosza rajta, akkor tekerd meg PIC-el! :yes:
(#) zenetom válasza vicsys hozzászólására (») Aug 25, 2010 /
 
Mihelyst megjött csipcsaptól, kipróbálom.
Csak előtte fel kéne adni a rendelést.
Nem tudom milyen PIC-eket kéne venni.. 5 ezernél többet nem akarok nagyon költeni. De jó lenne egy 4550, az USB miatt, meg 1320, mert ugye az megdöglött, és minden projektet azon gyakoroltam.
(#) icserny hozzászólása Szept 9, 2010 /
 
Kezembe került egy OPTREX gyártmányú, DMC-50399 LCD típusú kijelző. HD44780 vezérlő van benne. Valamilyen telefonból lett bontva, ezért feltehetően másoknak is a kezébe kerülthet ilyen. Adatlapot nem találtam, ezért közzéteszem a felderített paramétereket:

Ez a kijelző 2x16 karakteres, 5x8 felbontású, háttérvilágítás nélküli (reflexiós). A kivezetések alul helyezkednek el, a lábak számozása belülről kezdődik, kifelé haladva a szokásos sorrendben. Mivel nincs háttérvilágítás, így nem 16, hanem csak 14 kivezetés van.

1 - GND
2 - VDD (+5V)
3 - kontraszt (lehet 10 kOhm-os potméterrel szabályozni, de 0 - 1 kOhm közötti ellenállással fixen földre kötve is jó)
4 - RS
5 - R/W
6 - E
7 - 14 a D0..D7 adatbitek

A PICCOLO projekt-hez készülő 4 bites módú tesztprogramot mellékelem, ezzel jól működik. (PIC18F4550 esetén most RD4..7 adatbitek, RS, R/W, E pedig sorra RD0, RD1, és RD2 lábra van kötve.

lcd_4bit.c
    
(#) icserny válasza icserny hozzászólására (») Szept 9, 2010 /
 
Helyesbítem magamat: az OPTREX DMC-50399 típusú kijelző nem 2x16, hanem 2x20 karakteres.
Csak most tűnt fel, hogy egy 16 karakteres sztring kiírása után még maradt 4 üres pozíció...
(#) Jack Byrnes hozzászólása Ápr 17, 2011 /
 
Üdv! PIC16F887-re szeretnék LCD kijelzőt kötni. (HD47780 kompatibilis). Mivel az IC elég jól kihasznált, azért a következő felállásban gondolkodom:
D4-RD0; D5-RD1; D6-RD2; D7-RD3.
E-RE0; RS-RE1.
Működne-e ebben a változatban? Az E és RS köthető az RD4 és RD5 lábakra is?
Természetesen a nem használt D és az R/W kivezetés a földre van kötve.
(#) t0bi válasza Jack Byrnes hozzászólására (») Ápr 17, 2011 /
 
Simán kötheted!
Az RD0-5 lábakon semmi más nincs, az RD-5-ön is csak PWM, AZ RE0-1 lábakon meg csak analóg bemenet a digitális mellett.
Tehát a TRISD és TRISE regisztert kell értelemszerüen 0-ra állítani, valamint az ANSEL regisztert (RE0-1 miatt) szintén 0-ra.
Az LCD bekötése helyes.
(#) vilmosd válasza Jack Byrnes hozzászólására (») Ápr 17, 2011 /
 
Persze hogy mukodik. Ez vegulis SW problema, hogy melyik lab hova kerul. A lenyeg a LCD idoziteseit betartani.
(#) kameleon2 hozzászólása Szept 10, 2011 /
 
Sziasztok! Belefutottam egy problémába kijelzővel kapcsolatban. Fejlesztek egy modult, ami kell hogy visszajelzéseket tartalmazzon. Először LED-ekre gondoltam, de túl univerzális a modul, sok adatot nem tudnék kijelezni. 5 karakter kellene mindössze, ehhez keresem a legolcsóbb, egyben legjobb megoldást. Gondoltam 14 szegmensre is, csak irdatlan sok a furatláb és így kevés helyem maradna a panelen, pedig mindkét oldalt szeretném alaposan kihasználni. Van valakinek ötlete? Típus, beszerezhetőség, tapasztalat? Jó lenne, ha nappal is jól látható lenne - ezért indultam a LED-ek felől, de az újabb kijelzők már jól láthatóak és árban is kezdenek jók lenni. Csak a kijelzőre nem akarok többet szánni mint 3000 Ft, de ha 1500-ból is kijön az a legjobb. Eddig a PDC54-11 -es dupla 14 szegmenses kijelző tűnt a legjobb ár/teljesítményűnek 388Ft-ért. Ebből kellene 3db (az már 6 karakter). Előre is köszi!
(#) zenetom válasza kameleon2 hozzászólására (») Szept 10, 2011 / 1
 
Szia!
A LED-es kijelző és az LCD két különböző dolog.
Szerintem neked egy 2x16 karakteres zöld LCD megfelel: Bővebben: Link ez a legelterjedtebb (és legolcsóbb), drágább helyeken is 2000Ft körül mozog az ára és háttérvilágítás nélkül is jól lehet látni a kijelzőt (világosban..) Az a lényeg hogy HD44780 kompatibilis legyen (bár szinte mindegyik az).
(#) kameleon2 válasza zenetom hozzászólására (») Szept 10, 2011 /
 
Köszönöm a gyors választ!
Tudom mi a különbség LED és LCD között - bár ma már az OLED-es világban ki tudja mi micsoda Csak olyan típust kerestem, amihez könnyebben találok beszerzési forrást és segítséget. Hol lehet ilyet legolcsóbban beszerezni? Van esetleg tipp? A pont mindenképpen jár
(#) icserny válasza kameleon2 hozzászólására (») Szept 10, 2011 / 1
 
A legolcsóbb az E-bay kínálatában.

Itthon pedig a ChipCAD Kft. kínálatából az EW162G0GR típus a legolcsóbb. Figyelem: ennek nincs háttérvilágítása! Sötét helyre nem való.
(#) kameleon2 válasza icserny hozzászólására (») Szept 10, 2011 /
 
Mindkét ajánlat lenyűgöző. Bár az Ebay-el nincs tapasztalatom, nem tudom Magyarországra is 0Ft-ért szállítanak ? Illetve kérdés hány darabot és mennyi idő alatt? Eddig egyszer rendeltem kínaitól, de mire megjött az áru már a harmadikkal álltam kapcsolatban.... A gyártásnál jól jönne, de egy darabot rendelni mindig drága. A chipcad-é jó lesz főleg az 1x16-os A világítás a legkevesebb - azt megoldom. Úgyis lesz tápled, maximum lesz még ugyanazon a körön 3-6db smd LED is.... Szintén jár a pont
(#) icserny válasza kameleon2 hozzászólására (») Szept 10, 2011 / 1
 
Idézet:
„Magyarországra is 0Ft-ért szállítanak?”
Azt mindig az adott termék lapján kell ellenőrizni. A "Buy It Now" a villámár, annyiért viheted. A "Shipping and Payment" fülre kattintva pedig ellenőrizhető, hogy Magyarországra szállítanak-e egyáltalán, és ingyen vagy mennyiért. E sorok írásakor $3.18-ért kapsz 1 db-ot, ingyenes házhozszállítással. Általában 4 hetet kell várni rá (+/- 1 hét szórással).
Következő: »»   4 / 17
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