Курсовая работа: Обработка сигналов на основе MCS-51
WAITC: JB P1.3, WAITC; ожидание замыкания датчика
Пример 38. Опрашивание группы двоичных датчиков (аналогично нахождению заданного кода или комбинации датчиков).
WTCODE: MOV A,#10D ; загрузка в А эталонного кода 00001010В
WAIT: CJNE A, P1, WAIT; если кодовая комбинация не совпала с заданной, то ждать
EXIT: ; вывод
Пример 39. При достижении значения параметра равного 135, передать управление на подпрограмму с меткой LABEL А, иначе LABEL В.
MOV A,#135D ; загрузка значения параметра
CJNE A, P1, LABEL В; сравнение и передача управления
LABEL А:
LABEL В:
Пример 40. Зафиксировать импульс, поступающий на вход ОМЭВМ (P1.3) и его окончание.
WAITC: JB P1.3, WAITC; ожидание Р1.3=0
WAIT0: JNB P1.3, WAIT0; ожидание Р1.3=1
Зафиксированный импульс имеет вид .
Для импульса обратного вида нужно поменять WAIT0 и WAITC местами.
Таблица 1 – Минимальная продолжительность сигнала, которую определяет МК
Подключение датчика к выводам | Минимальная длительность импульса, мкс | |
(отрицательного) | (положительного) | |
P1, P2, BUS/P0 | 10/2 | 12,5/2 |
T0, Т1 | 5/2 | 5/2 |
ЗПР | 10/2 | 5/2 |
Пример 41. Передать управление на метку TEST и установить Р3.7, если на Т0 поступит 30 импульсов.
MOV R1,#30D ; загрузка числа импульсов
L1: JB P3.4, L1 ; ожидание нуля
L0: JNB P3.4, L2 ; ожидание единицы
JMP L0
L2: DJNZ R1, L1 ; повторить 30 раз
JMP TEST
TEST: SETB Р3.7 ; установление бита
Пример 42. Схема для фиксации короткого импульса: D-триггер устанавливается коротким импульсом, а сбрасывается программно, после определения наличия сигнала на входе Т0.
Пример 43. Устранение дребезжания контактов. Дребезжание состоит в том, что благодаря упругим свойствам контактов возможен отрыв контактов, который приводит к переходному процессу. При этом сигнал может быть прочитан многократно как случайная последовательность нулей и единиц. Это можно устранить с помощью триггера (рис. 6).
Чаще всего с помощью MCS51 это делается программно так, как показано на рис. 7 и рис. 8.
Реализация первого метода, количество совпадений задано в R3.
DBNC: MOV R3,#3 ; инициализация счетчика