Главная
Популярная публикация
Научная публикация
Случайная публикация
Обратная связь
ТОР 5 статей:
Методические подходы к анализу финансового состояния предприятия
Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века
Ценовые и неценовые факторы
Характеристика шлифовальных кругов и ее маркировка
Служебные части речи. Предлог. Союз. Частицы
КАТЕГОРИИ:
|
Формирование временной задержки с использованием таймеров
Недостатком программного способа реализации временной задержки является нерациональное использование ресурсов МК: во время формирования задержки МК практически простаивает, так как не может решать никаких задач управления объектом. В то же время аппаратные средства МК позволяют реализовать временные задержки на фоне выполнения основной программы.
Временные задержки можно получить при использовании таймера-счётчика.
Если использовать таймер-счётчик в режиме таймера, то временную задержку можно реализовать следующим образом (листинг 4.24):
Листинг 4.24 – Программа временной задержки с использованием таймера-счётчика
F:
COUNT:
| .EQU 18432000
.EQU 65535-(F/(1000*12))
.ORG 0000H
JMP BEGIN
.ORG 000BH
JMP TIME
| ; Частота кварцевого
; резонатора
; Число, определяющее
; время счёта таймера от
; момента его загрузки до
; переполнения (1 мс)
; Адрес начала программы
; Переход к основной части
; Адрес обработки
; прерывания таймера
; Переход на процедуру
; обработки прерывания
| BEGIN:
| MOV SP, #30H
MOV IE, #00H
CLR TR0
CLR 20H.0
MOV R0, #10
MOV TL0, #<COUNT
MOV TH0, #>COUNT
MOV TMOD, #01H
SETB TR0
JNB 20H.0, $
CLR TR0
…
| ; Переопределение
; вершины стека
; Запрет прерываний
; Запрет счёта
; Сброс флага конца паузы
; Загрузка счётчика прерываний
; Загрузка регистров таймера-
; счётчика TC0
;Настройка таймера-счётчика
; на режим 1
; Ожидание конца паузы
; Запрещение работы таймера
; Продолжение программы
; В любом месте программы
; достаточно очистить флаг
; 20h.0, загрузить числа в
; TL0,TL1 и запустить счет,
; чтобы получить требуемую
; задержку
| TIME:
EXIT:
| CLR TR0
MOV A, TL0
ADD A, #13
ADD A, #<COUNT
MOV TL0, A
MOV A, TH0
ADDC A, #>COUNT
MOV TH0, A
SETB TR0
DJNZ R0, EXIT
SETB 20H.0
RETI
| ; Запрещение работы таймера
; Добавление к содержимому
; регистров TL0 TH0
; коэффициента счёта и
; времени затраченного на
; выполнение данного
; суммирования
;
; Разрешение работы таймера
; Декремент счётчика
; прерываний и выход из
; прерывания, если значение
; счётчика не равно нулю
; Установка флага конца паузы
; Выход из прерывания
|
Не нашли, что искали? Воспользуйтесь поиском:
|