Вы находитесь на странице: 1из 9

2-1/1. Жидкокристаллический, графический модуль MT-12864.. (128х64 точки).

Структура кристалла. Функции выводов. Принцип вывода на индикацию.


Управляющие инструкции, применяемые в режиме записи.

Графические модули это одна из специфических разновидностей ЖК-модулей.


Ранее речь шла о ЖК-модулях на основе м/контроллера HD44780.
В этих модулях имеется четко выраженное разделение на строки.
Каждая строка содержит в себе фиксированное количество знакомест (зависит от типа)
одинаковой "конструкции".
В "штатном" режиме работы, в любое из этих знакомест, на индикацию, может быть
выведен тот или иной "штатный" символ, "лежащий" в ПЗУ (программируется на
заводе-изготовителе).
Хотя и имеется "нештатный режим", в котором можно "сконструировать" нестандартный
символ или их группу (см. подраздел 1/2 "Обмена…" статья Игоря Батова), но это
конструирование "вершится в узких рамках" строки, и поэтому целостную, "габаритную
картинку", таким способом, создать не получится (вспомните хотя бы о том, что между
строками имеются "технологические разрывы").
Поэтому "особо не разгуляешься".
С точки зрения работы со "стандартом" (с теми символами, которые "заложены" в ПЗУ
на заводе-изготовителе), ЖК-модули на основе HD44780 очень удобны.
А если на индикацию требуется вывести "габаритную, нестандартную (творческую)"
картинку, которая не умещается в "границах" одной строки, и нужно, чтобы эта
картинка смотрелась как единое целое (без "разрывов")?
Чтобы "провернуть такое дельце", нужно, как минимум:
- отказаться от "услуг" знакогенератора (так как стандарт отсутствует) и
"моделировать" (создавать) картинку программно.
Это равносильно переходу от
рисования по трафарету (шаблону)
к "ваянию картины".
- иметь дисплей, представляющий
собой "набор" равномерно
распределенных, по всей
площади дисплея, точек.
Это предполагает формальный
отказ от фиксированного
разделения на строки.
Для обеспечения удобства "ваяния"
картинки, неформальное разделение
на строки может иметь место быть,
но это разделение будет не строго
фиксированным ("заводским"), а
достаточно условным, так как
длина, высота и месторасположение
этих строк зависят как от
конкретной задачи, так и от
загадочной личности конструктора.
На индикацию, в такие
"неформальные строки", могут
выводиться всяческие "продукты
его буйной фантазии",
многообразие которых "ставит
жирный крест" как на
знакогенераторе, так и на том, что
с ним связано.
В этом случае, символы (и прочие
элементы картинки) "ваяются" не
на заводе-изготовителе ("блюдечко
с голубой каемочкой"), а в
черепной коробке конструктора.
1
Следовательно, содержимое этой "коробки" должно буквально соответствовать слову
"ваятель" (творец).
Вот такая получается "хитрая и очень творческая железяка".
Кстати, именно ее Вы и видите на "вышележащих" картинках ("в фас и в профиль").
По-моему, смотрится очень симпатично.
Правда "цена немного кусается", но зато можно "наворочать" такое, что с избытком
окупит эти затраты.
На этой, конкретной "железяке" даже еще и "муха не сидела", но скоро "сядет"
(паяльник рядом лежит, дожидается).
В данном случае, разговор пойдет о графическом модуле MT-12864J (компания МЭЛТ.
"Состряпано" в России. Производители клянутся, что они лучше "буржуинских"), но
вместо буквы "J" может иметь место быть и другая буква (например, "А").
На "глубинный" смысл это не влияет.
Есть 2 варианта исполнения: 3-вольтовый и 5-вольтовый.
В данном случае, имеет место быть 5-вольтовый вариант.
В названии 3-вольтового варианта добавляется 3V0 (например, МТ-12864J-2YLG-3V0).
Итак, ребята-разработчики, вместо "набора мелюзги пузатой", не мудрствуя лукаво,
"сваяли" одну "огроменную", квадратную матрицу 64х64 точки и с хитрым прищуром
сказали: "Уважаемые конструкторы. Искренне надеемся на то, что на Ваших плечах
находятся не кочаны капусты, а головы с мозгами. Ваяйте чего хотите. Чего наваяете,
то и получите".
Вопрос: "Почему 64х64 точки, а не 128х64"?
Ответ: "огроменная", квадратная матрица 64х64 точки есть кристалл, и поэтому
"комплексная" (то есть, еще более "огроменная") матрица 128х64 точки состоит из двух
кристаллов, которые "прислонили" друг к другу (по горизонтали), причем, без "зазора".
Доподлинно известно: если два квадрата "прислонить" друг к другу, то получится
прямоугольник. Это и имеет место быть.
Соответственно, возникли такие понятия как "левый (1-й) кристалл" и "правый (2-й)
кристалл" (эти термины определили разработчики).
В результате такого "прислонения", получилось единое "поле" (128х64 точки), на
котором можно и "в футбол играть", и "с шестом прыгать", и "копье метать", и еще
много кое-чего делать.
Сказанное иллюстрирует рис. 1:

Вопросы: "Ну а дальше-то что? Счастье где? Рулить чем и как?"


Ответ: имеется "куча" точек. Ими и нужно "рулить". Вот и будет счастье.
Активности точки (точка "высвечивается") соответствует уровень единицы, а ее
пассивности (точка не "высвечивается") - уровень нуля.
Это то же самое, что и у ЖК-модуля на основе м/контроллера HD44780 (стандарт).
2
Так как имеется такая "священная корова" как "байт" (кстати, летающая. Можно
кликнуть), а по вертикали их умещается 64/8=8 штук, то матрица 64х64 (кристалл)
"разбивается" на 8 так называемых страниц, в каждой из которых "лежит" по 64
байта.
Не трудно догадаться, что такая "разбивка" необходима для обеспечения "привязки" к
байту.
Предположим, что данными нужно заполнить весь кристалл.
Для этого нужно последовательно заполнить данными все 8 его страниц.
При этом нужно учесть, что байт данных выводится не в строку страницы (по
горизонтали), а в столбец страницы (по вертикали).
Теперь нужно вспомнить о второй "священной корове" по кличке "автоинкремент".
В данном случае, он имеет место быть.
То есть, сразу же после вывода на индикацию текущего байта данных, внутренний
счетчик адреса ЖК-модуля всегда автоинкрементируется (мозги конструктора отдыхают),
и если программной переадресации не производится, то следующий байт данных будет
выведен в следующий столбец (тот, который правее).
Таким, достаточно простецким образом, можно заполнить всю страницу.
Нужно только обеспечить "конвеерную подачу" байтов данных и проследить за тем,
чтобы интервал времени между выводами на индикацию двух соседних байтов не был
меньше 8 мкс. (требование разработчиков. Обеспечивается легко).
Если нужно полностью заполнить одну страницу (любую), то, при таком "раскладе",
необходимо обеспечить "конвеерную (последовательную) подачу" 64-х байтов данных.
После окончания заполнения данными текущей страницы, нужно осуществить переход
на начало заполнения следующей страницы и заполнить ее.
И так далее. Пока данными не заполнится весь кристалл.
Если, после заполнения данными текущей страницы, переход на следующую страницу
не организуется (специально или по недомыслию), а байты данных "продолжают
поступать" (выводиться на индикацию), то в "границах" этой страницы, будет иметь
место быть работа по кольцу, с записью "по верху", что, в большинстве случаев (но
не во всех), не есть "зер гут" (уничтожается ранее выведенное на индикацию).
Поэтому всегда нужно помнить об этой особенности.
После заполнения данными (байтами) 1-го кристалла, осуществляется переход на
начало заполнения данными 2-го кристалла.
Оно производится по такому же принципу, как и заполнение 1-го кристалла.
После окончания текущего цикла заполнения данными обеих кристаллов и до начала
следующего цикла заполнения их данными, нужно обеспечить паузу (вспомните про
инерционность жидких кристаллов), ведь созданная картинка должна быть визуально
ощущаема человеческим глазом и однородной/контрастной.
В интервале времени этой паузы, можно "делать всяческие нужные дела".
Например, можно чего-нибудь замерить и подготовить результат этого замера для
вывода на индикацию, и еще много кое-чего (зависит от задумки).
То есть, после вывода на индикацию текущей картинки ("кадра", как в мультфильме) и
до вывода на индикацию следующей картинки, можно заняться чем-нибудь
функционально отличным от вывода данных на индикацию (причем, без ограничения по
времени).
В течение всего этого времени, ранее выведенная на индикацию картинка ("кадр")
будет визуально зафиксирована (естественно, при включенном питании и отсутствии
сбоев в работе устройства).
Проще говоря, "кадр" сохраняется в оперативной памяти (ОЗУ) ЖК-модуля.
Это практически сводит на нет эффект "мерцаний".
Примечание 1: в ЖК-модулях на основе HD44780 примерно то же самое.
Примечание 2: таким понятием как "кадр", очень удобно пользоваться тогда, когда
речь идет о визуальном восприятии некой картинки, содержимое которой находится в
динамике (изменяется).
И это как раз тот случай.

Теперь о порядке заполнения кристаллов данными.


Он может быть различным.
Изначально я "привяжусь" к "сплошному" заполнению всех страниц обеих кристаллов.
3
Слово "сплошному" означает то, что речь идет о последовательном, равномерном
заполнении страницы (любой), с ее начала и до ее конца, которое происходит только
за счет автоинкремента счетчика адреса ЖК-модуля.
Пояснение: автоинкремент счетчика адреса ЖК-модуля происходит аппаратно
(автоматически), в конце любого цикла вывода на индикацию текущего байта данных.
Обращаю Ваше внимание на то, что может иметь место быть и другой, более
сложный ("гибридный") способ заполнения страницы.
Например, после равномерного (за счет автоинкремента) заполнения какой-то части
столбцов страницы, можно программно "перепрыгнуть" через несколько столбцов этой
страницы, после чего продолжить равномерное заполнение.
Причем, в ходе заполнения одной страницы, таких программных "прыжков" может быть
не один, а несколько.
Слово "программно" означает то, что имеется некий "набор" специальных инструкций,
"запускающих в работу" некие аппаратные процедуры, которые (процедуры)
исполняются внутри ЖК-модуля.
На рис. 1, показан один из вариантов "сплошного" заполнения всех страниц обеих
кристаллов.
"Один из" потому, что можно начать заполнение не с 1-го, а со 2-го кристалла, а в
пределах кристалла, можно заполнять страницы и в ином порядке.
Этот наиболее простой и "мозгопрошибаемый" вариант заполнения кристаллов данными
целесообразно использовать при первичном заполнении кристаллов данными (при
формировании 1-го "кадра").
Так как в состав картинки, практически всегда, входят некие "фиксированные
элементы", которые достаточно вывести на индикацию только один раз (в первом
"кадре"), то начиная со 2-го "кадра" (то есть, цикла вывода данных на индикацию) и
далее, вывод на индикацию этих фиксированных элементов можно проигнорировать, а
на индикацию вывести только то, что изменяется (находится в динамике).
Например, в надписи "ЧАСТОТА: хххххххх", фиксированным элементом является
"набор" символов "ЧАСТОТА:".
Этот фиксированный элемент можно вывести на индикацию только в первом цикле
вывода данных на индикацию (в 1-м "кадре"), а в дальнейшем его игнорировать
(обходить).
А вот надпись "хххххххх" (числовое значение измеряемой частоты) является не
фиксированным, а динамически изменяющимся элементом картинки.
Этот элемент нужно выводить на индикацию в каждом цикле вывода данных на
индикацию.
Элементы картинки могут быть не только банальными буквами, цифрами, знаками
препинания (различных размеров), но и "всем чем угодно".
Например, рожицей, графиком, диаграммой, цветочком, черепом с костями, который
двигает челюстью и т.д. (вплоть до простенького "мультика"/"анимашки").
Все это "добро" можно "собрать до кучи" и скомбинировать в том порядке, который
определит конструктор.
Короче, простора для творчества, а заодно и возможностей - "выше крыши".
При работе с надписями, графиками и т.д., для упрощения и упорядочения работы,
имеет смысл условно разделить все "поле" на строки.
В простейшем случае, особо мудрить не стоит: 1 страница = 0,5 cтроки.
В данном случае, получается 8 строк суммарной "емкостью" по 64х2=128 байтов
каждая.
Одна половина строки находится на левом кристалле, а другая половина - на правом.
Соответственно, заполнение одной строки будет происходить не за один этап, а за
два.
Можно "нарезать" и по-другому.
Например, можно объединить две "узкие", соседние строки в одну "широкую" и вывести
в нее, к примеру, "крупногабаритные буквищи" (или "цифрищи". Короче, что-то
"крупногабаритное").
В этом случае, заполнение строки будет происходить за 4 этапа.
"В таком же духе" можно продолжать и далее, вплоть до одной "суперстроки",
занимающей весь дисплей.
4
В этом случае, заполнение строки будет происходить за 16 этапов.
Итак, "глобальное" более-менее "нарисовалось" и теперь можно "вгрызаться" в детали.
Так как кристаллы являются "братьями – близнецами", то "разборка" с одним
кристаллом "автоматически" означает "разборку" и со вторым.
Для определенности, пусть это будет левый (1-й) кристалл.

