Nokia 3310 LCD PIC16F84A

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

User avatar
ShOkRe
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 468
Joined: 10-01-2007, 20:55
Location: Pula

Re: Nokia 3310 LCD PIC16F84A

Post by ShOkRe »

smješko jel j*b*š ti šta ? :lol: ili tebe oni j***u :ohno:

meni na stolu stoje 2 x po 2 pica koje sam trebao još prošli tjedan poslat
2 frendu u zg a 2 murisu, i svaki dan nešto iskrsne da to ne napravim
pa me spičila gripa, pa trčkavica, pa zaboravim, pa se sjetim al nemam kovertu ili nešto....
eto jednostavno (nisam baš u centru grada) meni je to totlno naopako, mozda zato jer imam
150 drugih obaveza, koje ne stižem, tako da mi ova uvjek moze čekat, i onda je*iga kixa...-
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Re: Nokia 3310 LCD PIC16F84A

Post by Smjesko »

Slušam ja neke starčeke kako pričaju o jebanju ..... Krešo pobogu - nemoj pričati - jebi :!: :lol:

A sad ozbiljno. Ako te žena ne želi poslušati, nazovi susjedu i zamoli je da ti negdje kupi nekoliko kila naranči i češanj bijelog luka ili češnjaka. Ta kombinacija je najučinkovitije sredstvo da se riješiš te (krmeće) gripe i da (opet) počneš jebat' a ne samo o tome pričat'. :wink:
Onda ćeš naći i vremena da skupiš te omotnice i pošalješ te igračke Traxu i ostalima. Ajd' drž' se :!:
User avatar
ShOkRe
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 468
Joined: 10-01-2007, 20:55
Location: Pula

Re: Nokia 3310 LCD PIC16F84A

Post by ShOkRe »

ma radim ja to samo me bole ruke poslje, od mjenjanja...... :-)
eh neznaš ti kako je nama oženjenim starcima, al i ti češ za 10-tak godina tako :-) pa češ vidjet kako nam je..
al da puno grizeš po forumu, grizeš, pa reko da svi skupimo neku kintu pa ti platimo jednu da te olabavi :-)
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Re: Nokia 3310 LCD PIC16F84A

Post by Smjesko »

Eh, to samo osjetljive mamine maze vide to kao "griženje". Ja to više bockam, provociram - da potaknem ljude da razmišljaju, a ne samo da čekaju sve na tanjuru - žišku šokre :?: :wink:
User avatar
ShOkRe
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 468
Joined: 10-01-2007, 20:55
Location: Pula

Re: Nokia 3310 LCD PIC16F84A

Post by ShOkRe »

ma sve 5, ja sam više put reko je*eš forum koji smješka nema.....
al nekad neke sirote opandrčiš ni krive ni dužne, a pak s druge strane ima ovih
proljevčića koje nisi ni načeo :lol: :lol: :lol: :lol:
znaš kako je crnjo reko, šaraj malo.....
User avatar
Smjesko
Stariji član
Stariji član
Posts: 4012
Joined: 26-12-2005, 17:12

Re: Nokia 3310 LCD PIC16F84A

Post by Smjesko »

Evo - kad si me ti na to upozorio - javno se ispričavam nedužnima.
A budući da si sad inspiriran trčkalicama iliti proljevčićima - de navedi mi koji su to, matere ti - da ih malo :azdaja: . :D Inače, i od mene sve 5+ za tebe. :wink:
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Nokia 3310 LCD PIC16F84A

Post by frwgrg »

Jeb*es te ekrane, jel ima neko neki laki i brzi tutor kako da sa pic-om pokrenem 7 segmentni display? imam ih na gomile, uglavnom iz bacenih digitrona i nekoliko iz videa. E da, a jel moze da se iskoristi onaj lcd iz kineskog tetrisa? on je takodje sa tackicama, a i cena mu je bar 5 puta jeftinija od bilo kog displeya, i gratis dobijete tetris.
User avatar
kepos
Pocetnik na forumu
Pocetnik na forumu
Posts: 43
Joined: 09-01-2009, 14:19
Location: Croatia, Osijek, Retfala
Contact:

