Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

LCD: cmc216n02 - 16 znakov, 2 vrstici
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Gregor
Začetnik


Pridružen/-a: Pon Dec 2004 10:39
Prispevkov: 11

PrispevekObjavljeno: Pon Dec 20, 2004 10:48 am    Naslov sporočila: LCD: cmc216n02 - 16 znakov, 2 vrstici Odgovori s citatom

vse sorte sem ze probal, pa mi ne uspe napisat programa, da bi nekaj izpisal na lcd (cmc216n02 - 16 znakov, 2 vrstici) z atm89s2051.

A mi lahko kdo pomaga?
plis, napisi prog.bas





tile mi ne delajo.... ali bi morali?!?

poskus 1:


************************************************************
Dim Lucka As Bit 'deklaracija spremenljivke Lucka
Lucka = 0

Do
Lucka = 0 'prizgi
P3.7 = Lucka
Wait 2

Lucka = 1 'ugasni
P3.7 = Lucka

Waitms 500


Config Lcdpin = Pin , Db4 = P3.1 , Db5 = P3.2 , Db6 = P3.3 , Db7 = P3.4 , E = P3.5 , Rs = P3.0
Rem with the config lcdpin statement you can override the compiler settings




' Bascom8051 & pg303
'LCD: cmc216n02 - 16 znakov, 2 vrstici


Config Lcd = 16 * 2 'configure lcd screen
'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines

'$LCD = address will turn LCD into 8-bit databus mode
' use this with uP with external RAM and/or ROM
' because it aint need the port pins !
Cls 'clear the LCD display
Lcd "Hello world." 'display this at the top line

Loop
End




poskus 2:
*************************************************************
'Dim Lucka As Bit 'deklaracija spremenljivke Lucka
'Lucka = 0

Do


Config Lcdpin = Pin , Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 , E = P3.7 , Rs = P1.0
Rem with the config lcdpin statement you can override the compiler settings




' Bascom8051 & pg303
'LCD: cmc216n02 - 16 znakov, 2 vrstici


'Config Lcd = 16 * 2 'configure lcd screen
'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines

'$LCD = address will turn LCD into 8-bit databus mode
' use this with uP with external RAM and/or ROM
' because it aint need the port pins !
Cls 'clear the LCD display
Lcd "Hello world." 'display this at the top line

Loop
End
*************************************************************


*************************************************************
pini 1-14
vss (-) ---- r=22k ---- vdd (+) ---- vee( na r=22k) ---- rs ---- r/w ----- ena ----- d4 ---- d5 ----- d6 ---- d7

*************************************************************

_________________
Gregor
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
MarE
Profesionalec


Pridružen/-a: Pet Nov 2004 23:38
Prispevkov: 177

PrispevekObjavljeno: Pon Dec 20, 2004 11:28 am    Naslov sporočila: Odgovori s citatom

Precej komentarjev... ampak kje pa inicializiraš LCD? Ali je to kar "avtomatsko" ?

Poglej, če se lahko kaj naučiš iz tegale sourca (sicer je C, ampak vseeno):

Koda:
#include <reg51.h>


#define    LCD_CLS   0x01   /* koda za brisanje ekrana   */
#define    LCD_HOME   0X02   /* zacetek          */
#define    LCD_ON      0x0e   /* vklop prikaza      */
#define  LCD_CUROFF   0x0c   /* izklop kurzorja      */
#define    LCD_4BIT   0x2c   /* nastavitev nacina delovanja   */

#define  LCDport    P1

sbit RS      = LCDport^4;      /* RS signal LCD */
sbit EN      = LCDport^5;      /* enable LCD */


void delay(unsigned char count)      /* zakasnitev (count * 10 us) */
{               /* ni tocna zakasnitev */
  unsigned char i;
  for (i=0;i<count;i++);
}

void delay_ms(unsigned int time)   /* zakasnitev v ms */
{
  unsigned int j;
  for (j=0;j<time;j++)
    delay(105);
}



void LCD_write (unsigned char znak)
{
  LCDport &= 0xf0;
  LCDport |= znak >> 4;
  EN = 1;
  delay(1);
  EN = 0;
  LCDport &= 0xf0;
  LCDport |= (znak & 0x0f);
  EN = 1;
  delay(1);
  EN = 0;
}


