Курсовая работа: Обработка сигналов на основе MCS-51
LL: SETB P1.3 ; результат А<В
EXIT: ; продолжение выполнения программы
Аналогично выполняется сравнение чисел большей разрядности. Если необходимо сравнивать многобайтные числа, то сравнение следует начинать со старших байтов.
3. Логические операции в MCS -51
Пример 18. Вывод управляющих сигналов из МК.
Формирование статических сигналов используется для управления исполнительным механизмом по принципу «включен-выключен». При этом соответствующие линии портов просто устанавливаются в 0 или 1.
Если имеем группу исполнительных механизмов, то для их управления необходимо сформировать управляющее слово (УС), каждый бит которого – соответствующий управляющий сигнал.
Для изменения УС достаточно выполнять логические операции над теми битами портов, которые необходимо изменить.
Например: ANL – для сброса тех битов УС, какие заданные нулями
ORL – для установки бит
XRL – инверсия бит по времени
Пример 19. Определение переполнений. При накоплении большого количества слагаемых может возникнуть переполнение разрядной сетки. Для определения этого используют модифицированный дополнительный код, который отличается от обычного дополнительного введением дополнительного знакового разряда. При добавлении k слагаемых таких разрядов должно быть r = log2 k.
Признаком переполнения служит отличие знаковых разрядов. Отметим, что использование r знаковых разрядов суживает диапазон изменения сигналов в 2r раз.
Пример 20. Сбросить биты 0,2,4,6 порта 2:
ANL Р2,#10101010В; сбрасывание бит 0,2,4,6 порта 2
Пример 21. Установить биты 0…3 из порта 1
ORL P1.#00001111В; (P1.0…P1.3) ¬ 1111
Можно также записать
ORL P1,#0FH
Пример 22. Выбрать нулевой регистровый банк:
ANL PSW,#11100111В; сбрасывание бит RS0 и RS1
Пример 23. Проинвертировать биты порта Р1, которые отвечают единичным битам в аккумуляторе:
XRL Р1, А ; сумма по модулю два значения порта 1 и аккумулятора
Пример 24. Проинвертировать биты 7,6,5,4 порта 0:
XRL Р,#11110000В; сумма по модулю два значений порта 0 и константы
Можно также записать XRL Р0, #0F0H
Пример 25. Проинвертировать биты 0…3 в аккумуляторе:
XRL A,#0FH ; сумма по модулю два значения аккумулятора и константы
Пример 26. Настроить биты 1,3,5,7 порта 1 на ввод: