Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef F_CPU
- #define F_CPU 1000000UL
- #endif
- #include<avr/io.h>
- #define LCD_PORT PORTB
- #define RS (1<<PB2)
- #define E (1<<PB3)
- #include<util/delay.h>
- void wyslijPolBajta(char dane)
- {
- LCD_PORT |= E; //włączam pin enable
- _delay_us(1); //czas na propagację
- LCD_PORT = (LCD_PORT & 0x0F) | (dane & 0xF0); //przekazujemy dane
- _delay_us(1); //czas na propagację
- LCD_PORT &= ~E; // wyłączam pin enable
- _delay_ms(1); //czas na przetworzenie
- }
- void wyslijKomende(char dane)
- {
- LCD_PORT &= RS; // wyłączamy RS (wymagane, aby traktowane było jak komenda)
- wyslijPolBajta(dane); //wysyłamy starsze 4 bity na wyświetlacz
- wyslijPolBajta((dane<<4)); //wysyłamy młodsze 4 bity na wyświetlacz
- _delay_ms(3); //czas na przetworzenie
- }
- void wyslijZnak(char dane)
- {
- LCD_PORT |= RS; // włączamy RS (tryb wprowadzenia danych)
- wyslijPolBajta(dane); //wysyłamy starsze 4 bity na wyświetlacz
- wyslijPolBajta((dane<<4)); //wysyłamy młodsze 4 bity na wyświetlacz
- _delay_ms(3); //czas na przetworzenie
- }
- int main(void)
- {
- _delay_ms(15); //opóźnienie, aby wyświetlacz na pewno był gotowy do inicjalizacji; //ustawienie PA4-7 na wyjście
- DDRB |= 0xFF; //Ustawiene PB0-1 na wyjście
- wyslijPolBajta(0x30); //inicjalizacja wyświetlacza zgodnie z dokumentacją
- _delay_ms(5);
- wyslijPolBajta(0x30);
- _delay_us(105);
- wyslijKomende(0x32);
- wyslijKomende(0x28); // Ustawiam tryb 2 linii i znaków 5x8
- wyslijKomende(0x08); // zgodnie z dokumentacją (str. 46), musimy wyłączyć wyświetlacz
- wyslijKomende(0x01); // zgodnie z dokumentacją, czyścimy wyświetlacz
- wyslijKomende(0x07); // Ustawiam kierunek wyprowadzania tekstu i sposób wyprowadzania na wyświetlacz
- wyslijKomende(0x0C); // Włączam wyświetlacz, kursor niewidoczny, znak nie miga
- wyslijKomende(0x8F); // Ustawiam kursor na odpowiedniej pozycji (ostatnia w pierwszej linii)
- char* nazwisko = "Marcinkowski";
- while(*nazwisko)
- {
- wyslijZnak(*nazwisko++);
- }
- }
Add Comment
Please, Sign In to add comment