Курсовая работа: Обработка сигналов на основе MCS-51
DJNZ R3, DBNC1 ; повторять, пока значение в R3
; не станет равным 0
JB P3.4, DBNC; конечная проверка
Временная задержка подбирается экспериментальное (1–10 мс) в зависимости от типа датчика.
Пример 44. Формирование импульсных сигналов делается по принципу включен / выключен с необходимой временной задержкой:
PULLS:ON: ANL P1,#11110111B; выдача импульса в линию 3 порта 1
CALL DELAY ; временная задержка
OFF: ORL Р1,#00001000В; сброс
Пример 45. Считывание данных из таймера. Для устранения возможных сбоев при считывании сначала читается старший байт, потом – младший, после чего подтверждается, что старший байт за это время не изменился.
RDTIME: MOV A, TH0
MOV R0, TL0
CJNE A, TH0, RDTIME
MOV R1, А
RET
Пример 46. Подсчет числа импульсов, например, радиодеталей, которые движутся по конвейеру, зафиксированных фотоэлементом (рис. 9).
MOV TMOD,#01000000B; настройка счетчика 1
MOV TH1,#00H ; сброс счетчика
WAIT0: JB P3.4, WAIT0; ожидание включения транспортера
SETB TCON.6 ; запуск счетчика 1
WAITC: JNB P3.4, WAITC; ожидание отключения транспортера
CLR TCON.6 ; остановка счетчика 1
MOV A.TH1 ; A ¬ число деталей
EXIT: ; выход
Максимальное число радиодеталей – 255.
Пример 4 Реализация функций времени на основе таймеров.
В MCS-51 при частоте генератора тактовых импульсов 12 МГц таймер / счетчик изменяет свое значение с частотой 1 Мгц (в режиме таймера), или при поступлении сигнала от внешнего источника через счетный вход T0, T1 (в режиме счетчика).
Если использовать таймер / счетчик в режиме 1 полного формата (16 бит), то получим задержки в границах (1 – 65536 мкс).
Программа задержки на 50 мс в MCS-51, прерывание разрешено. Организация перехода к метке NEXT при переполнении Т/С0:
ORG 0ВН ; адреса вектора прерываний от Т/С0