На рис. 2, Вы видите "привязки" отображаемых точек к адресам страниц, строк и


столбцов.

Примечание: более качественная картинка имеется в файле Кристалл.doc


(прилагается).
Вы видите (рисовал в меру своих художественных способностей. На звание художника
не претендую) один из вариантов (учебно – тренировочный) заполнения кристалла
байтами данных (а можно было и цветочек нарисовать).
Естественно, что таких вариантов может быть великое множество.
Обратите внимание на то, что байт данных (D7…D0) выводится в тот или иной
столбец (их 64) страницы.
В данном случае, например, байт данных, выводимый в 1-й столбец 1-й страницы,
должен иметь вид 01111110.
Байт данных, выводимый во 2-й столбец 1-й страницы, должен иметь вид 00010010.
И так далее.
Желтыми линиями показано разделение кристалла на страницы или на строки (это
кому как удобнее мыслить).
В очень общем виде (я проигнорировал инициализацию ЖК-модуля и выбор строки, с
которой начнется "рисование" картинки. Предполагается, что она самая верхняя),

5
алгоритм заполнения обеих кристаллов байтами данных (для случая, изображенного на
рис. 1), выглядит так:

Начало цикла вывода данных на индикацию.


1 Выбор кристалла (в данном случае, левого).
2 Выбор 1-й страницы (адрес 000h).
3 Выбор столбца, с которого начнется заполнение страницы
(в данном случае, столбца с адресом 00h).
Вывод байта данных в столбец.
После окончания вывода текущего байта на индикацию - автоинкремент счетчика адреса.
4 Многократное (с учетом адресации) исполнение пункта 4, вплоть до заполнения всей
страницы (в странице - 64 байта).
Интервал времени между выводом на индикацию двух соседних байтов должен быть не менее 8 мкс.
Выбор 2-й страницы (адрес 001h).
Выполнение пунктов 3, 4.
Выбор 3-й страницы (адрес 010h).
Выполнение пунктов 3, 4.
И так далее, до:
Выбор 8-й страницы (адрес 111h).
Выполнение пунктов 3, 4.
Левый кристалл заполнен.
Переход на заполнение правого кристалла (повторение "вышележащего").
Правый кристалл заполнен. Окончание цикла вывода данных на индикацию.

