hej,
zdaje sobie sprawe ze temat byl walkowany sporo razy, ale niestety nie udalo mi sie znalezc odpowiedzi na to z czym mam problem. Napisalem prosty program w C ktorego zadaniem mialo byc czyszczenie wyswietlacza (czyli zamiast samych kwadracikow w pierwszej linii, nie powinienem widziec niczego), ale niestety gdzies musialem popelnic blad (podlaczenie jest raczej okej - sprawdzalem juz chyba z 10 razy
). Linie danych wyswietlacza sa podpiete pod uP na caly porcie B, w trakcie pisanie programu korzystalem z -> http://student.agh.edu.pl/~michasss/elektronika/lcd.jpg
Przy czym chce wywolac funkcje CLEAR DISPLAY wiec RS=1
LCD ze sterownikiem HD44780. Dziekuje za pomoc, pozdrawiam Michal
zdaje sobie sprawe ze temat byl walkowany sporo razy, ale niestety nie udalo mi sie znalezc odpowiedzi na to z czym mam problem. Napisalem prosty program w C ktorego zadaniem mialo byc czyszczenie wyswietlacza (czyli zamiast samych kwadracikow w pierwszej linii, nie powinienem widziec niczego), ale niestety gdzies musialem popelnic blad (podlaczenie jest raczej okej - sprawdzalem juz chyba z 10 razy
Przy czym chce wywolac funkcje CLEAR DISPLAY wiec RS=1
#include <avr/io.h>
#define F_CPU 8000000
#include <util/delay.h>
#define RS PD0
#define RW PD1
#define E PD2
int main()
{
while(1)
{
DDRD |= _BV(RS); // ustawienie RS na 1
DDRD &= ~_BV(RW); // ustawienie RW na 0
DDRD &= ~_BV(E); // ustawienie E na 0
PORTB = 0x01; // wpisywanie danych
_delay_ms(1); // podtrzymanie
DDRD |= _BV(E); // ustawienie E na 1
PORTB = 0x00; // brak danych
_delay_ms(1); // podtrzymanie
DDRD &= ~_BV(E); // ustawienie E na 0
_delay_ms(1); // podtrzymanie
PORTB = 0x01; // znowu dane
DDRD |= _BV(RW); // ustawienie RW na 1
DDRD &= ~_BV(RS); // ustawienie RS na 0
}
}
LCD ze sterownikiem HD44780. Dziekuje za pomoc, pozdrawiam Michal