Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
406 Часть 111. Практическое программирование микроконтроллеров А VR Кроме всего прочего, ТМ1 637 может управлять яркостью индикаторов. Для этого в команде включения (см. процедуру инициализации модуля в тексте программ) нужно установить младшие биты в соответствии с таблицей в руководстве. В ре альности имеют значение только три варианта установки: о о о (яркость минималь ная), 0 1 0 (пониженная) и 0 1 1 (нормальная) . Возможно, в каких-то случаях нормаль ная яркость будет достигнута при значениях 1 0 0 или 1 0 1 - все зависит от установ ленных индикаторов, выше этого яркость уже практически не меняется . В первой тестовой программе установлена яркость 0 1 1, во второй перебираются несколько вариантов. Часы на дисплее ТМ1 637 Так вышло, что работа с часами DS 1 307 растянулась на три различные темы: при менение интерфейса TWI (см. главу 13), установка часов через UART (см. главу 15) и вот теперь мы можем представить удобный вариант законченного настольного устройства, подключив часы к модулю 4-разрядного LЕD-индикап>ра на основе микросхемы ТМ1 637 . Дисплей здесь требуется с подключенным двоеточием. Программу простых часов на основе 4-разрядного индикаторного модуля с микро схемой ТМ1 63 7 вы можете найти в архиве по адресу, указанному во введении (файл 4-digit_display_clock . asm ) . Часы индицируют значения минут и часов, а также мигают двоеточием (рис . 1 6 . 1 ). В программе установлен вариант яркости индикатора 010 . К программе также подключается файл i2c. prg, описанный в главе 13 . Рис. 1 6. 1 . Дисплей часов на основе 4-разрядного индикаторного модуля Микросхема (модуль индикации DS 1 307) подсоединяется, как уже говорилось, к выводам РВО и PB l - это крайние выводы 14 и 1 5 у ATmega8 (см. рис. 1 6 .2). Тактовая частота контроллера 4 МГц может быть установлена от любого источнИ' ка, в том числе от встроенного генератора контроллера. При желании ее изменить, нужно пересчитать числа в двух процедурах задержки: в конце текста программы и в файле i2c.prg . Код рассчитан на ATmega8, но может быть перенесен на другой контроллер, имеющий порты D и В, без изменений (для АTtiny23 1 3 - как уже от мечалось ранее - придется только удалить строки, относящиеся к регистру SPH, который в нем отсутствует) . Обратите внимание, что при работе с часами никаких BCD - BIN преобразований не требуется, только распаковка- распределение тетрад по отдельным разрядам. Наоборот, при выводе на индикатор обычных чисел их придется преобразовать
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==