void LCD_wrcom (unsigned char znak)
{
  RS = 0;
  LCD_write (znak);
}


void LCD_wrdta (unsigned char znak)
{
  RS = 1;
  LCD_write (znak);
}


/*********************************************************************/


void LCD_init()
{
  delay_ms (15);
  LCDport = 0xf3;          // 3 x 8-bit mode, 1 x 4-bit mode
  RS = 0;
  delay(1);
  EN = 0;
  delay_ms (6);
  EN = 1;
  delay(1);
  EN = 0;
  delay_ms (1);
  EN = 1;
  delay (1);
  EN = 0;
  delay_ms (1);
  EN = 1;
  LCDport &= 0xfe;
  EN = 0;
  LCD_wrcom(LCD_4BIT);
//  LCD_on();
//  LCD_cls();
//  LCD_home();
//  LCD_dld(SLOfont);
//  LCD_home();
}

Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Gregor
Začetnik


Pridružen/-a: Pon Dec 2004 10:39
Prispevkov: 11

PrispevekObjavljeno: Pon Dec 20, 2004 11:48 am    Naslov sporočila: LCD: cmc216n02 - 16 znakov, 2 vrstici (2nd) Odgovori s citatom

najlepša hvala:)

kako to vpisem v IC ali kako preizkusim program?

_________________
Gregor
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
MarE
Profesionalec


Pridružen/-a: Pet Nov 2004 23:38
Prispevkov: 177

PrispevekObjavljeno: Pon Dec 20, 2004 1:08 pm    Naslov sporočila: Odgovori s citatom



??? Rabiš prevajalnik, linker in programator, ki bo to spravil v čipuzelj.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Pon Dec 20, 2004 2:31 pm    Naslov sporočila: Odgovori s citatom

Gregor,

kaj ti pa napiše na LCD-ju? Ali sploh kaj napiše?

Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Gregor
Začetnik


Pridružen/-a: Pon Dec 2004 10:39
Prispevkov: 11

PrispevekObjavljeno: Pon Dec 20, 2004 5:04 pm    Naslov sporočila: IMA KDO IZKUŠNJE? LCD:cmc216n02 - 16 znakov, 2 vrstici (3rd) Odgovori s citatom

oh, hvala vam za pomoč. sploh nisem zares pričakoval pomoči - izgleda, da je vredno poizkusit:)))


2-vrstični LCD. ko vse prklopim, je prva vrstica zapolnjena s polnimi znaki.
2. vrsta pa je prazna.


zal mi je, ko imam 4 take displaye,
mam bascom
pg302,
a ne dela.
no, vsaj vem, da je tezava le v programu (mislim da ne LCD, k so novi)


ko bi vsaj nekdo poslal preizkušen *.bas za ta LCD.




algoritem, naj bi bil temu podoben.
NIKAKOR ne morem pogruntat v čem je finta - kje je napaka ...

?!?
************************************************************

Do


Config Lcdpin = Pin , Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 E = P3.7 , Rs = P1.0 ' določimo pine


' LCD: cmc216n02 - 16 znakov, 2 vrstici


'Config Lcd = 16 * 2 'tukaj konfiguriramo tip LCD-ja

'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses
'over 2 lines

Cls 'izbriši LCD displej
Lcd "Hello world." 'izpisi tekst
Loop
End

_________________
Gregor
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
strobos
Mojster


Pridružen/-a: Tor Jan 2004 17:26
Prispevkov: 32
Kraj: LJ

PrispevekObjavljeno: Pon Dec 20, 2004 5:31 pm    Naslov sporočila: Odgovori s citatom

Pozdrav,

za temle ukazom:

Lcd "Hello world." 'izpisi tekst

moraš dati eno zakasnitev npr.:

wait 1

drugače ti to takoj zbriše.

Lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
strobos
Mojster


Pridružen/-a: Tor Jan 2004 17:26
Prispevkov: 32
Kraj: LJ

PrispevekObjavljeno: Pon Dec 20, 2004 5:35 pm    Naslov sporočila: Odgovori s citatom

