Sonsivri
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
April 16, 2024, 06:46:01 18:46


Login with username, password and session length


Pages: [1]
Print
Author Topic: Help how to initialize NOKIA 3310 LCD using CCS C or Assembly code.  (Read 13546 times)
0 Members and 1 Guest are viewing this topic.
bulate1983
Guest
« on: August 04, 2008, 05:47:51 17:47 »


guys need help, i want to interface nokia 3310 LCD using PIC16f877 any idea. please...

CCS C or Assembly code, iprefer. thanks guys.
Logged
softjad
Junior Member
**
Offline Offline

Posts: 51

Thank You
-Given: 12
-Receive: 95


« Reply #1 on: August 04, 2008, 09:57:10 21:57 »

You can start for read the LCD driver instruction set Philips PCD8544

http://www.myplace.nu/mp3/files/pcd8544.pdf
Logged

MCan
Junior Member
**
Offline Offline

Posts: 72

Thank You
-Given: 15
-Receive: 119


end of file


WWW
« Reply #2 on: August 04, 2008, 10:45:07 22:45 »

Code:
////////////////////////////////////////////////////////////////////////////////
/*
                     LPH7779-LCD(Nokia 3310) library
*/
////////////////////////////////////////////////////////////////////////////////

#bit nok_sclk = lcdport.5    // RB5
#bit nok_sda  = lcdport.6    // RB6
#bit nok_dc   = lcdport.7    // RB7
#bit nok_cs   = lcdport.0    // RB0
#bit nok_res  = lcdport.1   // RB1

char CONST TABLE5 [240] = {  // ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
                  0x00,0x00,0x00,0x00,0x00, // 20 space
0x00,0x00,0x5f,0x00,0x00, // 21 !
0x00,0x07,0x00,0x07,0x00, // 22 "
0x14,0x7f,0x14,0x7f,0x14, // 23 #
0x24,0x2a,0x7f,0x2a,0x12, // 24 $
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

char CONST TABLE6 [240] = {
                  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 \
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 ~
0x78,0x46,0x41,0x46,0x78}; // 7f ¦

// 7e,43,40,43,7e --> Ü
         // 7e,43,42,43,7e --> Ö
         // 1e,21,21,71,21 --> Ç
         // 3c,42,53,53,72 --> Ğ

//function prototypes
void nokia_init();
void nokia_write_command(char bytefornokia_command);
void nokia_write_data(char bytefornokia_data);
void nokia_write_dorc(char bytefornokia);
void nokia_gotoxy(char xnokia, char ynokia);
void  nokia_contrast (byte contrast);
void  nokia_printchar(char cvar);
void nokia_clean_ddram();
void table_to_nokialcd();
void  LcdPixel (char x, char y);

char char_row,charsel,charpos,chardata;
int16 ddram;

void nokia_init() {
   nok_dc=1;            // bytes are stored in the display data ram, address counter, incremented automatically
   nok_cs=1;            // chip disabled
   delay_us(200);

   nok_res=0;
   delay_ms(10);
   nok_res=1;

   nokia_write_command(0x21); // set extins extended instruction set
   nokia_write_command(0xc8); // Vop  v1: 0xc8 (for 3V), v2: 0xa0 (for 3V)
   nokia_write_command(0x13); // bias
   nokia_write_command(0x20); // horizontal mode from left to right, X axe are incremented automatically,
                              // 0x22 for vertical addressing, back on normal instruction set too
   nokia_write_command(0x09); // all on

   delay_ms(50);

   nokia_clean_ddram();       // reset DDRAM, otherwise the lcd is blurred with random pixels

   delay_ms(10);

   nokia_write_command(0x08); // mod control blank change (all off)
   delay_ms(10);

   nokia_write_command(0x0c); // mod control normal change
}

void nokia_clean_ddram() {
   nokia_gotoxy(0,0); // 84*6=504 clear LCD
   for (ddram=504; ddram>0; ddram--)
      nokia_write_data(0x00);
}

void nokia_write_command(char bytefornokia_command)
{
   nok_dc=0; // byte is a command it is read with the eight SCLK pulse
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_command);
   nok_cs=1; // chip disabled
}

void nokia_write_data(char bytefornokia_data)
{
   nok_dc=1;
   nok_cs=0; // chip enabled
   nokia_write_dorc(bytefornokia_data);
   nok_cs=1; // chip disabled
}

void nokia_write_dorc(char bytefornokia) { // serial write data or command subroutine
   char caa;
   for (caa=8;caa>0;caa--)
      {
    nok_sclk=0;
    delay_us(2);
    if ((bytefornokia&0x80)==0)
            nok_sda=0;
    else
            nok_sda=1;
    nok_sclk=1;
         delay_us(2);
    bytefornokia = bytefornokia << 1;
    }
}

