По всем вопросам звоните:

+7 495 274-22-22

УДК: 621.865.8

Программирование микроконтроллера в схеме часов реального времени при моделировании системы в Proteus

Юдачев С. С. канд. техн. наук, доцент, МГТУ им. Н. Э. Баумана, Москва
Андрюшин А. А. МГТУ им. Н. Э. Баумана, Москва, e-mail: andryushinaa@student.bmstu.ru
Ситников С. С. МГТУ им. Н. Э. Баумана, Москва

Предложен вариант программирования микроконтроллера и моделирование системы в «Proteus» RTC (Real Time Clock) схемы, совместно с светодиодными матрицами. Практическая значимость работы —изучение простейших логических схем на языке AVR assembler, например сдвигового регистра, дешифратора, светодиодной матрицы, схемы часов реального времени и семиразрядного индикатора, как в отдельности, так и в полноценной системе. Данная работа может использоваться для обучения студентов и для лабораторных работ при дистанционном обучении.

Точный отсчет времени необходим во многих сферах, для анализа происходящего, четкой синхронизации по времени и т. д.

Рассмотрим один из вариантов отслеживания времени с помощью микроконтроллера ATmega128 и схемы часов реального времени ds1307, приятным бонусом добавим динамическую индикацию на светодиодных матрицах, проект можно использовать как в предложенном варианте, так и отделить часы от «экрана».

Считать время можно и в микроконтроллере, но это загрузит его ненужными действиями, а именно прерываниями, во время которых ATmega128 будет «умирать» (если решать задачу через таймер), что усложняет дальнейшую работу с данной схемой [1–4]. Это особенно критично в составе сложных систем, поэтому удобней воспользоваться схемой ds1307. Она обладает возможностью дополнительного подключения резервного источника питания — батарейки 3 В, внешнего кварцевого резонатора на 32768 Гц, поддерживает TWI и может являться источником внешнего прерывания.

Схема выводит время на семисегментный шестиразрядный индикатор и битовые маски на светодиодные матрицы 8х8. В работе использовали две фразы: «МГТУ BEST» и «РТ ЛУЧШИЕ», которые переключаются при возникновении единицы во 2‑м и 3‑м разряде секунд, еще можно вывести любые картинки, символы и т. д.

Общая схема для первой фразы представлена на рис. 1.

Для подтверждения времени можно использовать время с ПК и прикреплять рядом индикатор.

Вывод второй фразы, осуществляется при других условиях и показан на рис. 2.

В качестве элементов используется светодиодная матрица 8х8 (рис. 3). Высокий уровень сигнала на выводе Q запирает колонку, чтобы выбрать первый столбец, нужно подать низкий уровень на Q0 и высокий на Q1‑Q7, далее подается бит из первого байта битовой маски, если бит есть. Тем самым при активной колонке пробегаем по всем строкам. После этого на выводах Q0, Q2‑Q7 высокий уровень напряжения, а на Q2 низкий, выбирается второй столбец и цикл повторяется.

Работой выводов Q занимаются четыре сдвиговых регистра (рис. 4). Подаем 0b11111110, для этого семь раз моргает порт B2 (порт последовательного ввода данных) совместно с B1 (порт синхроимпульсов), далее устанавливаем на B2 низкий уровень и моргаем B1, что даст нам последний ноль, для первого регистра, проделываем данную процедура четыре раза, по количеству сдвиговых регистров. Далее эти байты нужно «защелкнуть» моргнув портом B0. После этого можно будет выводить битовую маску в первую колонку. Теперь рассмотрим подачу данных через дешифратор (рис. 5).

Для Цитирования:
Юдачев С. С., Андрюшин А. А., Ситников С. С., Программирование микроконтроллера в схеме часов реального времени при моделировании системы в Proteus. КИП и автоматика: обслуживание и ремонт. 2023;11.
Полная версия статьи доступна подписчикам журнала
Язык статьи:
Действия с выбранными: