- Wymagane składniki:
- Graficzny wyświetlacz LCD:
- Wyświetlanie obrazu na graficznym wyświetlaczu LCD przy użyciu 8051:
- Objaśnienie obwodu:
- Objaśnienie programowania:
W naszym codziennym życiu widzimy wiele typów urządzeń do wyświetlania tekstu, obrazów i grafiki. Wyświetlacze LCD są jednym z najpopularniejszych urządzeń wyświetlających w elektronice i są używane w większości projektów, które wyświetlają jakieś informacje. Istnieje wiele rodzajów wyświetlaczy LCD używanych w projektach elektronicznych. W wielu naszych projektach używaliśmy już 16X2 LCD, a także używaliśmy TFT LCD z Arduino. Możesz znaleźć wszystkie nasze projekty związane z wyświetlaczem LCD 16X2, klikając ten link, w tym łącząc się z 8051, AVR, Arduino i wieloma innymi.
W tym samouczku zamierzamy połączyć graficzny wyświetlacz LCD z mikrokontrolerem 8051. W tym projekcie pokażemy, jak wyświetlić obraz na graficznym wyświetlaczu LCD (GLCD).
Wymagane składniki:
- Graficzny wyświetlacz LCD
- AT89c52 8051 Mikrokontroler
- 7805 regulator napięcia
- Kondensator 1000uf
- Kondensator 10 μF
- Rezystor 10K
- 10K POT
- Oscylator kwarcowy 12 MH
- Przewód łączący
- Deska do chleba
- Burg paski męskie
- Zasilacz
- DOPROWADZIŁO
- Rezystor 220 Ohm
- Rezystor 1K
Graficzny wyświetlacz LCD:
Prosty wyświetlacz LCD 16x2 ma 16 pinów, ale graficzny LCD ma 20 pinów. Opis pinów znajduje się poniżej, zgodnie z arkuszem danych:
Nr pinu | Nazwa pinu | Opis | Funkcjonować |
1 | VSS | Ziemia | 0 Volt |
2 | VDD | Zasilacz | 5 woltów |
3 | V0 | Regulacja kontrastu LCD | |
4 | RS | Wybór rejestru polecenia / danych | RS = 0: Wybór polecenia i RS = 1: Wybór danych |
5 | R / W | Rejestr do odczytu / zapisu | R / W = 0: Zapisz wybór i R / W = 1: Przeczytaj wybór |
6 | mi | Włącz sygnał | |
7 | DB0 | Pin wejścia / wyjścia danych (DB0-DB7) | 8 bitów (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Chip Select | CS1 = 1, sygnał wyboru chipa dla IC1 |
16 | CS2 | Chip Select | CS2 = 1, sygnał wyboru chipa dla IC2 |
17 | RST | Resetowanie | Zresetuj GLCD |
18 | VEE | Ujemne napięcie dla sterownika LCD | |
19 | ZA | Podświetlenie LED | 5 woltów |
20 | K. | Podświetlenie LED | Ziemia |
Wyświetlanie obrazu na graficznym wyświetlaczu LCD przy użyciu 8051:
Aby wyświetlić obraz na graficznym wyświetlaczu LCD, najpierw musimy przekonwertować ten obraz na kod asemblera, aby mikrokontroler 8051 mógł go zrozumieć i przeczytać. Dlatego musimy wykonać poniższe kroki, aby przekonwertować obraz na kod HEX:
Krok 1: Najpierw musimy pobrać aplikację, która konwertuje obraz (format BMP) na kod asemblera. Pobierz aplikację do konwersji obrazu BMP2ASM z tego łącza, kliknij łącze prawym przyciskiem myszy, a następnie kliknij polecenie Zapisz łącze jako…
Krok 2: Następnie wybierz obraz, który chcesz wyświetlić na graficznym wyświetlaczu LCD i przekonwertuj go na BMP (jeśli nie jest już w formacie BMP) za pomocą dowolnej aplikacji, takiej jak MS Paint, Photoshop itp. Lub możesz znaleźć wiele witryn internetowych do konwersji formatu obrazu. Poniżej obraz BMP o rozmiarze 128x64:
Krok 3: Teraz wyodrębnij plik BMP2ASM.zip, który pobraliśmy w kroku 1 i otwórz w nim plik Bmp2asm.exe i wybierz obraz BMP.
Krok 4: Teraz naciśnij „Convert” w oknie aplikacji BMP2ASM.
Krok 5: Następnie skopiuj wygenerowany kod i wklej w programie 8051 w Keil uVision. Wprowadź zmiany i skompiluj kod.
Teraz twój kod jest gotowy do przesłania w mikrokontrolerze 8051.
Objaśnienie obwodu:
Połączenia obwodów do łączenia graficznego wyświetlacza LCD z mikrokontrolerem 8051 są łatwe i prawie takie same jak podłączenie 16x2 LCD do 8051. Ale 16x2 LCD ma 16 pinów, a GLCD ma 20 pinów.
Potencjometr 10K służy do ustawiania kontrastu dla GLCD. Kołki sterujące GLCD RS, R / W i E są bezpośrednio podłączone do pinów 89C52 o numerach P1.0, P1.1 i P1.2. Piny CS1 i CS2 wyboru układu scalonego LCD są podłączone odpowiednio do pinów P1.3 i P1.4. Piny danych DB0-DB7 są bezpośrednio podłączone do PORT P2. Regulator napięcia 7805 jest używany do regularnego zasilania 5 V. W filmie demonstracyjnym użyłem zasilacza Arduino.
Objaśnienie programowania:
Przede wszystkim umieszczamy w programie wymagane pliki nagłówkowe i definiujemy bity dla pinów sterujących i danych GLCD.
#zawierać
Następnie stworzyliśmy funkcję opóźnienia.
void delay (int itime) {int i, j; dla (i = 0; i
Funkcja void lcd_disp_on () służy do włączania wyświetlacza.
Funkcja void setCursorY (int y) jest tworzona do ustawiania kolumny w GLCD, a funkcja void setCursorX (int x) jest tworzona do ustawiania strony na GLCD. Kompletny plik kodu znajduje się w poniższej sekcji Kod.
Po ustawieniu kolumny i strony napisaliśmy funkcję wysyłania poleceń i danych do GLCD.
void lcdprint (dat char, int size) {unsigned int i; dla (i = 0; i
W funkcji void main () wyczyściliśmy GLCD, a następnie ustawiliśmy kolumnę i stronę. Następnie wyślij dane do LCD za pomocą funkcji void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (obraz, x); }}…………………..
Przepływ kodu:
- Najpierw, kiedy włączamy system, program czyści GLCD i włącza wyświetlacz.
- Następnie ustaw kursor na kolumnę, z której chcemy zapisać dane.
- Następnie ustaw kursor na Page, skąd chcemy zapisać dane.
- Teraz program wysyła dane do wybranej lokalizacji jeden po drugim do 128X8 razy. Ponieważ GLCD ma 8 stron i 128 kolumn.