Example #1
0
void lcd_write(bool ctrl, uint8_t dat)
{
  lcd_write_4b(ctrl, dat << 0);
  lcd_write_4b(ctrl, dat << 4);
  if (ctrl && !(dat & 0xfc)) _delay_us(d1);
  else                       _delay_us(d2);
}
Example #2
0
void lcd_init()
{
  //static bool power_on_reset = 1;
  //if (power_on_reset) {
  //  power_on_reset = 0;
    timer_sleep_ms(40);
  //}

  uint8_t d;

  d  = 0x30;
  lcd_write_4b(1, d);
  _delay_us(d2);

  d  = 0x20;     // Function set
  d |= (1 << 3); // 1/2 line mode
  d |= (0 << 2); // 5x8/5x11 dots
  lcd_write(1, d);
  lcd_write(1, d);

  d  = 0x08;     // Display on/off control
  d |= (1 << 2); // display enable
  d |= (0 << 1); // cursor enable
  d |= (0 << 0); // blink enable
  lcd_write(1, d);

  d  = 0x01;     // Display clear
  lcd_write(1, d);

  d  = 0x04;     // Entry mode set
  d |= (1 << 1); // dec/inc mode
  d |= (0 << 0); // entire shift
  lcd_write(1, d);

  lcd_write(1, 0x01);
  lcd_pos = 0;
  fb[LCD_S] = 0;
}
Example #3
0
//convert the 8 bit data to 4 bit data and send to lcd
void LCD_write(u08 data, u08 data_type)
{
	Databus_clear();
	lcd_write_4b( ((data&0xF0)>>4), data_type);
	lcd_write_4b( (data&0x0F), data_type);
}