
Символ ∙ Функция
TF1Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении Таймер/Счетчика 1. Сбрасывается аппаратно, когда процессор вызывает программу обслуживания прерывания
TR1Бит управления таймером 1. Устанавливается/сбрасывается программно для запуска/останова счетчика/таймера 1
TF0Флаг переполнения таймера 0. Устанавливается аппаратно при переполнении Таймер/Счетчика 0. Сбрасывается аппаратно, когда процессор вызывает программу обслуживания прерывания
TR1Бит управления таймером 0. Устанавливается/сбрасывается программно для запуска/останова счетчика/таймера 0
IE1 Флаг прерывания 1. Устанавливается аппаратно, когда детектируется сигнал внешнего прерывания (перепад или активный уровень). Сбрасывается аппаратно в процессе прерывания только в том случае, если оно произошло по фронту
IT1 Бит управления типом прерывания 1. Устанавливается/сбрасывается программно для определения типа прерывания 1 (по срезу/низким уровнем)
IE0 Флаг прерывания 0. Устанавливается аппаратно, когда детектируется сигнал внешнего прерывания (перепад или активный уровень). Сбрасывается аппаратно в процессе прерывания только в том случае, если оно произошло по фронту
IT0Бит управления типом прерывания 0. Устанавливается/сбрасывается программно для определения типа прерывания 0 (по срезу/низким уровнем)
Рис. 6.19.Формат регистра TCON
Кроме того, схема управления таймерами интересна тем, что позволяет использовать таймеры в качестве измерителей длительности импульсов и частотомеров. Рассмотрим эту возможность подробнее.
Использование таймера в качестве измерителя длительности импульсов
Известно, что измерение длительности импульса можно произвести, подсчитав импульсы эталонной частоты. Принцип измерения длительности импульсов иллюстрируется временной диаграммой, приведенной на рис. 6.20. Например, если за время длительности импульса на вход счетчика таймера поступят 15 микросекундных импульсов, то длительность измеренного входного импульса равна 15 мкс.

Рис. 6.20.Временная диаграмма измерения длительности импульсов
Для измерения длительности импульса измеряемый сигнал подается на вывод микроконтроллера INTx, и в бит управления GATE записывается разрешающий сигнал логической единицы. Таймер/счетчик настраивается в режим таймера записью в бит С/Тх логического нуля. Содержимое таймера перед измерением длительности импульса обнуляется. Ассемблерный текст процедуры измерения длительности импульса приведен в листинге 6.1.

Если теперь на вход микроконтроллера INTO подать импульс с неизвестной длительностью, то в регистрах ТН0 и TL0 будет записана его длительность в микросекундах.
Использование таймера в качестве частотомера
Известно, что измерение частоты можно произвести, подсчитав количество периодов неизвестной частоты за единицу времени. Принцип измерения частоты иллюстрируется рис. 6.21. Например, если за 1 мс на вход счетчика таймера поступят 15 импульсов, то измеренная частота равна 15 кГц.

Рис. 6.21. Временная диаграмма измерения частоты
Измеряемый сигнал подается на вывод микроконтроллера Тх. Таймер/счетчик настраивается в режим счетчика записью в бит С/Тх логической единицы. Содержимое таймера обнуляется. Таймер включается на строго определенный интервал времени. Этот интервал задается другим таймером.
Пример исходного текста программы измерения частоты сигнала на выводе микроконтроллера ТО приведен в листинге 6.2. Если теперь на вход микроконтроллера Т0 подать сигнал с неизвестной частотой, то в регистрах ТНО и TL0 будет записана его частота в килогерцах.


Последовательный порт микроконтроллеров семейства MCS-51
Через универсальный последовательный порт микроконтроллера осуществляются прием и передача информации, представленной в последовательном коде (младшими битами вперед). Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из SBUF, то он будет потерян. Работой последовательного порта управляют три регистра:
- регистр управления/статуса приемопередатчика SCON;
- регистр управления мощностью PCON, бит SMOD;
- буферный регистр приемопередатчика SBUF.
Последовательный порт может работать в четырех различных режимах:
- режим 0, синхронный;
- режим 1 асинхронный 8-битовый обмен;
- режим 2, асинхронный 9-битовый обмен с фиксированной скоростью передачи;
- режим 3, асинхронный 9-битовый режим.
Управление режимами работы приемопередатчика осуществляется через специальный регистр с символическим именем SCON. Он содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемника/передатчика (R1 и T1). Формат регистра управления последовательным портом приведен на рис. 6.22.


Рис. 6.22.Формат регистра управления последовательным портом
Прикладная программа путем загрузки в старшие биты регистра SCON двухбитного кода задает режим работы приемопередатчика. Во всех четырех режимах передача инициализируется любой командой, в которой буферный регистр SBUF указан как получатель байта. Как уже отмечалось, прием в режиме 0 осуществляется при условии, что R1 = 0 и REN = 1, в остальных режимах - при условии, что REN = 1.
В бите ТВ8 программно устанавливается значение девятого бита данных, который будет передан в режиме 2 или 3 в составе 9-битового поля данных кадра передачи. В бите RB8 в этих режимах запоминается девятый принимаемый бит данных. В режиме 1 в бит RB8 заносится значение стоп-бита. В режиме 0 бит RB8 не используется.
Флаг прерывания передатчика T1 устанавливается аппаратно после передачи стоп-бита во всех режимах. Подпрограмма, обслуживающая прерывания или опрашивающая флаг, должна сбрасывать бит T1.
Флаг прерывания приемника R1 устанавливается аппаратно после приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.
Скорость приема/передачи информации через последовательный порт
Скорость приема/передачи в различных режимах, задается различными способами.
В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора fрез:
f = fрез/12.
При этом за машинный цикл последовательный порт передает/передает/принимает один бит информации.
В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON. Формат регистра управления питанием, в котором расположен бит управления скорости передачи, приведен на рис. 6.23.