Логическая структура 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; просмотров: 4927;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.