Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

404 Часть 111. Практическое программирование микроконтроллеров АVR сматриваемые далее матричные (знакосинтезирующие) строчные дисплеи, тем более что зачастую они управляются одними и теми же встроенными контроллера­ ми. Но управление ими - дело настолько громоздкое даже на С, что перевод на ассемблер станет только лишним и ничем не оправданным усложнением. Наиболее универсальный способ прямого управления семисегментными цифровы­ ми дисплеями с помощью динамической индикации мы уже рассмотрели в главе 9, а экономичный ЖК-дисплей - в главах 13 и 14. Здесь мы рассмотрим несколько типов дисплеев со встроенными контроллерами. Это, с одной стороны, позволяет экономить в числе необходимых выводов управляющего микроконтроллера и упрощать программы управления, с другой стороны - вынуждает нас полагаться на готовые конструктивные решения, которые по определению не могут быть оптимальными и универсальными, годящимися на любой случай . 4-ра зрядны й цифрово й диспле й н а основе ТМ 1 637 4-разрядных цифровых индикаторов на основе ТМ 1 63 7 выпускается много (загля­ ните на ru.aliexpress.com по ключевому слову ТМ1 637 ) , и общих недостатков у них два. Первый недостаток обусловлен большой величиной прямого падения напря­ жения на светодиодном сегменте : при 5-вольтовом питании дисплей с цифрами более 1 4 мм найти в продаже невозможно. Распространить это решение на индика­ торы большего размера можно только самостоятельно с использованием транзи­ сторных ключей, наподобие того, как это делалось в схеме динамической индика­ ции (см . рис. 9 . 5 в главе 9). Второй недостаток - в некотором разнобое схемотехнической реализации готовых модулей, имеющихся в продаже. Девять из десяти таких модулей выпускаются в варианте «для часов» с разделительным двоеточием (Аrduinо-библиотека ТМ1 637 . h). Оставшиеся (с десятичными точками у каждой цифры) могут иметь существенно отличающееся управление . Его во многих случаях приходится изобретать само­ стоятельно «наощупь», т. к. документацию найти невозможно, . а с обычными Аrduinо-библиотеками эти модули работать отказываются . Мы не станем, конечно, лезть в такие дебри, а рассмотрим только управление готовым модулем, но ничто не мешает распространить полученное решение на самостоятельно спроектирован­ ные схемы на основе ТМ1 637, что может оказаться проще, чем заниматься реинжи­ нирингом продукции безымянных китайских товарищей . Быстро проверить гото­ вый дисплей на соответствие стандартному управлению можно, если подключить его к Arduino с примером из комплекта библиотеки тм1 З 67 . h. ТМ 1 637 имеет последовательный порт, похожий на I 2 c, но все-таки только похо­ жий, отчего с ней нельзя работать через штатный протокол, как мы это делали в главе 13 . ТМ 1 637 не имеет 1 2 С-адреса, и каждая такая микросхема подключается через два отдельных вывода контроллера. В «даташите» на ТМ1 63 7 показана схема подключения максимального количества семисегментных цифр в количестве шести разрядов, при этом восьмой (старший) бит в каждом разряде, как и положено, управляет десятичной точкой. Разряды нумеруются от О, при этом номер О соответ­ ствует старшему (крайнему левому разряду). В часовых 4-разрядных модулях точ-

RkJQdWJsaXNoZXIy MTExODQxMg==