Курсовая работа: Обработка сигналов на основе MCS-51
Пример 2 Маскировка данных при вводе. Ввести в регистр R3 информацию из линий 1,3,5,6,7 порта 1:
MOV А, Р1 ; ввод байта с Р1
ANL А,#11101010В; маскировка
MOV R3, А ; передача в R3
Пример 28. Выполнить логический сдвиг вправо двухбайтового числа, которое размещено в R5, А:
SHIFTR: CLR С ; сбрасывание переноса
CPL С ; установление переноса
ХСН А, R5 ; обмен байтами
JNB А.7, L1 ; если R5.7=1, то снять флажок переноса
CLR C
RRC A ; сдвиг флажка переноса
L1: XCH A, R5 ; обмен
RRC A ; сдвиг младшего байта
Пример 29. Выполнить сдвиг влево двухбайтового числа, которое размещено в R5 и А:
SHIFT L: RLC А ; сдвиг младшего байта
XCH А, R5 ; обмен А и R5
RLC A ; сдвиг старшего байта
XCH А, R5 ; обмен
Пример 30. Управление группой бит порта.
В РПД находится массив распакованных десятичных цифр. Необходимо передать их внешнему устройству в соответствии с протоколом (рис. 2). Для передачи 4-х бит данных используются младшие линии порта 1. Линии Р1.4 и Р1.5 используются как сигналы квитирования, то есть передачу сигналов на выход МК сопровождает стробирующий сигнал на линии Р1.4. Внешнее устройство, которое приняло данные, сообщает об этом сигналом на входе Р1.5. Биты Р1.6 и Р1.7 не должны изменять своих значений.
Исходные данные программы: начальный адрес массива – (R0), длина массива – (R1).
ORL P1, #00100000В; настройка
; Р1.5 на ввод
LOOP: MOV A, @R0; загрузка байта
; в аккумулятор
ANL P1,#11100000В; сброс данных
; и строба
ORL P1, A ; выдача данных
ORL P1,#00010000В; выдача строба