Теперь нужно разобраться с функциями выводов.


Они "разрисованы" на рис. 3:

А это таблица инструкций, при помощи которых осуществляется "рулежка":

Таблица 1. Инструкции, используемые при выводе данных на индикацию (режим записи).


Инструкции Ao R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Описание команды
Display Включает или выключает ЖКИ:
ON/OFF 0 0 0 0 1 1 1 1 1 0/1 1 - дисплей включен,
0 - дисплей выключен.
Displau Адрес строки Выбор строки, с которой будет начат
StartLine 0 0 1 1 (0…63 или 00h…3Fh) вывод данных на индикацию.
Set Адрес страницы Выбор страницы для последующего
Page 0 0 1 0 1 1 1 (000…111) заполнения ее данными.
Set Адрес столбца Выбор столбца активной страницы
Address 0 0 0 1 (0…63 или 00h…3Fh) для записи в него байта данных.
Запись текущего байта данных в
Write 1 0 Байт данных, который нужно вывести выбранный столбец активной
Data на индикацию страницы (вывод на индикацию).
В конце записи – автоинкремент.

Она составлена по принципу "разделяй и властвуй" ("отсечение" невостребованного).


6
Что нужно? Нужно вывести картинку на индикацию.
Значит все внимание - на режим записи.
Чтение подождет, так как, на данном этапе "въезда", оно не "архиважно".
Значит, минус 2 инструкции, связанные с чтением. В таблице 1 их нет.

