Для роботи в системі таймер повинен бути запрограмований. Порти, що
використовуються для програмування таймера, наведені в таблиці 1. Після ввімкнення живлення стан таймера невизначений.
Режим роботи кожного лічильника визначається при його програмуванні. Кожний лічильник повинен бути запрограмований, перш ніж він буде використо-
вуватись. Не використовувані лічильники не потребують програмування. При
програмуванні лічильника спочатку записується керуюче слово, а далі константа рахунку.
Таблиця 1 – Порти, що використовуються для програмування таймера
Адреса порту | Функція |
040h | Читання або запис рахунку для лічильника 0 (системний годинник) |
041h | Читання або запис рахунку для лічильника 1 (запит реге- нерації) |
042h | Читання або запис рахунку для лічильника 2 (тональний сигнал гучномовця) |
043h | Запис керуючого слова, команд “читання на льоту” та “обернене читання” |
Процедура програмування таймера дуже гнучка. Необхідно запам’ятати два правила:
1) у кожний лічильник керуюче слово має бути записане перед завантажен-
ням коефіцієнта рахунку;
2) лічильник повинен завантажуватись тією кількістю байтів значення рахунку, яка вказана в керуючому слові (молодший байт, старший байт).
Таблиця 2 – Формат керуючого слова
Біт | Призначення |
D0 | Тип рахунку: 0 – двійковий 1 – двійково-десятковий |
D3 – D1 | Режим роботи каналу: 000 – режим 0 001 – режим 1 ´10 – режим 2 ´11 – режим 3 100 – режим 4 101 – режим 5 |
D5, D4 | Код читання/запису констант рахунку: 00 – “читання на льоту” 01 – читання/запис молодшого байта 10 – читання/запис старшого байта 11 – читання/запис спочатку молодшого байта, а потім старшого байта |
D7, D6 | Адреса каналу: 00 – канал 0 01 – канал 1 10 – канал 2 11 – “обернене читання” |
Є три методи читання з лічильників: просте читання, “читання на льоту” та обернене читання.
Перший метод реалізується простою операцією читання. При читанні
лічильника його робота повинна бути зупинена; у протилежному випадку рахунок може бути змінений у процесі читання та його результат буде невизначеним.
Другий метод – “читання на льоту”. Ця команди дозволяє прочитати поточне
значення лічильника в будь-який момент часу без зупинки рахунку. Формат команди наведений в таблиці 2 (біти D0 – D3 не використовуються).
При будь-якому методі читання значення рахунку повинно читатись згідно з форматом програмування: якщо лічильник програмується на два байти зчитуван- ня, два байти і повинні бути прочитані.