Re: Nokia 3310 LCD PIC16F84A

Post by kepos »

frwgrg wrote:Jeb*es te ekrane, jel ima neko neki laki i brzi tutor kako da sa pic-om pokrenem 7 segmentni display?
ima ih hrpa ovdje, samo pogledat... npr ovdje
frwgrg wrote:imam ih na gomile, uglavnom iz bacenih digitrona i nekoliko iz videa. E da, a jel moze da se iskoristi onaj lcd iz kineskog tetrisa? on je takodje sa tackicama, a i cena mu je bar 5 puta jeftinija od bilo kog displeya, i gratis dobijete tetris.
To je malo slozeniji posao jer nemas datasheet takvog displeya. mozda neko zna opisat kako to radi, ne bih znao...
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Nokia 3310 LCD PIC16F84A

Post by pedja089 »

Displej od tetrisa je neka nedaj Boze nikom matrica...
Pokusao sam ga provaliti ali bezuspesno...
Razlika izmedju upravljanja LCD displeja i LED je u tome sto kod lcd-a, mora da se obrcu polovi...
Znaci na 2 kontakta za 1 segment dovodis + i -. pa onda - i +, i to mora da se radi vise od 10tak puta u sekundi. Inace se segmenti posle odredjenog vremena izgube, iako je prisutan napon...
Ja sam to radio tako sto sam sve pinove displeja na pic vezao i onda invertovao stanja na portovima zaduzenim za displej...
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: Nokia 3310 LCD PIC16F84A

Post by frwgrg »

Ali ipak najbolji display da igranje je upravo od nokie 3110.
Jeftin je, a i nije ogranicen slovima kao ti 2*16 i ostali. Ja kupio celu nokiu 3110 za 3e i to je to! A taj 2*16 je kod mene 10-15e.
flash005
Posts: 16
Joined: 30-12-2008, 21:28

Re: Nokia 3310 LCD PIC16F84A

Post by flash005 »

Pozdrav svima, sljedeću rutinu sam našao na linku http://webspace.webring.com/people/fd/d ... 10lcd.html" onclick="window.open(this.href);return false;, bez problema mi je proradlo sa picevima 16f877 i 16f84a ali nikako da mi proradi sa picom 12f629, znam da ima već rutina u pic basicu al meni treba u mikroC-u.

Code: Select all

/*
    Nokia 3310 LCD Demo. Codes are partially modified from Michel
    Bavin's CCS C Codes for Nokia 3310 Graphical LCD
    (LPH7779) routines version 3 from http://users.skynet.e/bk317494/

    This is a HiTech C demo code for the PCD8544 controller    based
    Graphical LCD which is implemented on Nokia 3310 Cellphones.
*/

#define SCK GPIO.GP5                    // ConnectPions between PIC and LCD.
#define SDI GPIO.GP4
#define D_C GPIO.GP0
//#define _SCE PORTD.F4
#define _RES GPIO.GP1

void initlcd(void);                    // Initializes the LCD.
void writecom(char);                // Writes a command.
void writedata(char);                // Writes data to DDRAM to illuminate the pixels.
void clockdata(char);                // Clocks in data into the PCD8544 controller.
void clearram(void);                // Erase the DDRAM contents.
void cursorxy(char,char);            // Position cursor to x,y.
void putchar(char);                    // Write one character.
void putstr(const char *);            // Writes a string of characters.


//1__CONFIG(PWRTDIS & DUNPROT & UNPROTECT & BORDIS & WDTDIS & LVPDIS & HS);

