Логическая структура LCD контроллера HD44780
Контроллер имеет свой блок управления, который обрабатывает команды и память. Она делится на три вида:
DDRAM — память дисплея. Все что запишется в DDRAM будет выведено на экран. То есть, например, если записать туда код 0×31 — на экране выйдет символ «1″ т.к. 0х31 это ASCII код цифры 1. Но есть тут одна особенность — DDRAM память гораздо больше чем видимая область экрана. Как правило, DDRAM содержит 80 ячеек — 40 в первой строке и 40 во второй, а на дисплей может двигаться по этой линейке как окошко , высвечивая видимую область. Для перемещения дисплея есть спец команда. Также есть понятие курсора — это место в которое будет записан следующий символ, т.е. текущее значение счетчика адреса. Курсор не обязательно может быть на экране, он может располагаться и за экраном или быть отключен вовсе.
CGROM — таблица символов. Когда мы записываем в ячейку DDRAM байт, то из таблицы берется символ и рисуется на экране. CGROM нельзя изменить.
CGRAM — тоже таблица символов, но ее мы можем менять, создавая свои символы. Адресуется она линейно, то есть вначале идет 8 байт одного символа, построчно, снизу вверх — один бит равен одной точке на экране. Потом второй символ тем же макаром. Поскольку знакоместо у нас 5 на 8 точек, то старшие три бита роли не играют. Всего в CGRAM может быть 8 символов, соответственно CGRAM имеет 64 байта памяти. Эти программируемые символы имеют коды от 0х00 до 0х07..
Доступ к памяти.
Мы командой выбираем в какую именно память и начиная с какого адреса будем писать. А потом просто шлем байты. Если указано, что записываем в DDRAM то на экран (или в скрытую область) запишутся символы, если в CGRAM то байты запишутся в память знакогенератора.
Видимая и скрытая область экранной памяти
Структура адресации контроллера HD44780
Формирование символа в ячейке CGRAM
Система команд.
Для выполнения различных операций в контроллере дисплея используются специальные команды. О том, что передается команда контроллеру дисплея сообщит вход RS=0. Сама команда состоит из старшего бита, определяющего за что отвечает данная команда и битов параметров.
Таблица команд:
DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | Значение |
Очистка экрана. Счетчик адреса на 0 позицию DDRAM | ||||||||
- | Адресация на DDRAM сброс сдвигов, Счетчик адреса на 0 | |||||||
I/D | S | Настройка сдвига экрана и курсора | ||||||
D | C | B | Настройка режима отображения | |||||
S/C | R/L | - | - | Сдвиг курсора или экрана, в зависимости от битов | ||||
DL | N | F | - | - | Выбор числа линий, ширины шины и размера символа | |||
AG | AG | AG | AG | AG | AG | Переключить адресацию на SGRAM и задать адрес в SGRAM | ||
AD | AD | AD | AD | AD | AD | AD | Переключить адресацию на DDRAM и задать адрес в DDRAM |
Параметры команд имеют следующие значения
§ I/D — инкремент или декремент счетчика адреса. По дефолту стоит 0 — Декремент. Т.е. каждый следующий байт будет записан в n-1 ячейку. Если поставить 1 — будет Инкремент.
§ S- сдвиг экрана, если поставить 1 то с каждым новым символом будет сдвигаться окно экрана, пока не достигнет конца DDRAM.
§ D — включить дисплей. Если поставить туда 0 то изображение исчезнет. А чтобы картинка появилась в эту позицию надо записать 1.
§ С- включить курсор в виде прочерка. При 1 —курсор включается..
§ B — сделать курсор в виде мигающего черного квадрата.
§ S/C сдвиг курсора или экрана. Если стоит 0, то сдвигается курсор. Если 1, то экран. По одному разу за команду
§ R/L — определяет направление сдвига курсора и экрана. 0 — влево, 1 — вправо.
§ D/L — бит определяющий ширину шины данных. 1-8 бит, 0-4 бита
§ N — число строк. 0 — одна строка, 1 — две строки.
§ F- размер символа 0 — 5х8 точек. 1 — 5х10 точек (встречается крайне редко)
§ AG- адрес в памяти CGRAM
§ АD — адрес в памяти DDRAM
Ниже показано подключениене ЖКИ к МК
Алгоритм
Дата добавления: 2016-12-27; просмотров: 5063;