example with using pic and nokia 3310 lcd

General discussion on mikroC.
Post Reply
Author
Message
geri_kerschi
Posts: 63
Joined: 03 Nov 2005 10:54

example with using pic and nokia 3310 lcd

#1 Post by geri_kerschi » 27 Dec 2007 15:52

Hi!

Where i can download the example for using a Nokia 3310 LCD?
This was the Url vor Pascal:
http://www.mikroelektronika.co.yu/engli ... oject0009/
It don't work, and i need it for microc.

Can anyone send me the example?

Best Regards
Geri

brunai
Posts: 71
Joined: 07 Nov 2006 06:53
Location: brunai,bandar seri

ok

#2 Post by brunai » 28 Dec 2007 09:12

i think this code will help you
this code implement for mikroC
you can include these two files<lph7779_v3.h> & <all.h> to your project
good luck

Code: Select all

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

Graphic LCD Nokia 3310 (LPH7779) routines v3


*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef _lph7779_v3
#define _lph7779_v3
#include <all.h>
//===================
#define nok_sclk portd.f5
#define nok_sda   portd.f4
#define nok_dc    portd.f0 //portc.f5
#define nok_cs    portd.f3
#define nok_res   portd.f2
#define putchar(c) nokia_printchar(c)
//#define putchar(c) nokia_printchar(c)
//#define putd(c) putchar(c+48)

unsigned short newline=0;
int ddram;
char charsel,char_row,charpos,chardata,plot_value;
long plot_value32,plot_llsb,plot_ulsb,plot_lmsb,plot_umsb;

const char 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