Вывод R/W (чтение/запись) "наглухо прибиваю гвоздями к корпусу", и все дела …


(обратите внимание на нули в столбце R/W).
Уже легче.

Теперь нужно разобраться с управляющим выводом Ао (команды/данные).


Для того чтобы с этим разобраться, нужно понять, что "скрывается" под словами
"команды" и "данные".
В комплексе, это корректно назвать не словом "команды", а словом "инструкции".
Я так и сделал.
Если "привязаться" к байту (DB7 … DB0), то "чистыми" командами являются первые 4
инструкции, названия которых выделены красным цветом.
Инструкция, выделенная синим цветом, строго говоря, командой не является.
Когда речь идет о режиме "данные", то имеется ввиду именно эта инструкция.
На мой взгляд, такая "концепция" наиболее удобна для восприятия.
Таким образом, в течение всего времени ожидания поступления команд и их
исполнения, на выводе Ао должен присутствовать 0, а перед непосредственной
записью, в ОЗУ ЖК-модуля, массива байтов данных, 0 должен быть заменен на 1.
Обратная же смена свидетельствует об окончании записи массива байтов (вывода на
индикацию всей картинки или ее части) и переходе в режим ожидания поступления
команд.
Интервал времени между началами исполнений двух соседних, "синих" инструкций
должен быть не менее 8 мкс.

