Hi,
Small demo... (CCS C, SBC44B,877A,20MHz):
I2C_LCD2S.C
-----------------------------------------------------------------------------------------------------------------------------------
#include <string.h>
#define adresLCD2S_1 0x50 // DIP switch 00
#define adresLCD2S_2 0x52 // DIP switch 01
#define adresLCD2S_3 0x54 // DIP switch 10
#define backlight_on_ 0x28
#define backlight_off_ 0x20
#define clear_display_ 0x8C
#define display_on_ 0x1A
#define display_off_ 0x12
#define cursor_forward_ 0x09
#define cursor_backwards_ 0x01
#define blinking_cursor_on_ 0x18
#define blinking_cursor_off_ 0x10
#define underline_cursor_on_ 0x19
#define underline_cursor_off_ 0x11
#define move_cursor_right_ 0x83
#define move_cursor_left_ 0x84
#define shift_display_right_ 0x85
#define shift_display_left_ 0x86
#define shift_display_up_ 0x87
#define shift_display_down_ 0x88
#define write_parsed_string_ 0x80
#define line1_ 0x0d
#define line2_ 0x0a
unsigned char i, max;
void command2lcd(BYTE adres, BYTE komenda)
{
i2c_start();
i2c_write(adres);
i2c_write(komenda);
i2c_stop();
}
void LCD_write(char * text,BYTE adres, BYTE komenda,BYTE linia)
{
i2c_start();
i2c_write(adres);
i2c_write(komenda);
i2c_write(linia); //adres linii
max=strlen(text);
for(i=0; i<=max-1; i++)
{
i2c_write(text
);
}
i2c_stop();
}
-----------------------------------------------------------------------------------------------------------------------------------
and LCD2SDEMO.C
-----------------------------------------------------------------------------------------------------------------------------------
#include "C:\Program Files\PICC\Projects\CCS\LCD2SDEMO.h"
#include "C:\Program Files\PICC\Drivers\I2C_LCD2S.c"
//#include "C:\Program Files\PICC\Drivers\MY_IOR5S.c"
//#include "C:\Program Files\PICC\Drivers\MY_SBC44B.c"
unsigned char bufor1[17];
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
delay_ms (500);
command2lcd(adresLCD2S_1, backlight_off_);
delay_ms (500);
command2lcd(adresLCD2S_1, backlight_on_);
delay_ms (500);
command2lcd(adresLCD2S_1, display_off_);
delay_ms (500);
command2lcd(adresLCD2S_1, display_on_);
delay_ms (500);
command2lcd(adresLCD2S_1, clear_display_);
delay_ms (1000);
strcpy(buffer1,"First line");
LCD_write(bufor1, adresLCD2S_1, write_parsed_string_,line1_);
strcpy(buffer1,"Second line");
LCD_write(bufor1, adresLCD2S_1, write_parsed_string_,line2_);
while (1);
}
-----------------------------------------------------------------------------------------------------------------------------------

Regards,
Mariusz