Курсовая работа: Обработка сигналов на основе MCS-51
Полученный результат находится на месте начального числа и занимает в РПД на 1 байт больше. Время вычисления произведения составляет (1+13N) мкс, где N – длина числа в байтах.
Пример 16. Деление (DIV) – делится содержимое аккумулятора на значение в В. После деления в А находится целая часть, в В-остаток. Команда может быть использована для быстрого преобразования двоичного числа в двоично-десятичный формат.
Программа переводит двоичное число, находящееся в аккумуляторе, в двоично-десятичный код, который может быть трехразрядным (в десятичной системе счисления). В этом случае число сотен будет размещено вR0, десятки и единицы – соответственно в А и В.
MOV B,#100D ; (B) ¬ 100 для вычисления числа сотен в числе
DIV AB ; в А є число сотен (то есть старшая цифра)
MOV R0, A ; пересылка в R0 старшей цифры
ХСН А, В ; пересылка остатка от деления входного числа в А
MOV B,#10D ; (В)¬10 (определяется число десятков в числе)
DIV AB ; в А – число десятков, В-число единиц
SWAP A ; размещение числа десятков в старшей тетраде А
ADD А, В ; суммирование остатка (числа единиц) аккумулятор сохраняет две младших цифры.
Время преобразования – 16 мкс.
Пример 1 Сравнение двух четырехразрядных чисел, которые подаются на входы порта Р2.
Сигнал равенства выводится на Р1.1, большее – Р1.2, меньшее – Р1.3, разрешение сравнения подается на Р1.0.
ANL P1,#11110001В ; сброс всех сравнений
L0: JNB Р1.0, L0 ; ожидание разрешения
MOV A, P2
ANL A,#F0H ; выделение первого числа
SWAP A
MOV В, A ; запоминание первого числа
CLR C ; сброс переноса
MOV А, P2
ANL A,#0FH ; выделение второго числа
SUBB А, В ; вычисление В
JZ LR ; переход, если А=В
JC LL ; переход, если А<В
SETB P1.2 ; результат А>В
JMP EXIT
LR: SETB P1.1 ; результат А=В