void nokia_gotoxy(char xnokia, char ynokia) {   // Nokia LCD 3310 Position cursor
   nokia_write_command(0x40|(ynokia&0x07));     // Y axe initialisation: 0100 0yyy
   nokia_write_command(0x80|(xnokia&0x7f));     // X axe initialisation: 1xxx xxxx
}

void nokia_contrast (char contrast) {
    nokia_write_command(0x21);                  // LCD Extended Commands.
    nokia_write_command(0x80 | contrast);       // Set LCD Vop (Contrast).
    nokia_write_command(0x20);                  // LCD Standard Commands, horizontal addressing mode.
}

void nokia_printchar(char cvar) { // Write 1 character to LCD
   charsel=cvar;
   table_to_nokialcd();
}

void table_to_nokialcd() {                      // extract ascii from tables & write to LCD
   if (charsel<0x20) return;
   if (charsel>0x7f) return;

   for (char_row=0;char_row<5;char_row++)
      {
         if (charsel<0x50){charpos=(((charsel&0xff)-0x20)*5);chardata=TABLE5[(charpos+char_row)];} // use TABLE5
         if (charsel>0x4f){charpos=(((charsel&0xff)-0x50)*5);chardata=TABLE6[(charpos+char_row)];} // use TABLE6

      nokia_write_data(chardata);  // send data to nokia
      }
      nokia_write_data(0x00);      // 1 byte (always blank)
}

void LcdPixel (char x, char y) {
    int16 offset;
    byte  data;

    if (x > 84) return;
    if (y > 48) return;

    offset = y - ((y / 8) * 8) - 1;
    data = (0x01 << offset);

    nokia_gotoxy(x, (y/6));
    nokia_write_data(data);
}

use this code (ccs) its very simple. first add this func. nokia_init(); and nokia_gotoxy(8,2);  set pozition printf(nokia_printchar,"sonsivri"); send your text. i tested this driver its working good  Wink
Logged

aquila non captat muscas.
bulate1983
Guest
« Reply #3 on: August 05, 2008, 02:44:44 02:44 »

@ kireytir, thanks alot, try the code later.... thanks.... Grin Grin Grin

Posted on: August 05, 2008, 02:57:00 02:57 - Automerged

@ kireytir, can you send me your compile code CCS C with message text, sorry newbie in CCS C thanks.
Logged
Kombinator
Junior Member
**
Offline Offline

Posts: 82

Thank You
-Given: 38
-Receive: 32



« Reply #4 on: August 05, 2008, 12:04:05 12:04 »

kireytir if is possibility attached sorsecode in NOTEPAD
Logged
j0k3r
Junior Member
**
Offline Offline

Posts: 40

Thank You
-Given: 43
-Receive: 18


« Reply #5 on: August 05, 2008, 01:17:40 13:17 »

Another version  Wink

Code:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*

Graphic LCD Nokia 3310 (LPH7779) routines v3
CCS compiler


by Michel Bavin 2004

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


