Включать таймер от ножки микроконтроллера INT0
;||++------Перевести таймер T1 в тринадцатиразрядный режим
;|+--------Синхронизироваться от внутреннего генератора
;+---------Запретить управление таймером от ножки INT1
mov TH0, #0 ;Обнулить старший байт таймера
mov TL0, #0 ;Обнулить младший байт таймера
setb TR0 ;Включить измеритель ширины импульса
TstLog0: jnb INT0, TstLog0 ;Подождать начало импульса
TstLog1: jnb INT0, TstLog1 ;Подождать конец импульса
Clr TR0 ;Отключить измеритель ширины импульса
Рисунок 9. Программа измерения длительности импульсов
Если теперь на вход микроконтроллера INT0 подать импульс с неизвестной длительностью, то в регистрах TH0 и TL0 будет записана его длительность в микросекундах.
Использование таймера в качестве частотомера.
Известно, что измерение частоты можно произвести, подсчитав количество периодов неизвестной частоты за единицу времени. Принцип измерения частоты иллюстрируется рисунком 10.
Рисунок 10. Принцип измерения частоты
Для измерения частоты измеряемый сигнал подаЈтся на вывод микроконтроллера Tx. Таймер/счЈтчик настраивается в режим счЈтчика записью в бит C/Tx логической единицы. Содержимое таймера обнуляется. Таймер включается на строго определЈнный интервал времени. Этот интервал задаЈтся оставшимся таймером.
Пример программы измерения частоты сигнала на ножке микроконтроллера T0 приведЈн на рисунке 11.
mov TMOD,#00010101b
;