/ATtiny13-LCD-Timer

Простой таймер с ЖКИ на ATtiny13

Primary LanguageC

Дисплей отображает отсчитываемое время как " M.SS", где M - это минуты
от 0 до 9, SS - это секунды от 00 до 59. Обозначим разряды индикатора
как "AB.CD". Разряд A никогда не зажигается.

После включения, устройство переходит в режим ожидания. В режиме
ожидания, устройство мигает младшей точкой с частотой 2 Гц. Нагрузка
отключается. Состояние IDLE.

При нажатии на кнопку MODE, устройство переходит в режим настройки
минутной длительности таймера. Состояние MINUTE_LOW.

В состоянии MINUTE_LOW, на экране отображается " 0.00", причём разряд B
мерцает с частотой 2 Гц, остальное горит постоянно. Кнопкой SET
происходит циклический перебор от 0 до 9. При нажатии на кнопку MODE
выбор запоминается. Происходит переход в состояние SECOND_HIGH.

В состоянии SECOND_HIGH, на экране отображается " X.00", причём разряд
C мерцает с частотой 2 Гц, остальное горит постоянно. X отображает
выбранное ранее значение. Кнопкой SET происходит циклический перебор
от 0 до 5. При нажатии на кнопку MODE выбор запоминается. Происходит
переход в состояние SECOND_LOW.

В состоянии SECOND_LOW, на экране отображается " X.Y0", причём разряд
D мерцает с частотой 2 Гц, остальное горит постоянно. X и Y отображают
выбранные ранее значения. Кнопкой SET происходит циклический перебор
от 0 до 9. При нажатии на кнопку MODE выбор запоминается. Происходит
переход в состояние READY.

В состоянии READY на экране отображается " X.YZ" постоянно. X, Y и Z
отображают ранее выбранные значения. Нажатие на кнопку SET переводит
систему в состояние RUN.

В состоянии RUN на экране отсчитывается время до завершения процесса,
точка между минутами и секундами мигает с частотой 2 Гц. Включена
нагрузка. При достижении таймером значения " 0.00", система переходит
в состояние IDLE.

Диаграмма состояний:

IDLE -> MINUTE_LOW -> SECOND_HIGH -> SECOND_LOW -> READY -> RUN -> IDLE