const char 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)
{
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)
{
 char row;
 for(row=0;row<79;row++)
{
nokia_gotoxy(row,ynokia);
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("  ");
}
//++++++++++++++++++++++++++++++++++++++
// void putchar(char c)
//{
// nokia_printchar(c);
/* switch(c)
 {

  case '\n':nokia_gotoxy(0,++newline);break;
  default:nokia_printchar(c);break;
  }  */
//}
//--------------------------------
void printf(char*ptr)
{

 while(*ptr){
             putchar(*ptr++);

             }
 }
 //====================================
 void putc(char c)
 {
  unsigned char data[3]={0};
  data[1] =c%10;
  data[0] =(char)(c/10)%10;
  data[1]+=48;
  data[0]+=48;
  printf(data);
  }
//===================================
 unsigned short show_month(BYTE month_y) {
   switch(month_y){
                 case 1:printf("Jan");break;
                 case 2:printf("Feb");break;
                 case 3:printf("Mar");break;
                 case 4:printf("Apr");break;
                 case 5:printf("May");break;
                 case 6:printf("Jun");break;
                 case 7:printf("Jul");break;
                 case 8:printf("Aug");break;
                 case 9:printf("Sep");break;
                 case 10:printf("Oct");break;
                 case 11:printf("Nov");break;
                 case 12:printf("Dec");break;
                 }
              return 1;
    }
//============================================
    char* mod_month(BYTE month_y)
    {

     switch(month_y){
                        case 1:return "Jan";
                        case 2:return "Feb";
                        case 3:return "Mar";
                        case 4:return "Apr";
                        case 5:return "May";
                        case 6:return "Jun";
                        case 7:return "Jul";
                        case 8:return "Aug";
                        case 9:return "Sep";
                        case 10:return "Oct";
                        case 11:return "Nov";
                        case 12:return "Dec";
                        }


    }
//==================================================
  //====================================
   unsigned short show_week(BYTE week_day){
   switch(week_day){
                case 1:printf("Mo");break;
                case 2:printf("Tu");break;
                case 3:printf("We");break;
                case 4:printf("Th");break;
                case 5:printf("Fr");break;
                case 6:printf("Sa");break;
                case 7:printf("Su");break;
                }
            return 1;
    }
    //======================================
    char* mod_week(BYTE week_day)
    {

     switch(week_day){
                      case 1:return "Mo";
                      case 2:return "Tu";
                      case 3:return "We";
                      case 4:return "Th";
                      case 5:return "Fr";
                      case 6:return "Sa";
                      case 7:return "Su";
                      }


    }
//-============================================
void show_date1(BYTE*date)
{
  switch(date[0]){
                case 1:printf("Mo");break;
                case 2:printf("Tu");break;
                case 3:printf("We");break;
                case 4:printf("Th");break;
                case 5:printf("Fr");break;
                case 6:printf("Sa");break;
                case 7:printf("Su");break;
                }
    putchar('.');
    putc(date[1]);
    putchar('/');
    switch(date[2]){
                 case 1:printf("Jan");break;
                 case 2:printf("Feb");break;
                 case 3:printf("Mar");break;
                 case 4:printf("Apr");break;
                 case 5:printf("May");break;
                 case 6:printf("Jun");break;
                 case 7:printf("Jul");break;
                 case 8:printf("Aug");break;
                 case 9:printf("Sep");break;
                 case 10:printf("Oct");break;
                 case 11:printf("Nov");break;
                 case 12:printf("Dec");break;
    }
    putchar('/');
    putc(date[3]);
 }
//=============================================
unsigned short show_clock(BYTE* clock)
{
    BYTE i=0;
     for(i=2;i<255;i--)
     {
         putc(clock[i]);
        if(i) putchar(':');
     }
     return 1;
}
//==============================================
unsigned short show_time_set(BYTE*clock)
{

         nokia_gotoxy(10,0);
         printf("Minute:");putc(clock[1]);
         nokia_gotoxy(10,1);
         printf("Hour:");putc(clock[2]);
         nokia_gotoxy(10,2);
         printf("Week:");printf(mod_week(clock[3]));
         nokia_gotoxy(10,3);
         printf("Day:");putc(clock[4]);
         nokia_gotoxy(10,4);
         printf("Month:");printf(mod_month(clock[5]));
         nokia_gotoxy(10,5);
         printf("Year:");putc(clock[6]);
        return 1;
}
//===========================================================
void show_menu(){
               nokia_gotoxy(10,0);
               printf("TimeSet");
               nokia_gotoxy(10,1);
               printf("Reminder");
               nokia_gotoxy(10,2);
               printf("AlarmClock");
               nokia_gotoxy(10,3);
               printf("Settings");
               nokia_gotoxy(10,4);
               printf("Exit");
               nokia_gotoxy(10,5);
               printf("Save");
               }
//==============================================================
unsigned short show_date(BYTE*date)   //very fast function passed
{
  BYTE*ptr=date;
  printf(mod_week(*ptr++)); //week
 // show_week(*ptr++);

  putchar('.');
  putc(*ptr++);  //day
  putchar('/');
  printf(mod_month(*ptr++)); //month
 // show_month(*ptr++);

  putchar('/');
  putc(*ptr); //year
  return 1;
}
  
 

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

#endif

Code: Select all

#ifndef _ALL_H
#define _ALL_H
//--------------------------
typedef unsigned char BYTE ;

typedef unsigned short USHORT;
typedef unsigned int WORD ;
typedef unsigned long TLONG;
typedef int int16;
typedef long int int32;
//--------------------------
#define key_enter portd.f0
#define key_min portd.f2
#define key_plus portd.f3
//-------------------------
BYTE k_button =0;
#define k_enter k_button.f0
#define k_plus k_button.f1
#define k_min k_button.f2
#define k_temp k_button.f3
#define k_temp1 k_button.f4
#define k_set k_button.f5
#define k_data k_button.f6
//-----------------------

//---------------- macro buttons-----------
#define _KEY_ENTER (key_enter && k_enter)
#define _KEY_PLUS (key_plus && k_plus)
#define _KEY_MIN (key_min && k_min)
//---------------------
#define _KEY_SUB_ENTER (_KEY_ENTER && k_temp)
#define _KEY_MENU_ENTER (_KEY_ENTER &&!k_temp)
//-------------------------
//----------- macro --------
#define ERASE_ROW(var) lcd_out(var,1,empty_15);

//------- flages 1 to 8 -----------
BYTE BOOLEEN = 0;
#define ENTER_FLAG BOOLEEN.F0
#define EXIT_FLAG BOOLEEN.F1
#define TEMP_FLAG BOOLEEN.F2
#define MENU_FLAG BOOLEEN.F3
#define PLUS_FLAG BOOLEEN.F4
#define MIN_FLAG BOOLEEN.F5
#define ERASE_FLAG BOOLEEN.F6
#define SHOW_FLAG BOOLEEN.F7
//-------------------------
#define ARROW_FLAG BOOLEEN.F7
#define TIME_FLAG BOOLEEN.F6
// -----------------
//#define enter F_1
//#define exit F_2
//#define close F_3
//#define save F_4
//#define nsave F_5
//#define pass F_6
#define Esave F_7
//#define flag2 F_8
//---------- CONSTANTS ---------------
#define SET 1
#define CLR 0
#define TRUE SET
#define FALSE CLR
#define SEEK 1
#define NSEEK 0
#define IN 1
#define OUT 0
#define INPUT 0xFF
#define OUTPUT 0x00
//---------- PORTB CONFIG  --------------
#define B0 PORTB.F0
#define B1 PORTB.F1
#define B2 PORTB.F2
#define B3 PORTB.F3
#define B4 PORTB.F4
#define B5 PORTB.F5
#define B6 PORTB.F6
#define B7 PORTB.F7
//-----------PORTD CONFIG------------
#define D0 PORTD.F0
#define D1 PORTD.F1
#define D2 PORTD.F2
#define D3 PORTD.F3
#define D4 PORTD.F4
#define D5 PORTD.F5
#define D6 PORTD.F6
#define D7 PORTD.F7
//---------- PORTD CONFIG DIG_7seg --------------
#define DIG1 PORTD.F4
#define DIG2 PORTD.F5
#define DIG3 PORTD.F6
#define DIG4 PORTD.F7
//------------- INTCON macro ---------
#define INT_TOIE  0xA0
#define INT_TOIF_CLR   0x20
#define ASSIGNED_TMR0 0x80
// --------- constant string ---------
//#define ERROR "Error!"
//#define WAIT "Wait!"
//#define SAVE "Save:"
//#define YES "Yes!"
//#define NO "No!"
// -----------------------------------
//---------- function dalay -----------

//--------------------------------
//--------- macro ------
#define B_S_F(reg,num) reg|=(1<<num)
#define BIT_SET(reg,num) reg|=(1<<num)
//------------------
#define B_C_F(reg,num) reg&=(~(1<<num))
#define BIT_CLR(reg,num) reg&(~(1<<num))
//-------------
#define B_T_F(reg,num)    reg&(1<<num)


//--------------------------
#endif
regards brunai
"when you keep your face to the sun shadows fall behind"
[img]http://www.expertrating.com/logos/C%20Programming.gif[/img][img]http://www.expertrating.com/logos/ComputerSkills.gif[/img]

Stomper
Posts: 1
Joined: 09 Jul 2008 12:56

#3 Post by Stomper » 09 Jul 2008 13:11

Hi all! im beginning to learm mikroC by now with the mikroC compiler. Ive programmed manny pics before with mplab in the language asm. Also ive programmed some C with keil microvision and i have some C++ knowledge.

Now i want to bring a 3310 lcd screen alive on a 16F690 pic processor. I've allready done that with asm coding but now want to try it with c coding and look at the advantages of quick programming in C.

But... ive tried and tried but all i got is warning and error messages.

Please ... who can help me with this..?

(ive used the exact .h files from this topic)

Code: Select all

/*
 * Project name:
     3310 lcd on a 16F690 processor
 * doesn't work at this time because of k#^3kj323@# compiler errors
*/

#include "lph7779_v3.h"
#include "all.h"

char tempchar[15];

void main() {
  INTCON = 0;         // disable all interrupts
  nokia_init();				// nokia 3310 lcd init.

  nokia_gotoxy(0,2);
  sprintf(tempchar,"Sleeping...");
  nokia_printchar(tempchar);
  while (1) {
  //do nothing
  }
}
SCREENSHOT:
Image

i dont understand the main identifier reidentified error...

gicuIO
Posts: 2
Joined: 08 Dec 2008 19:38

3310

#4 Post by gicuIO » 08 Dec 2008 20:05

You have that error cus u used sprintf function that is not used in the library. :!:

atakan_1907
Posts: 22
Joined: 19 Apr 2009 20:19
Location: Türkiye

#5 Post by atakan_1907 » 19 Apr 2009 20:22

The lph library return errors while compiling. Help!

NuMcA
Posts: 37
Joined: 24 Dec 2009 17:08
Location: Athens, Greece
Contact:

Re: example with using pic and nokia 3310 lcd

#6 Post by NuMcA » 13 Oct 2010 12:00

Anyone had any luck on MikroBasic PRO with this library?
THX
My simulation cockpit and other projects: www.numca.grImage

Post Reply

Return to “mikroC General”