PINY WYŚWIETLACZA LCD
VSS [GND] (Ground): Pin zasilania, który jest podłączony do uziemienia (GND).
VDD [Vcc] (Power Supply): Pin zasilania, który jest podłączony do źródła zasilania, typowo 5V.
V0 (Contrast Adjustment): Pin regulacji kontrastu. Podłączenie potencjometru do tego pinu umożliwia regulację kontrastu wyświetlacza.
RS (Register Select): Ten pin decyduje, czy wysyłane dane są traktowane jako komenda (0) czy dane do wyświetlenia (1).
RW (Read/Write): Ten pin określa, czy mikrokontroler odczytuje (1) czy zapisuje (0) dane do/z wyświetlacza LCD.
E (Enable): Pin, który pozwala na wprowadzenie danych do wyświetlacza. Sygnał aktywowany na tym pinie sygnalizuje, że dane są gotowe do odczytu/zapisu.
OPERACJE BITOWE
1) PORTD &= 1111 1011 powoduje operację AND na PORTD i 1111 1011,
co resetuje (ustawia na 0) bit PD2 w rejestrze PORTD,
nie zmieniając wartości pozostałych bitów.
x &= y; ---> x = x & y; Przypisania AND
x |= y; ---> x = x | y; Przypisania OR
2) Operator bitowy AND = &
Porównuje wszystkie elementy x i y
x & y == x_1 AND y_1, x_2 AND y_2,..., x_n AND y_n
3) 1 << 2 przesuwa 1 o dwa miejsca w lewo, ---> NKB 0000 0100
1 << 2 == 0001 << 2 == 0100
3 << 2 == 0011 << 2 == 1100
4) Operator ~ odwraca wszystkie bity, ~(0000 0100) = 1111 1011.
5) Operator ! zmienia ich wartość logiczną. Liczby różne od 0 to TRUE
!(0010) = !(TRUE) = FALSE
~(0010) = 1101 = TRUE
PODSUMOWANIE:
PORTC |= (1 << [BiT]); Ustawia wybrany bit na 1
PORTC &= ~(1 << [BiT]); Ustawia wybrany bit na 0
PINC & (1 << [BiT]); Zczytuje wartość wybranego bitu
TYPY PORTÓW:
DDR_ (np. DDRB ) -> Rejestr kierunkowy, 0 wejście(czytanie)/ 1 wyjście(zapis przez płytkę)
PORT_ (np. PORTC) -> Rejestr odpowiedzialny za ustawianie wartości wyjściowych (Dla DDR_ = 1)
PIN_ (np. PIND ) -> Rejestrem odczytu, który pozwala na sprawdzenie stanu pinów