const char table[480] = {    0x00,0x00,0x00,0x00,0x00,    // 20 space        ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
                            0x00,0x00,0x5f,0x00,0x00,    // 21 !            Note that this is the same set of codes for character you
                            0x00,0x07,0x00,0x07,0x00,    // 22 "            would find on a HD44780 based character LCD. :)
                            0x14,0x7f,0x14,0x7f,0x14,    // 23 #            Also, given the size of the LCD (84 pixels by 48 pixels),
                            0x24,0x2a,0x7f,0x2a,0x12,    // 24 $            the maximum number of characters per row is only 14. :)
                            0x23,0x13,0x08,0x64,0x62,    // 25 %
                            0x36,0x49,0x55,0x22,0x50,    // 26 &
                            0x00,0x05,0x03,0x00,0x00,    // 27 '
                            0x00,0x1c,0x22,0x41,0x00,    // 28 (
                            0x00,0x41,0x22,0x1c,0x00,    // 29 )
                            0x14,0x08,0x3e,0x08,0x14,    // 2a *
                            0x08,0x08,0x3e,0x08,0x08,    // 2b +
                            0x00,0x50,0x30,0x00,0x00,    // 2c ,
                            0x08,0x08,0x08,0x08,0x08,    // 2d -
                            0x00,0x60,0x60,0x00,0x00,    // 2e .
                            0x20,0x10,0x08,0x04,0x02,    // 2f /
                            0x3e,0x51,0x49,0x45,0x3e,    // 30 0
                            0x00,0x42,0x7f,0x40,0x00,    // 31 1
                            0x42,0x61,0x51,0x49,0x46,    // 32 2
                            0x21,0x41,0x45,0x4b,0x31,    // 33 3
                            0x18,0x14,0x12,0x7f,0x10,    // 34 4
                            0x27,0x45,0x45,0x45,0x39,    // 35 5
                            0x3c,0x4a,0x49,0x49,0x30,    // 36 6
                            0x01,0x71,0x09,0x05,0x03,    // 37 7
                            0x36,0x49,0x49,0x49,0x36,    // 38 8
                            0x06,0x49,0x49,0x29,0x1e,    // 39 9
                            0x00,0x36,0x36,0x00,0x00,    // 3a :
                            0x00,0x56,0x36,0x00,0x00,    // 3b ;
                            0x08,0x14,0x22,0x41,0x00,    // 3c <
                            0x14,0x14,0x14,0x14,0x14,    // 3d =
                            0x00,0x41,0x22,0x14,0x08,    // 3e >
                            0x02,0x01,0x51,0x09,0x06,    // 3f ?
                            0x32,0x49,0x79,0x41,0x3e,    // 40 @
                            0x7e,0x11,0x11,0x11,0x7e,    // 41 A
                            0x7f,0x49,0x49,0x49,0x36,    // 42 B
                            0x3e,0x41,0x41,0x41,0x22,    // 43 C
                            0x7f,0x41,0x41,0x22,0x1c,    // 44 D
                            0x7f,0x49,0x49,0x49,0x41,    // 45 E
                            0x7f,0x09,0x09,0x09,0x01,    // 46 F
                            0x3e,0x41,0x49,0x49,0x7a,    // 47 G
                            0x7f,0x08,0x08,0x08,0x7f,    // 48 H
                            0x00,0x41,0x7f,0x41,0x00,    // 49 I
                            0x20,0x40,0x41,0x3f,0x01,    // 4a J
                            0x7f,0x08,0x14,0x22,0x41,    // 4b K
                            0x7f,0x40,0x40,0x40,0x40,    // 4c L
                            0x7f,0x02,0x0c,0x02,0x7f,    // 4d M
                            0x7f,0x04,0x08,0x10,0x7f,    // 4e N
                            0x3e,0x41,0x41,0x41,0x3e,    // 4f O
                            0x7f,0x09,0x09,0x09,0x06,    // 50 P
                            0x3e,0x41,0x51,0x21,0x5e,    // 51 Q
                            0x7f,0x09,0x19,0x29,0x46,    // 52 R
                            0x46,0x49,0x49,0x49,0x31,    // 53 S
                            0x01,0x01,0x7f,0x01,0x01,    // 54 T
                            0x3f,0x40,0x40,0x40,0x3f,    // 55 U
                            0x1f,0x20,0x40,0x20,0x1f,    // 56 V
                            0x3f,0x40,0x38,0x40,0x3f,    // 57 W
                            0x63,0x14,0x08,0x14,0x63,    // 58 X
                            0x07,0x08,0x70,0x08,0x07,    // 59 Y
                            0x61,0x51,0x49,0x45,0x43,    // 5a Z
                            0x00,0x7f,0x41,0x41,0x00,    // 5b [
                            0x02,0x04,0x08,0x10,0x20,    // 5c Yen Currency Sign
                            0x00,0x41,0x41,0x7f,0x00,    // 5d ]
                            0x04,0x02,0x01,0x02,0x04,    // 5e ^
                            0x40,0x40,0x40,0x40,0x40,    // 5f _
                            0x00,0x01,0x02,0x04,0x00,    // 60 `
                            0x20,0x54,0x54,0x54,0x78,    // 61 a
                            0x7f,0x48,0x44,0x44,0x38,    // 62 b
                            0x38,0x44,0x44,0x44,0x20,    // 63 c
                            0x38,0x44,0x44,0x48,0x7f,    // 64 d
                            0x38,0x54,0x54,0x54,0x18,    // 65 e
                            0x08,0x7e,0x09,0x01,0x02,    // 66 f
                            0x0c,0x52,0x52,0x52,0x3e,    // 67 g
                            0x7f,0x08,0x04,0x04,0x78,    // 68 h
                            0x00,0x44,0x7d,0x40,0x00,    // 69 i
                            0x20,0x40,0x44,0x3d,0x00,    // 6a j
                            0x7f,0x10,0x28,0x44,0x00,    // 6b k
                            0x00,0x41,0x7f,0x40,0x00,    // 6c l
                            0x7c,0x04,0x18,0x04,0x78,    // 6d m
                            0x7c,0x08,0x04,0x04,0x78,    // 6e n
                            0x38,0x44,0x44,0x44,0x38,    // 6f o
                            0x7c,0x14,0x14,0x14,0x08,    // 70 p
                            0x08,0x14,0x14,0x18,0x7c,    // 71 q
                            0x7c,0x08,0x04,0x04,0x08,    // 72 r
                            0x48,0x54,0x54,0x54,0x20,    // 73 s
                            0x04,0x3f,0x44,0x40,0x20,    // 74 t
                            0x3c,0x40,0x40,0x20,0x7c,    // 75 u
                            0x1c,0x20,0x40,0x20,0x1c,    // 76 v
                            0x3c,0x40,0x30,0x40,0x3c,    // 77 w
                            0x44,0x28,0x10,0x28,0x44,    // 78 x
                            0x0c,0x50,0x50,0x50,0x3c,    // 79 y
                            0x44,0x64,0x54,0x4c,0x44,    // 7a z
                            0x00,0x08,0x36,0x41,0x00,    // 7b <
                            0x00,0x00,0x7f,0x00,0x00,    // 7c |
                            0x00,0x41,0x36,0x08,0x00,    // 7d >
                            0x10,0x08,0x08,0x10,0x08,    // 7e Right Arrow     ->
                            0x78,0x46,0x41,0x46,0x78};    // 7f Left Arrow    <-

