Програмування таймера

Для роботи в системі таймер повинен бути запрограмований. Порти, що

використовуються для програмування таймера, наведені в таблиці 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 не використовуються).

При будь-якому методі читання значення рахунку повинно читатись згідно з форматом програмування: якщо лічильник програмується на два байти зчитуван- ня, два байти і повинні бути прочитані.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: