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

Глава 9. Программирование таймеров 251 Более универсальное решение - готовый модуль с управлением через некий после­ довательный порт на основе специальной микросхемы ТМ1 637, и это решение мы рассмотрим в главе 1 6. Оно •позволяет существенно упростить программу, и единст­ венный его недостаток , пожалуй , заключается в скудном ассортименте модулей на основе ТМ1 637 - 9 из 1 0 дисплеев, представленных в продаже, имеют конфигурацию «для часов» (4 цифры + двоеточие) , причем весьма убогого размера 0,36 дюйма (9 мм). Так что при желании сделать красивую и удобную вещь вам также придется самостоятельно строить схему, которая в общем случае может оказаться даже слож­ нее, чем непосредственное управление по рис. 9 . 5 . Рассмотрим работу динамического режима индикации подробнее . Индикаторы фактически оказываются включенными только часть времени, и чтобы обеспечить достаточную яркость, через них нужно пропускать больший ток (при четырех ин­ дикаторах - вчетверо больший, чем для статического режима) . Отсюда выбирают номиналы ограничивающих резисторов - в нашей схеме на рис . 9 . 5 они равны 470 Ом, что даст при 1 2-вольтовом питании около 1 2- 1 3 мА в импульсе, или при­ мерно 3-4 мА среднее значение, - для нормальной яркости этого достаточно. Источник питания можно рассчитывать на среднее значение, т. е . максимальный потребляемый ток составит при горящих цифрах «8» на всех индикаторах не более 1 1 0- 1 20 мА. Некоторые уточнения к расчету этой схемы см. в конце прwюженuя 1 . ПОДРОБНОСТИ Вам, возможно, захочется объединить часы с термометром и барометром , что доста­ точно распространенная задача в Aгduiпo. Ассемблерные решения для случаев ис­ пользования дисплеев с контроллером мы, как уже говорили , рассмотрим в главах 13 и 1 6, а здесь остановимся лишь на вопросе вывода такого большого количества данных на семисегмент1:1ые индикаторы. Для отображения часов, температуры и давления по­ надобится минимум 1 0 разрядов. 6-7 десятичных разрядов также понадобятся для частотомера или других подобных приборов . По этому поводу возн11кает вопрос о ко­ эффициенте заполнения - времени , в течение которого каждый разряд светится на продолжении периода . Если на четырех разрядах этот вопрос вас не очень беспокоит, то на десяти вам придется каждый сегмент «гонять» на максимально допустимом токе и даже более того, чтобы не было заметно снижения яркости . Это не очень страшно, т. к. все диоды (в том числе и светодиоды) боятся в разумных пределах не превыше­ ния тока , а перегрева, а его эдесь вы избегаете, т. к . большую часть времени сегмент выключен. Логика коммутации разрядов здесь обеспечивается схемотехнически - при подаче логической единицы на вывод управления разрядами комбинация из двух разнопо­ лярных транзисторов не инвертирует уровень напряжения, и на нужный разряд по­ дается питание 1 2 В. Наоборот, одиночные транзисторы управления сегментами инвертируют уровень, и наличие логической единицы на выводе МК заставляет коммутироваться нужный сегмент на «землю» (через токоограничивающий рези­ стор). Двухкаскадное усиление по управлению разрядами сделано для преобразо­ вания уровня от 5 до 1 2 вольт. Вместо первых п-р-п транзисторов (VТ I -VT4) мож­ но применить повышающий преобразователь уровня - например, микросхему CD40 1 09 с двумя литаниями от 3 до 1 8 вольт каждое, имеющую как раз четыре ка­ нала. Если на ее выход подключить р-п-р транзистор, как на схеме (обязательно с резисторами в цепи базы, аналогичными R6-Rl 0 на рис. 9 . 5), то логику управле­ ния разрядами необходимо будет поменять на обратную - разряд включается при

RkJQdWJsaXNoZXIy MTExODQxMg==