void main() {
  //int i;
  TRISIO = 0x00;
    //TRISIO = 0b00000111;                // All SCK, SDI, D_C, _SCE and _RES are output pins.
    initlcd();
    cursorxy(22,0);                    // Next line.
    putstr("Danijel");        // A test message.... Also a new year's greeting. :)
    //cursorxy(18,1);                    // Next line.
    //putstr("Zelenika");

  //TRISIO = 0x00;               // PORTB is output
//  GPIO.GP1 = 1;

}//~!

void initlcd(void)
{
    _RES = 1;        // Set _RES HIGH.
    //_SCE = 1;        // Disable Chip.
    _RES = 0;        // Reset the LCD.
    Delay_ms(100);    // Wait 100ms.
    _RES = 1;        // Awake LCD from RESET state.

    writecom(0x21);        // Activate Chip and H=1.
    writecom(0xC2);        // Set LCD Voltage to about 7V.
    writecom(0x13);        // Adjust voltage bias.
    writecom(0x20);        // Horizontal addressing and H=0.
    writecom(0x09);        // Activate all segments.
    clearram();            // Erase all pixel on the DDRAM.
    writecom(0x08);        // Blank the Display.
    writecom(0x0C);        // Display Normal.
    cursorxy(0,0);        // Cursor Home.
}

