#pragma num_alias_table_entries 14
#pragma enable_multiple_baud
IO_0 output bitshift numbits(8) clockedge(+) io_com_data;
IO_2 output bit en;
IO_5 input bit up;
IO_6 input bit down;
IO_7 input bit enter;
IO_8 input bit esc;
int cursor = 1;
when(reset)
{
//delay 15ms
delay(600);
//datainterface 1
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00111000UL);
io_out(en, 0);
delay(1);
//delay 4.1ms
delay(160);
//datainterface 2
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00111000UL);
io_out(en, 0);
delay(1);
//delay 100us
delay(2);
//datainterface 3
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00111000UL);
io_out(en, 0);
delay(1);
//delay 4.1ms
delay(160);
//datainterface 4
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00111000UL);
io_out(en, 0);
delay(1);
//displayoff
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00001000UL);
io_out(en, 0);
delay(1);
//clear
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00000001UL);
io_out(en, 0);
delay(1);
delay(63);
//displayon
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00001110UL);
io_out(en, 0);
delay(1);
//autoforward
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00000110UL);
io_out(en, 0);
delay(1);
//welcome page
//move to central
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b11000110UL);
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110111UL);//character "7"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110001UL);//character "1"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110011UL);//character "3"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110000UL);//character "0"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110001UL);//character "1"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b10110000UL);//character "-"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00110011UL);//character "3"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01000100UL);//character "D"
io_out(en, 0);
delay(1);
//next line
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b10010101UL);
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01000110UL);//character "F"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01101001UL);//character "i"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01101110UL);//character "n"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01100001UL);//character "a"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01101100UL);//character "l"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00100000UL);//character " "
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01011001UL);//character "Y"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01100101UL);//character "e"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01100001UL);//character "a"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01110010UL);//character "r"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00100000UL);//character " "
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01010000UL);//character "P"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01110010UL);//character "r"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01101111UL);//character "o"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01101010UL);//character "j"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01100101UL);//character "e"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01100011UL);//character "c"
io_out(en, 0);
delay(1);
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01110100UL);//character "t"
io_out(en, 0);
delay(1);
//clear
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00000001UL);
io_out(en, 0);
delay(1);
delay(63);
}
when(io_changes(up)to 0)
{
//cursor up
if(cursor == 1)
{
cursor = 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b10000000UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 2)
{
cursor = cursor - 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b10000000UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 3)
{
cursor = cursor - 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b11000000UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 4)
{
cursor = cursor - 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b10010100UL);
io_out(en, 0);
delay(1);
}
}
when(io_changes(down)to 0)
{
//cursor down
if(cursor == 1)
{
cursor = cursor + 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b11000000UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 2)
{
cursor = cursor + 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b10010100UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 3)
{
cursor = cursor + 1;
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b11010100UL);
io_out(en, 0);
delay(1);
}
else if(cursor == 4)
{
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b11010100UL);
io_out(en, 0);
delay(1);
}
}
when(io_changes(enter)to 0)
{
//add character "A"
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b01000001UL);
io_out(en, 0);
delay(1);
}
when(io_changes(esc)to 0)
{
//cursor move to left
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00010000UL);
io_out(en, 0);
delay(1);
//delete character
io_out(en, 1);
io_out(io_com_data, 0b10000000UL);
io_out(io_com_data, 0b00100000UL);
io_out(en, 0);
delay(1);
//cursor move to left
io_out(en, 1);
io_out(io_com_data, 0b00000000UL);
io_out(io_com_data, 0b00010000UL);
io_out(en, 0);
delay(1);
}
               (
geocities.com/hk/cloud_fan_school/Program/LCD)                   (
geocities.com/hk/cloud_fan_school/Program)                   (
geocities.com/hk/cloud_fan_school)                   (
geocities.com/hk)