Skocz do zawartości

Atmega8, LCD - wysyłanie znaków do modułu LCD


adi1525

Pomocna odpowiedź

Witam, napisałem własny program do obsługi wyświetlacza LCD, inicjacja przebiega poprawnie, ponieważ kursor miga. Nie udaje mi się natomiast wysłać jakiegokolwiek znaku, chodzi mi o wpisanie np litery A na pierwsze miejsce bez żadnych przesunięć.

Oto kod:

#include <avr/io.h> 
#include <util/delay.h> 
/* ############################################################################################## 
RS = PB0 
RW = PB1 
E = PB2 
DB0 = PDO 
DB1 = PD1 
DB2 = PD2 
DB3 = PD3 
DB4 = PD4 
DB5 = PD5 
DB6 = PD6 
DB7 = PD7 
##############################################################################################*/ 

void wyslij(int wartosc, int rs) 
{ 

PORTB &=~_BV(PB2); // E =0 
PORTB &=~_BV(PB1); //RW=0 
if (rs==0) 
{ 
PORTB &=~_BV(PB0); //rs=0 
} 

if (rs==1) 
{ 
PORTB =_BV(PB0); //rs=1 
} 

PORTD = wartosc; 

_delay_ms(1); 
PORTB =_BV(PB2); // E =1 
_delay_ms(1); 
PORTB &=~_BV(PB2); // E =0 
_delay_ms(1); 

} 
void inicjacja() 
{ 
_delay_ms(20); 
wyslij(0b00111100,0); 
_delay_ms(5); 
wyslij(0b00111100,0); 
_delay_ms(1); 
wyslij(0b00111100,0);// 3 razy wywołanie Function set interfejs 8 bitowy, 2 linie 

wyslij(0b00000001,0);// czyszczenie wyświetlacza 
wyslij(0b00000111,0);// przesuwanie napisów 
wyslij(0b00001111,0);// włączenie wyświetlacza, kursora i migania kursora 
} 

int main() 
{ 
DDRD = 0b11111111; 
DDRB = 0b11111111; 

inicjacja(); 

while(1) 
{ 

} 

} 

Próbowałem przed funkcją while wpisać:

wyslij(0b01000001,1);//0b01000001 oznacza literę 'A',1 oznacza rs = 1 czyli zapis

_delay_ms(100);

i tylko kursor przesuwa się o kilka miejsc w prawo i miga.

Link do komentarza
Share on other sites

W funkcji "wyslij":

Zamiast: "PORTB =_BV(PB0); //rs=1" powinno być: "PORTB |=_BV(PB0); //rs=1" i

zamiast: "PORTB =_BV(PB2); // E =1" powinno być: "PORTB |=_BV(PB2); // E =1".

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.