BYTE CONST TABLE5[240]= {0x00,0x00,0x00,0x00,0x00, // 20 space ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
0x00,0x00,0x5f,0x00,0x00, // 21 !
0x00,0x07,0x00,0x07,0x00, // 22 "
0x14,0x7f,0x14,0x7f,0x14, // 23 #
0x24,0x2a,0x7f,0x2a,0x12, // 24 $
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


BYTE CONST TABLE6[240]= {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
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
0x78,0x46,0x41,0x46,0x78}; // 7f


//

void nokia_init(void);
void nokia_write_command(char bytefornokia_command);
void nokia_write_data(char bytefornokia_data);
void nokia_write_dorc(char bytefornokia);
void nokia_gotoxy(byte xnokia, byte ynokia);
void nokia_erase_y(byte ynokia);
void nokia_erase_x(byte xnokia);
void nokia_printchar(byte cvar);
void nokia_clean_ddram(void);
void table_to_nokialcd(void);
void nokia_plot(byte xnokia,byte plot_value8);
void nokia_write_data_inv(char bytefornokia_data_inv);
void nokia_clear_screen(void);
void nokia_clear_xy(byte xnokia, byte ynokia);
void nokia_print_uparrow(void);
void nokia_print_downarrow(void);
void nokia_print_leftarrow(void);
void nokia_print_rightarrow(void);
void nokia_print_degree(void);
void nokia_print_lowbatdegree(void);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void nokia_init(void)
{
tris_lcd =0x00; // oooo oooo (bits are all outputs)

delay_us(200);

nok_dc=1; // bytes are stored in the display data ram, address counter, incremented automatically
nok_cs=1; // chip disabled

nok_res=0; // reset chip during 250ms
delay_ms(10); // works with less.....
nok_res=1;

nokia_write_command(0x21); // set extins extended instruction set
nokia_write_command(0xc2); // Vop  v1: 0xc8 (for 3V)// v2: 0xa0 (for 3V) // v3: 0xc2 (2v6-5v) ********************************************************************************************************************
nokia_write_command(0x13); // bias
nokia_write_command(0x20); // horizontal mode from left to right, X axe are incremented automatically , 0x22 for vertical addressing ,back on normal instruction set too
nokia_write_command(0x09); // all on

nokia_clean_ddram(); // reset DDRAM, otherwise the lcd is blurred with random pixels

nokia_write_command(0x08); // mod control blank change (all off)

nokia_write_command(0x0c); // mod control normal change

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void nokia_clean_ddram(void)
{
nokia_gotoxy(0,0); // 84*6=504 clear LCD
for (ddram=504;ddram>0;ddram--){nokia_write_data(0x00);}

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void nokia_write_command(char bytefornokia_command)
{

nok_dc=0; // byte is a command it is read with the eight SCLK pulse
nok_cs=0; // chip enabled
nokia_write_dorc(bytefornokia_command);
nok_cs=1; // chip disabled

}
/////////////////////////////////////////////////////////////////////////////////
void nokia_write_data(char bytefornokia_data)
{

nok_dc=1;
nok_cs=0; // chip enabled
nokia_write_dorc(bytefornokia_data);
nok_cs=1; // chip disabled

}
//////////////////////////////////////////////////////////////////////////////////
void nokia_write_dorc(char bytefornokia) // serial write data or command subroutine
{
char caa;
for (caa=8;caa>0;caa--) {
nok_sclk=0;
// delay_us(2);
if ((bytefornokia&0x80)==0){nok_sda=0;}
else {nok_sda=1;}
nok_sclk=1;
bytefornokia=bytefornokia<<1;
}
}
//////////////////////////////////////////////////////////////////////////////////
void nokia_gotoxy(byte xnokia, byte ynokia) // Nokia LCD 3310 Position cursor
{
nokia_write_command(0x40|(ynokia&0x07)); // Y axe initialisation: 0100 0yyy

nokia_write_command(0x80|(xnokia&0x7f)); // X axe initialisation: 1xxx xxxx
}
//////////////////////////////////////////////////////////////////////////////////
void nokia_erase_y(byte ynokia)
{
nokia_gotoxy(0,ynokia);
printf(nokia_printchar,"              ");
}
//////////////////////////////////////////////////////////////////////////////////
void nokia_erase_x(byte xnokia)
{
char column;

for (column=0;column!=6;column++){
nokia_gotoxy(xnokia,column);
nokia_write_data(0x00);
nokia_write_data(0x00);
nokia_write_data(0x00);
nokia_write_data(0x00);
nokia_write_data(0x00);
nokia_write_data(0x00);

}
}
//////////////////////////////////////////////////////////////////////////////////

void nokia_printchar(byte cvar) // Write 1 character to LCD
{
charsel=cvar;
table_to_nokialcd();
}
//////////////////////////////////////////////////////////////////////////////////
void table_to_nokialcd(void) // extract ascii from tables & write to LCD
{
if (charsel<0x20)return;
if (charsel>0x7f)return;

for (char_row=0;char_row<5;char_row++) { // 5 bytes

if (charsel<0x50){charpos=(((charsel&0xff)-0x20)*5);chardata=TABLE5[(charpos+char_row)];} // use TABLE5
else if (charsel>0x4f){charpos=(((charsel&0xff)-0x50)*5);chardata=TABLE6[(charpos+char_row)];} // use TABLE6


nokia_write_data(chardata); // send data to nokia
}

nokia_write_data(0x00); // 1 byte (always blank)

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void nokia_plot(byte xnokia,byte plot_value8)
{
char i;

plot_value32=0;
 plot_value32|=1; // unremark this if you want dotgraph instead of bargraph

for (i=0;i!=plot_value8;i++){

//plot_value32|=1; // remark this if you want dotgraph instead of bargraph
plot_value32<<=1;
}

//plot_value32|=2; // bottom line is always filled

plot_llsb=(plot_value32&0xff);
plot_ulsb=((plot_value32>>8)&0xff);
plot_lmsb=((plot_value32>>16)&0xff);
plot_umsb=((plot_value32>>24)&0xff);

nokia_gotoxy(xnokia,1);
nokia_write_data_inv(plot_umsb);

nokia_gotoxy(xnokia,2);
nokia_write_data_inv(plot_lmsb);

nokia_gotoxy(xnokia,3);
nokia_write_data_inv(plot_ulsb);

nokia_gotoxy(xnokia,4);
nokia_write_data_inv(plot_llsb);

}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


void nokia_write_data_inv(char bytefornokia_data_inv)
{
char caa;

nok_dc=1;
nok_cs=0; // chip enabled

for (caa=8;caa>0;caa--) {
nok_sclk=0;
delay_us(2);
if ((bytefornokia_data_inv&0x01)==0){nok_sda=0;}
else {nok_sda=1;}
nok_sclk=1;
bytefornokia_data_inv=bytefornokia_data_inv>>1;
}

nok_cs=1; // chip disabled
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void nokia_clear_screen(void)
{
nokia_erase_y(0);
nokia_erase_y(1);
nokia_erase_y(2);
nokia_erase_y(3);
nokia_erase_y(4);
nokia_erase_y(5);

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


void nokia_clear_xy(byte xnokia, byte ynokia)
{

nokia_gotoxy(xnokia,ynokia);
nokia_printchar(" ");


}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void nokia_print_uparrow(void)
{
nokia_write_data(0x04);
nokia_write_data(0x02);
nokia_write_data(0x7f);
nokia_write_data(0x02);
nokia_write_data(0x04);
nokia_write_data(0x00);
}
//
void nokia_print_downarrow(void)
{
nokia_write_data(0x10);
nokia_write_data(0x20);
nokia_write_data(0x7f);
nokia_write_data(0x20);
nokia_write_data(0x10);
nokia_write_data(0x00);
}
//
void nokia_print_leftarrow(void)
{
nokia_write_data(0x08);
nokia_write_data(0x1c);
nokia_write_data(0x2a);
nokia_write_data(0x08);
nokia_write_data(0x08);
nokia_write_data(0xf8);
}
//
void nokia_print_rightarrow(void)
{
nokia_write_data(0x08);
nokia_write_data(0x08);
nokia_write_data(0x2a);
nokia_write_data(0x1c);
nokia_write_data(0x08);
nokia_write_data(0x00);
}
//
void nokia_print_degree(void)
{
nokia_write_data(0x00);
nokia_write_data(0x06);
nokia_write_data(0x09);
nokia_write_data(0x09);
nokia_write_data(0x06);
nokia_write_data(0x00);

// nokia_printchar("  ");
}
//
void nokia_print_lowbatdegree(void)
{
nokia_write_data(0x00);
nokia_write_data(0x06);
nokia_write_data(0x0f);
nokia_write_data(0x0f);
nokia_write_data(0x06);
nokia_write_data(0x00);

// nokia_printchar("  ");
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


and for put something on lcd,
on your main:
Code:
.....
   NOKIA_INIT();
   NOKIA_GOTOXY(0,0);
   PRINTF(NOKIA_PRINTCHAR,"SOMETHING");
   NOKIA_GOTOXY(0,2);
   PRINTF(NOKIA_PRINTCHAR," TO LCD ");
   printF(nokia_printchar," NOKIA");
Logged
bulate1983
Guest
« Reply #6 on: August 05, 2008, 01:57:23 13:57 »

thanks alot guys.... Grin Grin Grin
Logged
markhao
Newbie
*
Offline Offline

Posts: 9

Thank You
-Given: 1
-Receive: 1

every moss and cobweb


« Reply #7 on: August 05, 2008, 02:10:19 14:10 »

what pic chip did you use? Huh

hehe. . . member ka din pala dito bro..
Logged

scars of a failing heart
bulate1983
Guest
« Reply #8 on: August 05, 2008, 03:37:05 15:37 »

uu balak ko kc interface nag nokia 3310, hehehe PIC16f877
« Last Edit: August 05, 2008, 03:42:57 15:42 by bulate1983 » Logged
MCan
Junior Member
**
Offline Offline

Posts: 72

Thank You
-Given: 15
-Receive: 119


end of file


WWW
« Reply #9 on: August 07, 2008, 01:13:06 01:13 »

i attached sample shema and code. i hope it ll be helpful.

kireytir if is possibility attached sorsecode in NOTEPAD
http://c.ir2.org/elektronik/3310.c

good works
« Last Edit: August 07, 2008, 01:18:35 01:18 by kireytir » Logged

aquila non captat muscas.
remromgab15
Newbie
*
Offline Offline

Posts: 22

Thank You
-Given: 2
-Receive: 6


« Reply #10 on: August 29, 2008, 07:09:07 07:09 »

what pic chip did you use? Huh

hehe. . . member ka din pala dito bro..

Nagkikita rin pala tayo dito (we're seeing each other here). he he he
Logged
Pages: [1]
Print
Jump to:  


DISCLAIMER
WE DONT HOST ANY ILLEGAL FILES ON THE SERVER
USE CONTACT US TO REPORT ILLEGAL FILES
ADMINISTRATORS CANNOT BE HELD RESPONSIBLE FOR USERS POSTS AND LINKS

... Copyright © 2003-2999 Sonsivri.to ...
Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines LLC | HarzeM Dilber MC