еденої на другий розряд и Відкрити другий розряд індікатора. Далі ця процедура транзисторний ключ. При цьом буде відображатіся Тільки повторюється для шкірного розряду и после відображення четвертого розряду вновь виводу перший розряд. Таким чином, годину оновлення шкірного розряду ставити 5мс * 4=20 мс, при такій частоті Відновлення Людське око НЕ помічає мерехтіння и спріймає індікацію як статичні.
Для Виконання ціх Дій доцільно використовуват Вже налаштованості раніше таймер на 5 мс. Тому в підпрограмі обробніка переривані по переповнення таймера будемо віклікаті функцію, яка и буде Виконувати ВСІ перераховані Вище Дії.
Для режімів існує 3 підпрограмі для Виведення на індикатор.
Ріс.2.5.1-Підпрограма Indication_reg1
Ріс.2.5.2-Масив codetable
Розглянемо підпрограму Indication_reg1. Вікорістовується для режиму 1. Виводу на ВСІ розряди індікатора Значення десятків и одиниць хвилин и годин, а такоже шкірного секунду блімає 8-й сегмент 2 - го розряду. Робота з масивом codetable (рис. 2.5.2) здійснюється за помощью наступноі послідовності команд.
Спочатку визначавши адреси пам «яті, за Якою розташованій масив. Для цього вікорістовується Регистр Z, Який Виступає в якості індексу масиву. Потім находится індекс необхідного елемента з масив путем складання з Регістром Z РОБОЧЕГО регістра r16 або r17 (перелогових одініці вводяться або десятки), в якому записано номер натіснутої клавіші. За помощью відряд LPM в Регистр r0 завантажено байт з програмної пам »яті за адресою Z. тоб в r0 запишеться елемент масиву, відповідно до індексу. Напрікінці запісується інформація з регістра r0 в клітинку активного розряду. Визначення осередку оператівної пам'яті, якові звітність, вивести на активне знакомісце, здійснюється наступна чином. Усього ми маємо 4-ри осередки, Які відповідають 4 - м розряда індікатора. Тому ЯКЩО активний перший розряд, звітність, Виводити Першу клітинку, один - одного и т.д. Це досягається Наступний: в Регистр Х запісується адреси нульової коміркі масиву indktr. До нього додається номер потокового активного знакомісця stroka. Номер має значення від 0 до 3, что дозволяє безпосередно его використовуват у візначенні адреси комірок (Дода до адресою 0, что відповідає первом активному знакомісцю, отрімаємо адресою Першого значення в масіві, 1 - друга и т.д.). Далі отрімуємо безпосереднє значення, а Збереження в масіві, и перепісуємо его в порт А.
Ріс.2.5.3-Підпрограма Indication_reg0.
Розглянемо підпрограму Indication_reg0. Вікорістовується для режиму 0, при введенні значень годин воно виводу его на індикатор, з міготлівім знакомісцем. У Цій підпрограмі все відбувається такоже, як и в Попередній, Тільки додаються умови на міготіння знакомісця шкірного секунду.
Умови полягають у тому, что залежних від активного знакомісця (Йому відповідає свое Значення регістра mode) блімає число для запису: 200 ціклів підпрограмі Timer_0_Overflow лічильник tcount обнуляється, для мигання активного знакомісця на індікаторі (колі 101
Рис. 2.5.4-Підпрограма Indication_reg2
Розглянемо підпрограму Indication_reg2. Вікорістовується для режиму 2. При завершенні відліку годині таймером, почінають мігаті ВСІ 4 знакомісця шкірного секунду. Блімає 8-ий сегмент 2...