justify"> Працює як 16-ти розрядний лічильник. При переповненні стан змінюється з FFFFh на 0000h. При необхідності зміни коефіцієнта ділення після переповнення в кожному такті необхідно записувати задану константу. p align="justify"> Лічильник працює як 8-ми розрядний, причому використовується молодша частина - TL. У старшій частини (TH) знаходиться дільник, який по переповнення TL автоматично перевантажується з TH в TL. p align="justify"> Режими роботи таймерів Таймер0 і Таймер1 задають два регістри спеціальних функцій (SFR - Special Function Register): регістр режиму - TMOD, розташований за адресою 89h в реєстрової пам'яті і регістр управління таймерами і зовнішніми перериваннями - TCON (88h ). Для управління роботою таймера Таймер2 служить регістр T2CON. p align="justify"> Регістр TMOD умовно розбитий на дві половини: перша його частина відповідає за Таймер0, а друга - за Таймер1.
Розподіл бітів регістра TMOD наступне:
біт (М0) - Молодший байт поля управління режимом;
біт (М1) - Старший байт поля управління режимом;
біт (С/Т0) - Вибір функції таймера або лічильника для Таймера0: 0-таймер ,1-лічильник;
біт (GATE0) - Прапор управління входом:
В· 0 - робота каналу дозволяється (INT0 = 1, TR = 1).
В· 1 - робота лічильника залежить тільки від TR0.
Розподіл бітів регістра TCON наступне:
біт (IT0) - Управління типом входу INT0:
В· 0 - вхід прогнозується як динамічно по заданому фронту імпульсу.
В· 1 - статичний стан входу.
1 біт (IE0) - Прапор запиту переривання INT0 при динамічному вході. Скидається, коли відбувається режим підтвердження переривання.; p align="justify"> і 3 біти (IT1/IE1) - Теж, що і попередні біти, але для Таймера0;
біт (TR0) - Прапор програмного запуску Таймера0;
біт (TF0) - Прапор переповнення Таймера0, який викликає запит переривання. При підтвердженні переривання прапор скидається;
і 7біти (TR1, TF1) - Для Таймера1;
Для роботи з таймером використовується механізм переривань, роботою якого можна керувати через регістр маски переривань IE (Interrupt Enable). Призначення бітів регістра IE наступне:
біт (EX0) - біт дозволу зовнішнього переривання INT0.
біт (ET0) - біт дозволу переривання по переповнення Таймера0.
біт (EX1) - біт дозволу зовнішнього переривання INT1.
біт (ET1) - біт дозволу переривання по переповнення Таймера1.
біт (ES) - біт дозволу переривання від послідовного порту...