Управление текстовым дисплеем 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Управление текстовым дисплеем



 

Цель работы

Получить навыки программирования микроконтроллера, разработать программу вывода информации на текстовый дисплей LCD1602

 

Теоретическая справка

Для того чтобы отображать информацию получаемую от приборов матрицы 8х8 точек часто бывает недостаточно, для необходимы более удобные устройства. Электронные устройства предназначенные для вывода символьной и графической информации называются дисплеями.

Для обработки команд и вывода информации на монитор в дисплей встроен микроконтроллер. В данной лабораторной работе будет рассмотрен дисплей LCD1602 (представлен на рисунке 46) на базе микроконтроллера HD44780.

Рис.46 – Внешний вид дисплея LCD1602

Рис.47 – Внешний вид вывод

 

Дисплей LCD1602 имеет 16 выводов, назначение каждого приведено в соответствии с таблицей 3:

 

 

Таблица 3 - Назначение выводов LCD1602

Вывод Название Функция
1 VSS Общий
2 VDD 3-5 В
3 VD 3.5 В
4 RS Устанавливает режим Команды / Данные
5 R/W Устанавливает режим Чтение / Запись
6 E Разрешение Чтение / Запись
7 DB0 Линия данных 0
8 DB1 Линия данных 1
9 DB2 Линия данных 2
10 DB3 Линия данных 3
11 DB4 Линия данных 4
12 DB5 Линия данных 5
13 DB6 Линия данных 6
14 DB7 Линия данных 7
15 LED+ Питание для подсветки (+)
16 LED- Питание для подсветки (-)

 

Старшие биты D0-D3 используются в "командном" режиме, в данной лабораторной работе они нам не понадобятся. Младшие биты D4-D7 в режиме "отображения данных". Для настройки контастности используется потенциометр со значением 10 Ом.

Для работы дисплеем LCD1602 следует использовать библиотеку "LiquidCrystal". Краткий перечень основных функций этой библиотеки приведен в таблице 4.

    В начале программы следует создать переменную lcd со следующей функцией LiquidCrystal(rs, enable, d4, d5, d6, d7), которая инициализирует сосединение управляющей платы Arduino с микроконтролером HD44780.

 

Таблица 4 - Перечень основных функций библиотеки LiquidCrystal

 

Название функции Параметры Описание
lcd.begin(cols, rows) lcd: переменная типа LiquidCrystal cols: количество столбцов экрана rows: количество строк экрана   Инициализирует интерфейс для взаимодействия с LCD-экраном и задает размеры (ширину и высоту) области вывода экрана. При работе с LCD-дисплеем, функция begin() должна вызываться первой и предшествовать другим командам из библиотеки LiquidCrystal.  
lcd.setCursor(col, row) col — номер строки в ряду (начиная с 0) row — номер ряда (начиная с 0 для первого ряда) Для написания текста важно установить положение курсора в определённую строку и ряд с которой экран начнет выводить последующий текст. Данная команда перемещает курсор индикатора в заданное место
lcd.Сlear()     Очищает LCD-экран и перемещает курсор в левый верхний угол.(нулевая строка и столбец)
lcd.home()   Перемещает курсор в левый верхний угол экрана. Т.е. после вызова этой функции, последующий текст будет выводится с начала экрана. Для очистки экрана используйте функцию clear()
lcd.print(data, BASE)   data — данные для печати (тип char, byte, int, long или string) BASE (опционально) — основание, по которому печатаются числа: BIN для двоичных (основание 2), DEC для десятичных (основание 10), OCT для восьмеричных (основание 8), HEX для шестнадцатеричных (основание 16) Функция print() печатает текст на жидкокристаллическом индикаторе
lcd.write(data)   data — символ, который необходимо вывести на экран Выводит символ на LCD-экран
lcd.createChar(num, data)   num — номер создаваемого символа (0 до 7) data — данные символьных пикселов   Функция createChar() создаёт пользовательский символ (глиф) для использования на жидкокристаллическом дисплее. Поддерживаются до восьми символов 5×8 пикселов (нумерация с 0 до 7). Создание каждого пользовательского символа определяется массивом из восьми байтов — один байт для каждой строки. Пять младших значащих битов каждого байта определяют пикселы в этой строке. Чтобы вывести пользовательский символ на экран, используйте функцию write() с номером символа в качестве параметра.  
lcd.scrollDisplayLeft() lcd.scrollDisplayRight()   пролистывает информацию на экране индикатора (текст и курсор) на одно знакоместо влево

 

Ход работы

В данной лабораторной работе будет расмотрена схема подключения дисплея Arduino к ЖК-дисплея с использованием библиотеки «LiquidCrystal». Для этого собираем схему в соответствии с рисукном 82. Используем потенциометр со значением сопротивления 10 Ом и резистор - 220 Ом. Потенциометр следует установить в положение максимального значения.