Aja pa config lcdpin in config lcd daj iz zanke do loop-daj pred zanko.
Probaj in poročaj kako je.

Lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Silvo
Profesionalec


Pridružen/-a: Tor Jan 2004 19:06
Prispevkov: 234

PrispevekObjavljeno: Pon Dec 20, 2004 8:09 pm    Naslov sporočila: Odgovori s citatom

Citiram:
2-vrstični LCD. ko vse prklopim, je prva vrstica zapolnjena s polnimi znaki.
2. vrsta pa je prazna.


Kot je napisal mare LCD ni inicaliziran. (tipični prikaz) Torej preden se ne "postavi" ne bo sprejemal nič.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
SimonS
Profesionalec


Pridružen/-a: Pon Jan 2004 17:52
Prispevkov: 181
Kraj: Kobarid

PrispevekObjavljeno: Pon Dec 20, 2004 8:24 pm    Naslov sporočila: Odgovori s citatom

Ziv
Jaz dodam se ukaza

Cursor Off
Display On

Sicer pa mislim, da to ni glavni vzrok. Lahko predvidevam, da uporabljas 2051 ali 4051 in kot vidim uporabljas tudi pin p1.0, ki pa je na teh uC-jih brez pull up upora in zadeva ne more funkcionirati, ce pa slucajno dela pa ne dela pravilno! Dodaj se en pull up upor 10 proti VCC in zadeva bi skoraj morala delati

_________________
Skupaj smo mocnejsi
LP Simon
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
strobos
Mojster


Pridružen/-a: Tor Jan 2004 17:26
Prispevkov: 32
Kraj: LJ

PrispevekObjavljeno: Pon Dec 20, 2004 10:08 pm    Naslov sporočila: Odgovori s citatom

Tisti upor ni 10ohm ampak 10kohm ali pa 4,7kohm ali pa nekaj takega probaj.

Lp
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
SimonS
Profesionalec


Pridružen/-a: Pon Jan 2004 17:52
Prispevkov: 181
Kraj: Kobarid

PrispevekObjavljeno: Tor Dec 21, 2004 5:51 pm    Naslov sporočila: Odgovori s citatom

Wops Embarassed se opravicujem 10K sem imel v mislih ja. Vsekakor je tudi 4k7 prav tako dober. Mogoce celo boljsi.... Vsakem primeru vrednost ni kriticna.
_________________
Skupaj smo mocnejsi
LP Simon
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2132
Kraj: Ljubljana

PrispevekObjavljeno: Sre Dec 22, 2004 7:55 am    Naslov sporočila: Odgovori s citatom

Hoj,

Citiram:
Do


Config Lcdpin = Pin , Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 E = P3.7 , Rs = P1.0 ' določimo pine


' LCD: cmc216n02 - 16 znakov, 2 vrstici


'Config Lcd = 16 * 2 'tukaj konfiguriramo tip LCD-ja

'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a
'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses
'over 2 lines

Cls 'izbriši LCD displej
Lcd "Hello world." 'izpisi tekst
Loop
End


1. Do ukaz prestavi pred ukaz CLS
2. vidim, da imas ukaz Config LCD REM-an - pomeni, da je to komentar. Izbriši znak ' pred tem ukazom.
3. za ukazom Lcd "hello....." dodaj ukaz wait 1, drugače se ne bo nič videlo.

Potem pa poročaj, če si bil uspešen.

Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Gregor
Začetnik


Pridružen/-a: Pon Dec 2004 10:39
Prispevkov: 11

PrispevekObjavljeno: Ned Dec 26, 2004 6:21 pm    Naslov sporočila: display 16x2 Odgovori s citatom

zal ne dela. se ne vdam:)...

a vam drugace dela?



PS:
na ELEKTRO-N sem tudi zasledil en clanek, da je nekdo imel tezave in prav z enakim LCD-jem in AT89c2051.

_________________
Gregor
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 556
Kraj: Ljubljana

PrispevekObjavljeno: Ned Dec 26, 2004 6:36 pm    Naslov sporočila: LCD Odgovori s citatom

Gregor!
Daj zraven svoj program in opiši kako si priklopil LCD,drugače je težko pomagati.
Vlado
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Digitalna elektronika Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group