Микропроцессоры и микроконтроллеры

 
 
 
«There are more useful systems developed in languages deemed awful than in languages praised for being beautiful--many more.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Принципы программирования MSC-51 :: Принципы реализации подсчета импульсов

Принципы реализации подсчета импульсов

На кристалле МК51 реализованы два 16-битовых таймера-счетчика событий, которые программно могут быть настроены на работу или в режиме таймера (реализация или измерение временных интервалов), или в режиме счетчика (подсчет количества внешних импульсов, которые поданы на вход Т0 или Т1). С точки зрения программиста, каждый таймер реализован как пара таймерных (счетных) регистров разрядностью 8 бит, на основе которых осуществляется подсчет. Таймерные регистры имеют символические имена: Таймер 0: ТН0, ТL0; Таймер 1: ТН1, ТL1.

При работе в режиме таймирования содержимое счетных регистров инкрементируется (увеличивается на единицу) один раз в каждом машинном цикле (при
= 12 Мгц - каждую микросекунду). Фактически в этом режиме реализуется подсчет импульсов от внутреннего генератора.

При работе в режиме счетчика содержимое таймерных регистров инкрементируется под влиянием перехода "1"-"0" внешнего сигнала, который подается на вход Т0 или Т1 МК51. Опрос уровня сигнала на входе Т0 или Т1 осуществляется в любом МЦ в фазе S5P2. Содержимое счетчика будет увеличено на единицу, если в минувшем цикле была считана "1", а в текущем цикле - "0". Значение счетчика при этом увеличится на единицу в фазе S3P1 следующего за выявлением перепада МЦ. Таким образом, на распознание перепада и инкремент счетчика нужно 2 МЦ. Поэтому максимальная частота подсчета входных импульсов равняется 1/24 частоты резонатора: . При = 12 Мгц счетчик МК51 способный подсчитывать внешние события, которые происходят с частотой от 0 Гц до 500 кГц.

Для гарантированного прочтения входной сигнал должен удерживать значение "1" как минимум 1 МЦ (т.е. в течение 1 мкс).

В обоих режимах таймер-счетчик, по сути, подсчитывает импульсы, но источник этих импульсов является различным. В режиме таймирования подсчитываются импульсы внутреннего генератора, таким образом осуществляется заполнение заданного временного интервала импульсами генератора МК51. В режиме счетчика подсчитывается количество внешних импульсов.