С управлением контрастностью (регулируется угол поворота жидких кристаллов) все


понятно: нужно найти такое положение движка переменного резистора, при котором
обеспечивается наиболее комфортное, визуальное восприятие выведенной на
индикацию картинки.
Примечание: в разных версиях даташита на MT-12864J указаны различные номиналы
переменного резистора управления контрастностью.
В одном случае это 10 Ком., а в другом, 20 Ком.
Можно использовать и то, и другое, и то, что между ними.

Выводы DB7 … DB0 должны быть подключены к порту ПИКа.


Это вне всяческих сомнений.

Вывод стробирования E.
Строб (активный перепад), эта такая универсальная "штуковина", которая "запускает в
работу" какое-то аппаратное действие (процесс).
То есть, в данном случае, факт выставления, на соответствующих управляющих
линиях, того или иного кода, вовсе не свидетельствует о том, что это тут же приведет
к инициализации какого-то аппаратного действия.
Это только подготовка к инициализации (выбор одного аппаратного действия из
нескольких).
Сама же инициализация произойдет только после того, как на линии Е будет
сформирован строб.
Судя по "временным диаграммам" технической документации, стробом является
перепад от 1 к 0.
Для того чтобы сформировать строб, нужно сформировать стробирующий импульс.
Его длительность не должна быть менее 0,45 мкс.
При использовании кварца на 4 Мгц., одного м.ц. хватит "за глаза".
А вот если кварц имеет номинал более 8 Мгц., то нужно "затянуть" стробирующий
импульс "врезкой" NOPа/NOPов.
Если с этим все в порядке, то последовательность действий, в общем виде, выглядит
так:
7
- на управляющих линиях выставляется требуемый код (подготовка),
- формируется стробирующий импульс.
Всё. Аппаратное действие (процесс) "запущено в работу".
Нужно только дождаться его окончания, после чего можно "состряпать" другой
управляющий код и опять "нажать на курок". И т.д. Хоть миллион раз.
Кто скажет, что это суперсложно?
Управляющий код это и есть инструкция.
Под каждую инструкцию должен быть сформирован "свой" стробирующий импульс.
А теперь вспомните о тех 8-ми микросекундах, которые выше были упомянуты
несколько раз.
Вопрос: "От чего и до чего замерять тот интервал времени, который должен быть не
менее 8 мкс."?
Ответ: речь идет об интервале времени между двумя соседними стробирующими
импульсами, сформированными под "синюю" инструкцию (см. табл. 1).

Выбор кристалла осуществляется установкой единичного уровня на одном из выводов


E1 или E2.
При этом, на другом выводе должен быть 0.
То есть, при выборе 1-го кристалла нужно программно сформировать E1 = 1, E2 = 0,
а при выборе 2-го кристалла нужно программно сформировать E1 = 0, E2 = 1.
Если Е1 = Е2 = 0, то оба кристалла выключены.
Если E1 = E2 = 1, то оба кристалла включены.
Последнее применяется при инициализации ЖК-модуля.

Вывод RES это вывод внешнего сброса ЖК-модуля.


Если изменить на нем уровень управляющего сигнала с 1 на 0, то будет выполнена
(аппаратно) инструкция Display Off (выключение ЖК-модуля) и инструкция Start Line
(выбор строки, с которой будет начат вывод данных на индикацию, причем, с
установкой нулевого адреса строки).
Вывод: так как сброс ЖК-модуля всегда сопровождается исполнением инструкции Start
Line, с установкой нулевго адреса строки, то после сброса, по умолчанию, вывод
данных на индикацию начнется с самой верхней строки.
Если, на выводе RES, изменить уровень управляющего сигнала с 0 на 1, то будет
выполнена инструкция Display On (включение ЖК-модуля).

