Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
Глава 1 6. Некоторые Аrdиiпо-задачи на ассемблере 4 1 1 SPI), но даже только в области стандартных функций все они имеют свои мелкие особенности, особенно в части инициализации. Разнообразие дисплеев на основе всех этих аналогов, притом с необходимостью поддерживать алфавиты нескольких языков, вносит свою долю неразберихи. Поэтому нередко можно натолкнуться на трудности с применением произвольно взятого дисплея даже в Arduino с его готовой библиотекой LiquidCrystal . Если вы попробуете «погуглить» по ресурсам, описывающим самостоятельное управление подобным дисплеем, то едва ли встретите две одинаковых процедуры инициализа ции, - каждый для своего частного случая вынужден изобретать свою. Пытаясь когда-то подключить к Arduino ОLЕD-дисплеи фирмы Winstar, я тоже не сумел ми новать этой разновидности бега на месте . С тех пор мне постепенно удалось разра ботать более или менее универсальную процедуру инициализации, годную по крайней мере для тех типов дисплеев, что прошли через моИ руки . Заметим, что как раз из-за бешенного разнообразия вариантов программировать такие дисплеи на ассемблере, как говорится, сам бог велел : так при нужде гораздо проще «подрихто ваты> программу «по месту», чем ковыряться в недрах LiquidCrystal, разбираясь в ее запутанной структуре (попробуйте сами найти там с лету место, куда можно добавить, например, переключение таблиц знакогенератора, о котором рассказыва ется далее, и вы поймете, в чем я вас пытаюсь убедить) . Описываемые здесь типовые процедуры с гарантией применимы для самых рас пространенных типов с конфигурацией до 20 символов в 2 строки (кроме рассмат риваемых далее - это обычные ЖК-дисплеи Winstar типа WН.хх, а также Data Vision и других фирм). Заметим, что HD44780 и его аналоги могут управлять толь ко двухстрочным или однострочным дисплеем, причем с числом символов в каж дой строке до 40. На практике более чем 20-символьные дисплеи встречаются ред ко - лишние области ОЗУ иногда используются для эффектов типа «бегущая строка» . Для дисплеев с четырьмя и более строками задействуются, соответствен но, два и более контроллера, переключение между которыми происходит прозрачно для пользователя . При этом однострочные дисплеи чаще всего фактически все рав но двухстрочные, только обе строки у них расположены в один ряд. Необходимо еще сказать пару слов о принципах вывода знаков у HD44780 и его аналогов . На рис . 1 6 . 6 показан внешний вид типового дисплея с конфигурацией Рис. 1 6.6. Внешний вид энакосинтеэирующего ЖК-дисплея конфигурации 1 6х2
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==