Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
15.04.2015
Размер:
662.53 Кб
Скачать

3. Занесите в память симулятора следующую программу

CLR C ; Сбросить флаг C

RRC A ; Сдвиг аккумулятора вправо через перенос

MOV P1, A ; Вывод результата в порт P1

NOP

Программа выполняет деление содержимого аккумулятора на 2. Для сдвига вправо используется команда сдвига через перенос, причем предварительно флаг C сбрасывается. Это сделано для того, чтобы единица младшего разряда аккумулятора после сдвига не поступила в старший разряд результата и не исказила результат. При таком построении программы может возникнуть ошибка за счет потери младшего разряда исходного числа.

Выполните программу в пошаговом режиме и заполните табл. 5.7.

Таблица 5.7

Исходное значение

Результат

HEX-код

Двоичный код

HEX-код

Двоичный код

88

1000 1000

44

0100 0100

82

1000 0010

41

0100 0001

81

1000 0001

40

0100 0000

Задания для самостоятельной работы

1. Напишите и выполните программу, которая производит умножение содержимого регистра R5 на константу 4,5. Результат умножения содержимого регистра R5 на константу 4,5 можно представит таким образом

4,5 * (R5) = 4 * (R5) + (R5) / 2.

Из формулы видно, что умножения на 4,5 можно заменить суммированием сдвинутых влево и вправо содержимого регистра R5.

2. Напишите и выполните программу умножения содержимого ячейки ПД с адресом 40H на константу 10.

Применение логических команд для преобразования кодов

При обработке данных в микроконтроллерах применяются прямой, обратный и дополнительный коды для представления двоичных чисел как беззнаковых, так и со знаком. Следует отметить, что для положительных чисел прямой, обратный и дополнительный коды совпадают друг с другом.

Задания для самостоятельной работы

1. Разработайте и выполните программу, которая преобразует беззнаковое двоичное число, поступающее из порта P1 в

  1. обратный код, который помещается в регистр R7;

  1. дополнительный код, который помещается в ячейку ПД с адресом 33H.

2. Разработайте и выполните программу, которая преобразует 16-разрядное беззнаковое двоичное число, поступающее в МК из порта P2 (младший байт) и порта P1 (старший байт) в

  1. обратный код, который помещается в регистр DPTR

  1. дополнительный код, который помещается в ячейки ПД с адресами 30H (младший байт) и 31H.

Замечание. Для получения дополнительного кода двухбайтного числа следует использовать команды сложения, так как команды инкремента не влияют на флаг переноса C, что может привести к ошибке.

Вывод: изучили и практически исследовали работу логических команд однокристальных микроконтроллеров семейства MCS-51 (МК51) на персональном компьютере.

Соседние файлы в папке МПТлабы4-6