Modifikasi pada programming perlu dibuat untuk menghasilkan character yang bergerak. Programming projek sebelum ini boleh lihat post saya bertajuk .:Projek PIC-LCD HD44780:.
Modifikasi yang perlu dibuat adalah dengan menambahkan satu lagi funsi/function, function definition adalah seperti berikut :
void lcd_puts(const char * s)
{
LCD_RS = 1;// write characters
int i=0;
while(*s && i <16)
{
lcd_write(*s++);
i++;
}
}
Modifikasi pada function main juga perlu di ubah seperti dibawah :
void main(void)
{
const char s[] =" http://robot-geek.blogspot.com;PENYELIA PROJEK : EN. HISYAMSANI; ";
const char t[] ="PELAJAR:AZHAR;QAYYUM,NAZRI,AFIQ,REBITA & SUNTI";
//lcd_init(); //initialise the LCD
pic_init(); //initialize PIC
lcd_init(); //initialize LCD
char *b;
char *c;
int son=1;
b=&s;
c=&t;
for(;;)
{
lcd_goto(0x40);// select first line
lcd_puts(b);
lcd_puts(c);
lcd_goto(0x00);// Select second line
lcd_puts("<--:ROBO-ROI:-->");
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
__delay_ms(39);
if(*b)
{
*b++; //scrolling to next char
}
else {
if(son)
{
b=&s;
c=&t;
son=0;
}
else
{
b=&t;
c=&s;
son=1;
}
}
lcd_clear();
}
}
Disini ingin saya ingatkan, delay adalah untuk mempercepat atau melambatkan pergerakan character. Semakin banyak delay ditambah semakin perlahan pergerakannya. Selamat mencuba. Display kurang jelas, sebab bateri dah nak habis. Heh....heh..


