- Необходимые компоненты:
- Графический ЖК-дисплей:
- Отображение изображения на графическом ЖК-дисплее с использованием 8051:
- Описание схемы:
- Объяснение программирования:
В нашей повседневной жизни мы видим множество типов устройств для отображения текста, изображений и графики. ЖК-дисплеи являются одним из самых популярных устройств отображения в электронике и используются практически во всех проектах, которые отображают какую-либо информацию. В электронных проектах используется много типов ЖК-дисплеев. Мы уже использовали ЖК-дисплей 16X2 во многих наших проектах, а также использовали ЖК-дисплей TFT с Arduino. Вы можете найти все наши проекты, связанные с ЖК-дисплеями 16X2, по этой ссылке, включая взаимодействие с 8051, AVR, Arduino и многими другими.
В этом уроке мы собираемся выполнить интерфейс графического ЖК-дисплея с микроконтроллером 8051. В этом проекте мы покажем, как отображать изображение на графическом ЖК-дисплее (GLCD).
Необходимые компоненты:
- Графический ЖК-дисплей
- AT89c52 8051 Микроконтроллер
- Регулятор напряжения 7805
- Конденсатор 1000 мкФ
- Конденсатор 10 мкФ
- Резистор 10 кОм
- 10K POT
- Кристаллический осциллятор 12 MH
- Соединительный провод
- Хлебная доска
- Бург полоски мужские
- Источник питания
- СВЕТОДИОД
- Резистор 220 Ом
- Резистор 1 кОм
Графический ЖК-дисплей:
Простой ЖК-дисплей 16x2 имеет 16 контактов, а графический ЖК-дисплей - 20 контактов. Описание контакта приведено ниже в соответствии с его таблицей данных:
№ контакта | Имя контакта | Описание | Функция |
1 | VSS | Земля | 0 Вольт |
2 | VDD | Источник питания | 5 Вольт |
3 | V0 | Регулировка контрастности ЖК-дисплея | |
4 | RS | Выбор регистра команд / данных | RS = 0: выбор команды и RS = 1: выбор данных |
5 | R / W | Чтение / запись регистра | R / W = 0: выбор записи и R / W = 1: выбор чтения |
6 | E | Включить сигнал | |
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 | А | Подсветка LED | 5 Вольт |
20 | K | Подсветка LED | Земля |
Отображение изображения на графическом ЖК-дисплее с использованием 8051:
Чтобы отобразить изображение на графическом ЖК-дисплее, сначала нам нужно преобразовать это изображение в код сборки, чтобы микроконтроллер 8051 мог понять и прочитать его. Поэтому нам нужно выполнить следующие шаги для преобразования изображения в HEX-код:
Шаг 1: Сначала нам нужно загрузить приложение, которое конвертирует изображение (формат BMP) в код сборки. Поэтому загрузите приложение преобразования изображений BMP2ASM по этой ссылке, просто щелкните ссылку правой кнопкой мыши и выберите Сохранить ссылку как…
Шаг 2: Затем выберите изображение, которое вы хотите отобразить на графическом ЖК-дисплее, и преобразуйте его в BMP (если оно уже не в формате BMP) с помощью любого приложения, такого как MS Paint, Photoshop и т. Д. Или вы можете найти множество веб-сайтов в Интернете. для преобразования формата изображения. У нас есть изображение в формате BMP размером 128x64:
Шаг 3: Теперь извлеките файл BMP2ASM.zip, который мы загрузили на шаге 1, откройте в нем Bmp2asm.exe и выберите изображение BMP.
Шаг 4: Теперь нажмите «Конвертировать» в окне приложения BMP2ASM.
Шаг 5: Затем скопируйте сгенерированный код и вставьте программу 8051 в Keil uVision. Внесите некоторые изменения и скомпилируйте код.
Теперь ваш код готов к загрузке в микроконтроллер 8051.
Описание схемы:
Схема подключения для сопряжения графического ЖК-дисплея с микроконтроллером 8051 проста и почти такая же, как подключение ЖК-дисплея 16x2 к 8051. Но ЖК-дисплей 16x2 имеет 16 контактов, а GLCD - 20 контактов.
Поток 10K используется для установки контраста для GLCD. Контакты управления GLCD RS, R / W и E напрямую подключены к контактам 89C52 с номерами P1.0, P1.1 и P1.2. Контакты выбора микросхемы CS1 и CS2 ЖК-дисплея подключены к контактам P1.3 и P1.4 соответственно. Выводы данных DB0-DB7 напрямую подключены к ПОРТУ P2. Стабилизатор напряжения 7805 используется для постоянного питания 5 В. В демонстрационном видео я использовал блок питания Arduino.
Объяснение программирования:
Прежде всего, мы включаем в программу необходимые файлы заголовков и определяем биты для контрольных и информационных выводов GLCD.
#включают
После этого мы создали функцию задержки.
недействительная задержка (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, а затем установили столбец и страницу. После этого отправьте данные на ЖК-дисплей с помощью функции void lcdprint (char dat, int size) .
void main () {int x, y; P3 = 0xff; в то время как (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 столбцов.