А теперь плавненько можно перейти к инициализации ЖК-модуля, то есть, к тому, с


чего должна начинаться его работа.
Есть 3 способа инициализации, "расписанные" в подразделе 4/21 "Обмена
информацией и идеями" (статья Александра Милевского).
Напомню о них:

1. Способ, указанный в даташите.


После включения питания, на вывод RES подается единичный уровень.
Инициализация начинается с программной смены этого уровня на нулевой.
Длительность "прохождения" нулевого уровня должна быть более 1 мкс.
После этого, нулевой уровень программно меняется на единичный
(проще говоря, формируется импульс длительностью более 1 мкс.).
Далее нужно:
- либо перейти в режим чтения и дождаться сброса в 0 битов RUSY и RESET
(об этом - позже),
- либо отработать фиксированную задержку величиной не менее 10 мкс.
(проще всего).
Этот способ хорош, но имеет недостаток: под него нужно задействовать вывод
порта (управление выводом RES).

2. Способ инициализации с использованием дифференциальной цепочки.


За счет нее, сразу же после включения питания, формируется импульс сброса.
8
Честно говоря, мне этот способ не нравится.
И не столько потому, что задействуются дополнительные радиоэлементы, сколько
потому, что в таком ответственном деле, как инициализация графического модуля,
элементы аналоговой техники - все-равно что "папуас на борту Боинга".
Конечно, можно и эдак, но это - на крайний случай.

3. "Экономичный" способ программной инициализации.


Вывод RES постоянно подключен к плюсу источника питания.
- программно исполняется инструкция Display Off (выключение ЖК-модуля),
- задержка не менее 1 мкс.,
- программно исполняется инструкция Display On (включение ЖК-модуля),
- задержка не менее 10 мкс.
Вот это и есть то, что нужно: вывод порта не задействуется, дополнительных
радиоэлементов нет, и в "Боинге сидит не папуас, а цивилизованная личность".

Александр Милевский выбрал 3-й способ инициализации. И я с ним в этом согласен.


Пару слов об Александре.
Именно с его легкой руки (инициатор) Вы и читаете все это (плюс, продолжение
следует).
В свое время, Александр не побоялся "броситься на эту графическую амбразуру".
Если Вы думаете, что после этого его "пристрелили", то ошибаетесь.
Такие люди не "погибают".
Совсем наоборот: имеет место быть не "пуля в лоб", а "ДЗОТ в руинах".
Причем, дело сделано вполне "матеро" и профессионально.
Лично мне, очень приятно это наблюдать.

Итак, для того чтобы, в рассматриваемом случае, вывести на индикацию картинку,


нужно программно осуществить следующие действия:

- инициализацию,
- выбор кристалла (переход с одного кристалла на другой),
- адресный выбор страницы (переход с одной страницы на другую),
- выбор строки, с которой начнется заполнение картинки
(обычно - самая верхняя, с адресом 00h, но может быть и другая),
- адресный выбор того столбца страницы, с которого начнется ее заполнение, либо
того столбца страницы, на который, в ходе заполнения страницы, нужно "прыгнуть"
(остальная адресация, в пределах страницы, - за счет автоинкремента),
- вывод, в текущий столбец, текущего байта данных,
- выбор режимов команды/данные (напоминаю, что в данном случае, речь идет
только о записи, то есть, W/R всегда = 0),
- стробирование (каждую инструкцию должен сопровождать стробирующий импульс).

Что касается 4-го пункта сверху, то в случае наличия сброса и необходимости


заполнения картинки от самой верхней строки, этот пункт можно проигнорировать, так
как при сбросе исполняется инструкция Start Line, с установкой нулевого адреса
строки.
"За забором" пока остались такие понятия как "чтение", "статус состояния" и
"вертикальное смещение", но, как говорится, "хорошего понемножку", иначе можно
заполучить "несварение желудка".
Вывод: сначала должны "перевариться" те "текущие сосиски", которые в желудке
лежат, а только после этого можно производить следующую "загрузку" (здоровье нужно
беречь).

"Практикум по конструированию устройств на PIC контроллерах"      http://ikarab.narod.ru       E-mail: karabea@lipetsk.ru