void init(void);
void write_data(char wr_data);
void write_signal(char wr_signal);
void interface_lcd(void);
void display(char *str);
void control_signal(void);
void control_data(char data);
void delay1(void);
void setup() {
// put your setup code here, to run once:
volatile char j;
volatile long i;
volatile int num[]={1,2,3,4,5,6,7,8,9};
init();
interface_lcd();
for(j=0;j<9;j++)
{
display(num[j]);
for(i=0;i<100000;i++);
}
}
void init(void)
{
volatile char *portf= 0x30;
*portf = 0xff;
volatile char *portk=0x107;
*portk = 0x03;
}
void write_data(char wr_data)
{
volatile char *data=(volatile char *)0x31;
*data = wr_data;
}
void write_signal(char wr_signal)
{
volatile char *signal=(volatile char *)0x108;
*signal = wr_signal;
}
void interface_lcd(void)
{
volatile int i;
control_data(0x38);
control_signal();
control_data(0x0f);
control_signal();
control_data(0x01);
control_signal();
control_data( 0x06);
control_signal();
}
void display(char num)
{
{
if(num) // Check num is non zero
{
// display(num/10);
control_data(num+0x30);
}
// control_data(num);
}
}
void control_signal(void)
{
write_signal(0x00);
delay1();
write_signal(0x02);
delay1();
write_signal(0x00);
delay1();
}
void control_data(char data)
{
write_data(data);
write_signal(0x01);
delay1();
write_signal(0x03);
delay1();
write_signal(0x01);
delay1();
}
void delay1(void)
{
volatile long i;
for(i=0;i<100;i++);
}
void loop() {
// put your main code here, to run repeatedly:
}