// source file for access lcd module
// edit on 30-10-2004 by samraeng
#define en pin_b5
#define rs pin_b2
#define rw pin_b4
//=======================defind code for entry mode=====================
#define ent_mod1  0x04// address ddram --, couser follow i/d
#define ent_mod2  0x05//address ddram -- , couser  no moving
#define ent_mod3  0x06//address ddram ++ ,couser follow i/d
#define ent_mod4  0x07//address ddram ++ ,couser  no moving
//========================defind code for display on off control========
#define on_off_mod1 0x08
#define on_off_mod2 0x09
#define on_off_mod3 0x0a
#define on_off_mod4 0x0b
#define on_off_mod5 0x0c
#define on_off_mod6 0x0d
#define on_off_mod7 0x0e
#define on_off_mod8 0x0f
//======================== defind code for function set==================

#define f_set_mod1 0x20//data access 4 bit, 1/8 duty  ,  5 x 7 dot
#define f_set_mod2 0x1f// data access 8 bit ,1/16 duty , 5 x 7 dot
#define f_set_mod3 0x30
#define f_set_mod4 0x3c
#define f_set_mod5 0x34


void clk(void)
{
  output_high(en);
  delay_ms(1);
  output_low(en);
}

void clrs(void)
{
 output_low(rs);
 output_low(rw);
 output_d (0x01);
 clk();
}

void ret_hom(void)
{
 output_low(rs);
 output_low(rw);
 output_d (0x02);
 clk();
}

void ent_mod(byte cod)
{
 output_low(rs);
 output_low(rw);
 output_d (cod);
 clk();
}
void on_off_display(byte cod_on_off)
{
 output_low(rs);
 output_low(rw);
 output_d (cod_on_off);
 clk();
}
void f_set(byte cod_f_set)
{
 output_low(rs);
 output_low(rw);
 output_d(cod_f_set);
 clk();
}
void set_ddram(byte add_ram)
{
 output_low(rs);
 output_low(rw);
 output_d(add_ram);
 clk();
}
void sent_dat(byte dat)
{
 output_high(rs);
 output_low(rw);
 output_d(dat);
 clk();
}


