- Необхідні компоненти:
- Графічний РК-дисплей:
- Показ зображення на графічному РК-дисплеї за допомогою 8051:
- Пояснення схеми:
- Пояснення програмування:
У нашому повсякденному житті ми бачимо багато типів пристроїв для відображення тексту, зображень та графіки. РК-дисплеї є одними з найпопулярніших пристроїв відображення в електроніці і використовуються в основному у всіх проектах, які відображають певну інформацію. У електронних проектах використовується безліч типів РК-дисплеїв. Ми вже використовували 16X2 РК-дисплей у багатьох наших проектах, а також використовували TFT-РК-дисплей з Arduino. Ви можете знайти всі наші проекти, пов'язані з РК-дисплеєм 16X2, перейшовши за цим посиланням, включаючи взаємодію з 8051, AVR, Arduino та багатьма іншими.
У цьому підручнику ми збираємось виконати графічний РК-інтерфейс з мікроконтролером 8051. У цьому проекті ми покажемо, як відображати зображення на графічному РК-дисплеї (GLCD).
Необхідні компоненти:
- Графічний РК-дисплей
- AT89c52 8051 Мікроконтролер
- 7805 регулятор напруги
- Конденсатор 1000 мкФ
- Конденсатор 10 мкФ
- 10K резистор
- 10K POT
- Кристалічний генератор 12 МГн
- З'єднувальний провід
- Хлібна дошка
- Бург смужки самця
- Блок живлення
- СВІТЛОДІОДНИЙ
- Резистор 220 Ом
- 1K резистор
Графічний РК-дисплей:
Простий РК-дисплей 16x2 має 16 висновків, але графічний РК-екран має 20 висновків. Опис штифтів наведено нижче відповідно до його таблиці:
No контакту | Ім'я PIN-коду | Опис | Функція |
1 | VSS | Земля | 0 Вольт |
2 | VDD | Блок живлення | 5 Вольт |
3 | V0 | Регулювання контрастності РК-дисплея | |
4 | RS | Вибір реєстру команд / даних | RS = 0: вибір команди та RS = 1: вибір даних |
5 | R / W | Реєстр читання / запису | R / W = 0: Вибір виділення та R / W = 1: Вибір виділення |
6 | Е | Увімкнути сигнал | |
7 | DB0 | Штифт введення / виведення даних (DB0-DB7) | 8 біт (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Вибір чіпа | CS1 = 1, сигнал вибору мікросхеми для IC1 |
16 | CS2 | Вибір чіпа | CS2 = 1, сигнал вибору мікросхеми для IC2 |
17 | RST | Скинути | Скиньте GLCD |
18 | VEE | Негативна напруга для РК-драйвера | |
19 | A | Світлодіодне підсвічування | 5 Вольт |
20 | К | Світлодіодне підсвічування | Земля |
Показ зображення на графічному РК-дисплеї за допомогою 8051:
Щоб показати зображення на графічному РК-дисплеї, спочатку нам потрібно перетворити це зображення в код збірки, щоб мікроконтролер 8051 міг його зрозуміти та прочитати. Отже, нам потрібно виконати наведені нижче кроки для перетворення зображення в шістнадцятковий код:
Крок 1: Спочатку нам потрібно завантажити програму, яка перетворює зображення (формат BMP) у код збірки. Тож завантажте програму перетворення зображень BMP2ASM за цим посиланням, просто клацніть правою кнопкою миші на посилання, а потім натисніть Зберегти посилання як…
Крок 2: Потім виберіть зображення, яке ви хочете відобразити на графічному РК-дисплеї, і перетворіть його у BMP (якщо воно ще не у форматі BMP), використовуючи будь-які додатки, такі як MS Paint, Photoshop тощо. Або ви можете знайти багато веб-сайтів в Інтернеті для перетворення формату зображення. Ми маємо нижче зображення BMP, розміром 128x64:
Крок 3: Тепер витягніть файл BMP2ASM.zip, який ми завантажили на кроці 1, і відкрийте в ньому Bmp2asm.exe та виберіть зображення BMP.
Крок 4: Тепер натисніть “Convert” у вікні програми BMP2ASM.
Крок 5: Потім скопіюйте згенерований код і вставте в програму 8051 у Keil uVision. Внесіть деякі зміни та скомпілюйте код.
Тепер ваш код готовий до завантаження в мікроконтролер 8051.
Пояснення схеми:
Схема з'єднань для взаємодії графічного РК-дисплея з мікроконтролером 8051 проста і майже така ж, як підключення РК-дисплея 16x2 до 8051. Але РК-дисплей 16x2 має 16 висновків, а GLCD має 20-контактний.
Для встановлення контрастності для GLCD використовується горщик 10K. Виводи управління GLCD RS, R / W та E безпосередньо підключені до виводів 89C52 P1.0, P1.1 і P1.2. Виводи мікросхеми CS1 та CS2 РК-дисплея підключені до контактів P1.3 та P1.4 відповідно. Виводи даних DB0-DB7 безпосередньо з'єднані через PORT P2. Регулятор напруги 7805 використовується для звичайного живлення 5 вольт. У демонстраційному відео я використовував блок живлення Arduino.
Пояснення програмування:
Перш за все, ми включаємо необхідні файли заголовків у програму та визначаємо біти для керуючого та контактного даних GLCD.
#включати
Після цього ми створили функцію затримки.
void delay (int itime) {int i, j; для (i = 0; i
Функція void lcd_disp_on () використовується для увімкнення дисплея.
Функція void setCursorY (int y) створюється для встановлення стовпця в GLCD, а функція void setCursorX (int x) створюється для встановлення сторінки на GLCD. Повний файл коду наведено нижче в розділі коду.
Після встановлення стовпця та сторінки ми написали функцію для надсилання команд та даних до GLCD.
void lcdprint (char dat, int size) {unsigned int i; для (i = 0; i
У функції void main () ми очистили GLCD, а потім встановили Column and Page. Після цього надішліть дані на РК-екран за допомогою функції 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 (зображення, x); }}…………………..
Потік коду:
- Спочатку, коли ми вмикаємо систему, програма очищає GLCD і вмикає дисплей.
- Потім встановіть курсор на Стовпець, звідки ми хочемо записати Дані.
- Потім встановіть курсор на Сторінку, звідки ми хочемо записати Дані.
- Тепер програма надсилає дані у вибране місце по черзі до 128X8 разів. Оскільки GLCD має 8 сторінок і 128 колонок.