//void init_port(void);
//void out_data(char);
//void out_control(char);
//void delayy(int);
//void lcd_control_write(void);
//void init_lcd(void);
//void write_data(char);
//void write_string(char *);
void setup()
{
// put your setup code here, to run once:
init_port();
init_lcd();
write_string("Welcome");
}
void write_string(char *ptr)
{
while(*ptr!=0)
{
//*ptr = write_data;
write_data(*ptr);
ptr++;
}
}
void init_port()
{
volatile char *dirf, *dirk;
//volatile char *outf, *outk;
dirf = 0x30; dirk = 0x107;
//outf = 0x31; outk = 0x108;
*dirf = 0xFF; *dirk = 0x03;
}
void out_data(char out)
{
//volatile char *outf = (volatile char *)(0x31);
volatile char *outf;
outf = 0x31;
*outf = out;
}
void out_control(char out)
{
volatile char *outk;
outk = 0x108;
*outk = out;
}
void delayy(int x)
{
volatile long i;
while(x)
{
for(i=0; i<100000; i++);
x--;
}
}
void lcd_control_write()
{
out_control(0x01);
delayy(1);
out_control(0x00);
delayy(1);
}
void init_lcd()
{
out_data(0x38);
lcd_control_write();
out_data(0x0F);
lcd_control_write();
out_data(0x01);
lcd_control_write();
out_data(0x06);
lcd_control_write();
}
void write_data(char data)
{
out_data(data);
out_control(0x02);
delayy(1);
out_control(0x03);
delayy(1);
out_control(0x02);
delayy(1);
}
void loop() {
// put your main code here, to run repeatedly:
}