Рис.48 – Схема подключения дисплея LCD1602 к Arduino

 

Рис.49 - Схема подключения LCD1602 к Arduino в системе Tinkercad

Первой строкой подключаем встроенную библиотеку для для дисплея LCD 16x2:

#include <LiquidCrystal.h>

Создаем подключение LiquidCrystal lcd(RS, E, D4, D5, D6, D7) указываем выводы к которым были подключены порты

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

Для создание своего символа создадим переменную типа массив и заполним её бинарными значениями.

byte smiley[8] = { B00000, B10001, B00000, B00000, B10001, B01110, B00000};

В функции установки указываем, что дисплей имеет 16 символов и 2 строки lcd.begin(16, 2)  и используем функцию lcd. createChar (0, smiley) для создания своего символа, заданного ранее.

 

void setup () {

lcd.begin(16, 2);// указываем тип дисплея LCD 16X2

lcd. createChar (0, smiley);

}

Пример кода программы представлено ниже

void loop() {

lcd.setCursor(1,0); // положение курсора - нулевая строка, первый символ

lcd.print("HELLO WORLD ");// вывод на экран

lcd.home();// положение курсора - первая срока, первый символ

lcd.write(byte(0)); // выводим символ

lcd.setCursor(2,5);// положение курсора - вторя срока, пятый символ

lcd.print("ARDUINO");// вывод на экран

delay(100); // пауза 100 мс

lcd.scrollDisplayRight(); // сдвиг всех символов вправо на один символ

delay(500);

lcd.clear(); // очистка экрана

}

Результатом выполнения программного когда будет следующая надпись выводимая на экране (обратите внимание на первый символ и на переодический сдвиг надписи вправо) смотреть рисунок 50

Рис. 50 - Результат работы программы в системе Tinkercad


Задания к лабораторной работе:

Вариант № Задание
1 Создайте программу, выполняющие следующие задачи: При нажатии на кнопку № 1 к сумме прибавляется 1, на кнопку № 2 - прибавляется 5, кнопку № 3 - прибавляется 10. При нажатии на каждую из кнопок общая сумма выводится на дисплей по центру верхней строки, а последнее прибавленное значение в нижней строке. При старте программы сумма равны нулю.
2 Создайте программу, выполняющие следующие задачи: Каждые пять секунд выводить значение потенциометра в верхней строке первых трёх ячейках, если значение изменилось за этот период, то выводить на его месте новое, а предыдущие сдвигать вправо на одну ячейку. Под каждым сдвинутым значением в нижней строке отображать количество секунд, которые продержалось данное значение.
3 Создайте программу, выполняющие следующие задачи: при нажатии на кнопку № 1 в центре дисплея выводится созданный символ №1, при нажатии на кнопку №2 - символ №2. В первой и последней ячейке верхней строки всегда отображаются символы №1 и №2, а строго под ними в нижней строке отображаются суммарные нажатия кнопки № 1 и №2. При старте программы обе суммы равны нулю.
4 Создайте программу, выполняющие следующие задачи: при нажатии на кнопку выводит количество совершенных ранее нажатий. Последнее значение выводятся в трёх крайних правых ячейках, предыдущие значения сдвигаются влево. Отобразите совершенные нажатия римскими цифрами.
5 Создайте программу, выполняющие следующие задачи: при нажатии на кнопку № 1 запускается обратный отчет от числа 999999, при повторном её нажатии останавливается. При нажатии на кнопку № 2 в нижнюю строку копируется текущее значение верхней строки.
6 Создайте программу, выводящую на дисплей количество миллисекунд между нажатиями кнопки.
7 Создайте программу, выполняющую роль таймера. С помощью нажатий кнопки №1 выставляется количество секунд до срабатывния,одно нажатие +3 секунды. С помощью кнопки №2 запускается и прерывается таймер. Во время срабатывание таймера на дисплее отобразите моргающую надпись "Время!"
8 Создайте программу, выполняющие следующие задачи: выведите на дисплей вопрос и два варианта ответа, при нажатии на кнопку №1 или №2 пользователь совершит выбор. Покажите был ли выбор правильный или нет с помощью созданных знаков положительно и отрицательного результата. Придумайте три вопроса. После ответа на третий отобразите статистику пользователя.
9 Создайте программу счета от 0 до 10. Числа меняеются раз в секунду. Если значение будет выходить за пределы интервала, то начинается обратный счет. Если будет нажата кнопка, то вместо цифровых значений будут выводиться прописью.
10 Создайте программу, выводящую на экран бегущую строку из букв алфавита. При нажатии на кнопку №1 направление бега строки меняется, при нажатии на кнопку №2 вывод строки останавливается, кнопка №3 - вывод строки продолжается.

 

 



Поделиться:


Последнее изменение этой страницы: 2021-05-27; просмотров: 1039; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.13.255 (0.014 с.)