/* Biblioteca de comandos do LCD */ /*=========================================================================================================*/ void lcd_delay(void); void lcd_comando(char); void lcd_dado(char); void lcd_init(void); void lcd_dado (char dado) { lcd_delay(); RS=1; lcd_delay(); swap(dado); DISPLAY = dado; lcd_delay(); EN=1; lcd_delay(); EN=0; swap(dado); DISPLAY = dado; lcd_delay(); EN=1; lcd_delay(); EN=0; } void lcd_comando (char dado) { lcd_delay(); RS=0; lcd_delay(); swap(dado); DISPLAY = dado; lcd_delay(); EN=1; lcd_delay(); EN=0; swap(dado); DISPLAY = dado; lcd_delay(); EN=1; lcd_delay(); EN=0; } void lcd_init() { int cont; char aux; char Inic[6]; Inic[0] = 0x33; // inicializa o display Inic[1] = 0x32; // inicializa o display Inic[2] = 0x28; // modo 4 bits Inic[3] = 0x06; // auto-incremento Inic[4] = 0x0C; // display ligado, cursor apagado Inic[5] = 0x01; // limpa o display set_tris_a(0xf0); set_tris_b(0x00); EN=0; delay_ms(5); for(cont=0;cont<6;cont++){ aux =Inic[cont]; RS=0; delay_ms(5); swap(aux); DISPLAY = aux; EN=1; delay_ms(5); EN=0; swap(aux); DISPLAY = aux; EN=1; delay_ms(5); EN=0; } } void lcd_delay(void) { delay_us(200); } /*=========================================================================================================*/ // Fim do Código /*=========================================================================================================*/