Формирование временной задержки таймером
Задержка малой длительности. Недостатком программного способа реализации временной задержки является нерациональное использование ресурсов микроконтроллера: во время формирования задержки он практически простаивает, так как не может решать никаких задач управления объектом. В то же время аппаратурные средства позволяют реализовать временные задержки на фоне основной программы работы.
На вход таймера/счетчика (Т/С) могут поступать сигналы синхронизации с частотой 1 МГц (Т/С в режиме таймера) или сигналы от внешнего источника (Т/С в режиме счетчика). Оба эти режима могут быть использованы для формирования задержек. Если использовать Т/С в режиме таймера полного формата (16 бит), то можно получить задержки в диапазоне 1 - 65 536 мкс.
В качестве примера рассмотрим организацию временной задержки длительностью 50 мс. Предполагается, что бит IE.7 установлен.
;организация перехода к метке NEXT при переполнении Т/С0
ORG 0BH ;адpec вектора прерывания от Т/С0
CLR TCON.4 ;останов Т/С0
RETI ;выход из подпрограммы обработки прерывания
ORG 100H ;начальный адрес программы
MOV TMOD, #01H ;настройка Т/С0
MOV TL0, #LOW(NOT(50000-1)) ;загрузка таймера
MOV TH0, #HIGH(NOT(50000-1))
SETB TCON.4 ;старт Т/С0
SETB IE.1 ;перевод в режим холостого хода
SETB PCON.0
NEXT: ...