void writecom(char command_in)
{
    D_C = 0;                // Select Command register.
//    _SCE = 0;                // Select Chip.
    clockdata(command_in);    // Clock in command bits.
//    _SCE = 1;                // Deselect Chip.
}

void writedata(char data_in)
{
    D_C = 1;                // Select Data register.
//    _SCE = 0;                // Select Chip.
    clockdata(data_in);        // Clock in data bits.
//    _SCE = 1;                // Deselect Chip.
}

void clockdata(char bits_in)
{
    int bitcnt;
    for (bitcnt=8; bitcnt>0; bitcnt--)
        {
            SCK = 0;                                // Set Clock Idle level LOW.
            if ((bits_in&0x80)==0x80) {SDI=1;}        // PCD8544 clocks in the MSb first.
            else {SDI=0;}
            SCK = 1;                                // Data is clocked on the rising edge of SCK.
            bits_in=bits_in<<1;                        // Logical shift data by 1 bit left.
        }
}

void clearram(void)
{
    int ddram;
    cursorxy(0,0);                                            // Cursor Home.
    for (ddram=504;ddram>0;ddram--)    {writedata(0x00);}        // 6*84 = 504 DDRAM addresses.
}


void cursorxy(char x, char y)
{
    writecom(0x40|(y&0x07));    // Y axis
    writecom(0x80|(x&0x7f));    // X axis
}

void putchar(char character)
{
    int tablept, count, char_column;

    if ((character<0x20)||(character>0x7f)) {return;}        // Exit function if character is not found.
    tablept = ((5*character) - 160);                        // Point to the columns of the character in the table.

    for (count=5;count>0;count--)                            // Draw the columns to print the character.
    {
        char_column = table[tablept];
        writedata(char_column);
        tablept++;
    }
    writedata(0x00);                                        // 1 pixel spacing per character.
}

void putstr(const char *s)
{
    while(*s) {putchar(*s++);}                                // Points to one ASCII to be written one at a time.
}
Jms82
Posts: 16
Joined: 14-09-2008, 18:29

Re: Nokia 3310 LCD PIC16F84A

Post by Jms82 »

Svi oni koji bi željeli imati Nokijin 3310 model displeja u proteusu, poznato je da radi samo u nekim starijim verzijama proteusa. samo da javim da verzija 7.7 sp2 podržava ovaj displej.. :) pozz
ceh
Posts: 2
Joined: 15-10-2011, 04:36

Re: Nokia 3310 LCD PIC16F84A

Post by ceh »

Pozdrav svima :)

Znam, dižem temu iz mrtvih... pomozite početniku :)

Da li je neko našao tu rutinu za mikroC - 16f84a i Nokia displej?
ceh
Posts: 2
Joined: 15-10-2011, 04:36

Re: Nokia 3310 LCD PIC16F84A

Post by ceh »

Probah da kompajliram u hitechC, ali sve mi se nekako čini da nemam "pic.h".... hilfe?
Post Reply