#include "ports.h"
#include "lcd.h"
bit_8 code *intro[]={" Digi clock by:"," Ajay Bhargav "};
bit_8 code cgram[]={0x4,0xe,0xe,0xe,0x1f,0x0,0x4,0x0,0x1,0x3,0xf,0xf,0xf,0x3,0x1,0x0,0x8,0x10,0x0,0x18,0x0,0x10,0x8,0x0,0x0,0xe,0x15,0x17,0x11,0xe,0x0,0x0,0x0,0x1,0x3,0x16,0x1c,0x8,0x0,0x0,0xa,0x1f,0x1f,0x1f,0xe,0x4,0x0,0x0,0x2,0x3,0x2,0x0e,0x1e,0x0c,0x0,0x0};
void busy()
{
D7=1;
rs=0;
rw=1;
while(D7!=0)
{
en=0;
en=1;
}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**** Writing command to LCD ****
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
void wrt_cmd(bit_8 val_lcd)
{
busy();
lcd_port=val_lcd;
rs=0;
rw=0;
en=1;
en=0;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~
**** Writing data on LCD ****
~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
void wrt_data(bit_8 *string)
{
bit_8 i;
for(i=0;string!='\0';i++)
wrt_byte(string);
}
void wrt_byte(bit_8 value)
{
busy();
lcd_port=value;
rs=1;
rw=0;
en=1;
en=0;
}
void LCD_INI(void)
{
wrt_cmd(0X38);
wrt_cmd(0X0C);
wrt_cmd(0X01);
wrt_cmd(0X06);
}
void build_ram()
{
bit_8 i;
wrt_cmd(0x40);
for(i=0;i<56;i++)
wrt_byte(cgram);
}
void disp_intro()
{
bit_8 i;
bit_16 j;
wrt_cmd(0x80);
wrt_byte(CLOCK);
wrt_data(intro[0]);
wrt_cmd(0xc0);
wrt_byte(HEART);
wrt_data(intro[1]);
wrt_byte(HEART);
for(i=0x5;i>0;i--)
for(j=0xffff;j>0;j--);
}