|
Счетчик на 4-х цифровом 7-ми сегментном индикаторе
Программирование микроконтроллеров в среде FloweCode
(Счетчик на 4-х цифровом 7-ми сегментном индикаторе)
Использование 4-х цифрового 7-ми сегментного индикатора для счета от 0 до 9999
Применено прерывание по переполнению счетника TMR0:
|
Присвоние переменной COUNT значение 0
Присвоение переменной SEG0 значение 0
Присвоение переменной SEG1 значение 0
Присвоение переменной SEG2 значение 0
Присвоение переменной SEG3 значение 0
Активация прерывания по таймеру. При частоте кварца
19,660800 мгц и предделении1:256 переполнение
счетчика происходит 75 раз в секунду. Значит
макрос INTERRUPT_TMR0 тоже вызывается 75 раз в
секунду.
Старт бесконечного цикла
Сравнение равна ли переменная COUNT 75-ти
Если да, обнуляется COUNT
Вызов макроса UPDATE_VALUES
Отправляем переменную SEG0 в первую цифру
индикатора
Задержка 5 мс
Отправляем переменную SEG1 во вторую цифру
индикатора
Задержка 5 мс
Отправляем переменную SEG2
в третью цифру индикатора
Задержка 5 мс
Отправляем переменную SEG3 в четвертую цифру
индикатора
Задержка 5 мс
Возвращение к началу бесконечного цикла
|
Макрос UPDATE_VALUES
При достижении значений переменных больше 9-ти, показания индикатора сдвигаются на один старший разряд.
|
Увеличение переменной
SEG0 на единицу
(SEG0 = SEG0 + 1)
Переменная SEG0 больше
или равна 10?
Если да,
Обнуляем переменную
SEG0
Увеличение переменной
SEG1 на единицу
(SEG1 = SEG1 + 1)
Переменная SEG1 больше
или равна 10?
Если да
Обнуляем переменную
SEG1
Увеличение переменной
SEG2 на единицу
(SEG2 = SEG2 + 1)
Переменная SEG2 больше
или равна 10?
Если да
Обнуляем переменную
SEG2
Увеличение переменной
SEG3 на единицу
(SEG3 = SEG2 + 1)
Переменная SEG3 больше
или равна 10?
Если да
Обнуляем переменную
SEG3
|
Макрос INTERRUPT_TMR0
По прерыванию TMR0 добавляет к переменной COUNT единицу
|
Добавляет к переменной COUNT единицу. (COUNT = COUNT + 1)
|
Файлы проекта можно скачать здесь:
Оригинальный источник материала:
www.flowecode.info
|
|
|