Программа состоит из блока начальных установок в который входят процедуры обнуления переменных используемых в программе, установки направления портов, установки нужного коэффициента предделителя, тест работоспособности индикаторов. Блока вывода на индикацию в котором осуществляется преобразование двоичного кода в код семисегментных индикаторов, формируются необходимые задержки времени для динамической индикации, также контроль вывода выбранного пользователем режима индикации (режим часы : минуты и минуты : секунды ). Участок программы сканирования клавиатуры отвечает за выбор режима индикации и установку времени вводимых с клавиатуры, в следующей последовательности в режиме (часы : минуты ) кнопкой установки времени может быть изменено только значение раздела часов а в режиме (минуты : секунды) только минут.
Самая ответственная часть программы это обработка прерывания полученного от встроенного таймера микроконтроллера от неё зависит точность хода часов т.е ошибки в этой части программы приводят к значительному отставанию или опережению хода часов там же может быть осуществлена точная подстройка. Рассмотрим получение интервала в 1 секунду с помощью таймера, при конфигурации таймера его надо подключить к внутреннему генератору который по заданию вырабатывает частоту 4,00 мГц после такого подключения в данном микроконтроллере на таймер будет подаваться частота генератора (Fг)/4 и будет равна 1000000 Гц с помощью встроенного предделителя она делится на 64 и на таймер приходит уже 15625 Гц. После этого нам необходимо разделить это число на такое же чтобы получить частоту колебаний в 1гц. Из-за небольшой разрядности таймера (8) эта процедура делается в два этапа делим на 125 и еще раз настолько же. Сразу после этого прибавляем 1 к регистру секунд (в программе sek).Результат приведен ниже :
1. F(г)=4 мГц/4=1000000
2. 1000000/64=15625
3. 15625/125=125
4. 125/125=1 Гц
6. Разработка алгоритма работы электронных часов
Ниже приведён алгоритм работы программы микроконтроллера. Алгоритм соответствует программе приведенной в листинге приложения 3.