Witam!
Próbuję napisać sterownik do wyświetlacza LCD zgodnego z HD44780ale bezskutecznie.
W trybie debugowania, woltomierzem sprawdzałem po kolei, czy mikrokontroler dobrze ustawia każdy z pinów. I jest tak jak w kodzie.
RW jest na stałe podpięte do masy.
Częstotliwość taktowania procesora : 8 MHz
Wyświetlacz: 2 wierszowy
Rozmiar Znaku: 5x8 <-- Też dziwne, że nie 5x7 albo 5x10
Po każdej komendzie "funkcji" występuje opóźnienie:
//Opoznienie=5ms
for(opoznienie = 0; opoznienie < 40000; opoznienie++);
0 logiczne odpowiada napięciu 0,01[V]
1 logiczna odpowiada napięciu 2,9[V]
Zasilanie odpowiada napięciu 4,6[V]
Z góry dziękuję za pomoc.
Próbuję napisać sterownik do wyświetlacza LCD zgodnego z HD44780ale bezskutecznie.
W trybie debugowania, woltomierzem sprawdzałem po kolei, czy mikrokontroler dobrze ustawia każdy z pinów. I jest tak jak w kodzie.
RW jest na stałe podpięte do masy.
Częstotliwość taktowania procesora : 8 MHz
Wyświetlacz: 2 wierszowy
Rozmiar Znaku: 5x8 <-- Też dziwne, że nie 5x7 albo 5x10
Po każdej komendzie "funkcji" występuje opóźnienie:
//Opoznienie=5ms
for(opoznienie = 0; opoznienie < 40000; opoznienie++);
0 logiczne odpowiada napięciu 0,01[V]
1 logiczna odpowiada napięciu 2,9[V]
Zasilanie odpowiada napięciu 4,6[V]
void LCD_WriteNibble(int nibbleToWrite)
{
LCD_D4_bb=((nibbleToWrite & 0x01)>>0);
LCD_D5_bb=((nibbleToWrite & 0x02)>>1);
LCD_D6_bb=((nibbleToWrite & 0x04)>>2);
LCD_D7_bb=((nibbleToWrite & 0x08)>>3);
LCD_EN_bb=1;
LCD_EN_bb=0;
}
void LCD_WriteCommand(int commandToWrite)
{
LCD_RS_bb=0;
LCD_WriteNibble(commandToWrite >> 4);
LCD_WriteNibble(commandToWrite & 0x0F);
}
LCD_WriteNibble(0x03);
LCD_WriteNibble(0x03);
LCD_WriteNibble(0x03);
[OPIS] W tym momencie na wyświetlaczu pojawia się "aktywny" gorny wiersz
LCD_WriteNibble(0x02);
[OPIS] Caly wyswietlacz "wylaczony", do konca
LCD_WriteCommand(0x28);
LCD_WriteCommand(0x08);
LCD_WriteCommand(0x01);
LCD_WriteCommand(0x02);
//RS=1 Proba wyswietlenia Zaku
LCD_WriteText(0b01010111);
}Z góry dziękuję za pomoc.