Символ ∙ Функция
TF1
TR1
TF0
TR1
IE1
IT1
IE0
IT0
Рис. 6.19.
Кроме того, схема управления таймерами интересна тем, что позволяет использовать таймеры в качестве измерителей длительности импульсов и частотомеров. Рассмотрим эту возможность подробнее.
Известно, что измерение длительности импульса можно произвести, подсчитав импульсы эталонной частоты. Принцип измерения длительности импульсов иллюстрируется временной диаграммой, приведенной на рис. 6.20. Например, если за время длительности импульса на вход счетчика таймера поступят 15 микросекундных импульсов, то длительность измеренного входного импульса равна 15 мкс.
Рис. 6.20.
Для измерения длительности импульса измеряемый сигнал подается на вывод микроконтроллера INTx, и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счетчик настраивается в режим таймера записью в бит С/Тх логического нуля. Содержимое таймера перед измерением длительности импульса обнуляется. Ассемблерный текст процедуры измерения длительности импульса приведен в листинге 6.1.
Если теперь на вход микроконтроллера INTO подать импульс с неизвестной длительностью, то в регистрах ТН0 и TL0 будет записана его длительность в микросекундах.
Известно, что измерение частоты можно произвести, подсчитав количество периодов неизвестной частоты за единицу времени. Принцип измерения частоты иллюстрируется рис. 6.21. Например, если за 1 мс на вход счетчика таймера поступят 15 импульсов, то измеренная частота равна 15 кГц.
Рис. 6.21.
Измеряемый сигнал подается на вывод микроконтроллера Тх. Таймер/счетчик настраивается в режим счетчика записью в бит С/Тх логической единицы. Содержимое таймера обнуляется. Таймер включается на строго определенный интервал времени. Этот интервал задается другим таймером.
Пример исходного текста программы измерения частоты сигнала на выводе микроконтроллера ТО приведен в листинге 6.2. Если теперь на вход микроконтроллера Т0 подать сигнал с неизвестной частотой, то в регистрах ТНО и TL0 будет записана его частота в килогерцах.