Beispiel #1
0
void lcd_ini()
// rotina de inicialização do display
{
   byte conta;
   output_low(lcd_d4);
   output_low(lcd_d5);
   output_low(lcd_d6);
   output_low(lcd_d7);
   output_low(lcd_rs);
   #ifdef lcd_rw
      output_high(lcd_rw);
   #endif
   output_low(lcd_enable);
   delay_ms(15);
   // envia uma seqüência de 3 vezes 0x03
   // e depois 0x02 para configurar o módulo
   // para modo de 4 bits
   for(conta=1;conta<=3;++conta)
   {
      lcd_envia_nibble(3);
      delay_ms(5);
   }
   lcd_envia_nibble(2);
   // envia string de inicialização do display
   for(conta=0;conta<=3;++conta) lcd_envia_byte(0,INI_LCD[conta]);
}
Beispiel #2
0
// rotina de inicialização do display
void lcd_ini(void)
{
	int cont;

	output_low(lcd_d4);
	output_low(lcd_d5);
	output_low(lcd_d6);
	output_low(lcd_d7);
	output_low(lcd_rs);
	output_low(lcd_en);
	#ifdef lcd_en2
	output_low(lcd_en2);
	#endif

	delay_ms(15);

	lcd_modulo = 0;

	// envia uma seqüência de 3 vezes 0x03
	// e depois 0x02 para configurar o módulo
	// para modo de 4 bits
	for(cont = 1; cont <= 3; ++cont)
	{
		lcd_envia_nibble(3);
		delay_ms(4);
	}
	lcd_envia_nibble(2);

	// envia string de inicialização do display
	for(cont = 0; cont <= 3; ++cont)
	{
		lcd_envia_byte(0, ini_lcd[cont]);
	}

	// aguarda tempo de processamento do módulo lcd
	delay_ms(5);

	// desbilita cursor do lcd
	lcd_envia_byte(0, 0x0c);

	// Inicializa ponteiros de posição
	lcd_modulo = 1;
	lcd_x = 1;
	lcd_y = 1;
}
Beispiel #3
0
// envia um dado de um byte para o display
void lcd_envia_byte(short modo, int dado)
{
	// configura a linha rs dependendo do modo selecionado
	output_bit(lcd_rs, modo);

	// envia a primeira parte do byte
	lcd_envia_nibble(dado >> 4);

	// envia a segunda parte do byte
	lcd_envia_nibble(dado & 0x0f);

	// aguarda 50 us
	delay_us(50);
}
Beispiel #4
0
void lcd_envia_byte( boolean endereco, byte dado )
{
   // coloca a linha rs em 0
   output_low(lcd_rs);
   // aguarda o display ficar desocupado
   //while ( bit_test(lcd_le_byte(),7) ) ;
   // configura a linha rs dependendo do modo selecionado
   output_bit(lcd_rs,endereco);
   delay_us(100);   // aguarda 100 us
   // caso a linha rw esteja definida, coloca em 0
   #ifdef lcd_rw
      output_low(lcd_rw);
   #endif
   // desativa linha enable
   output_low(lcd_enable);
   // envia a primeira parte do byte
   lcd_envia_nibble(dado >> 4);
   // envia a segunda parte do byte
   lcd_envia_nibble(dado & 0x0f);
}