Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_10.doc
Скачиваний:
3
Добавлен:
27.09.2019
Размер:
137.73 Кб
Скачать

3. Порядок выполнения работы

3.1. Управление отдельными битами ячеек пд и регистров специальных функций

Запишите в память симулятора AVSIM51 коды команд

SETB ACC.7

CLR ACC.7

CPL ACC.7

NOP

SETB C

CLR C

CPL C

NOP

CLR PI.0

SETB P1.0

CPL P1.0

NOP

SETB 22H.0

CLR 22H.0

CPL 22H.0

NOP

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

3.2. Использование команд операций с битами для переключения регистровых банков

Выбор рабочего банка регистров осуществляется 3-м и 4-м битами регистра состояния PSW (биты PSW.3 и PSW.4), которые имеют собственные символические имена RS0 и RS1 соответственно. Распределение банков регистров общего назначения в МК51 приведено в табл. 1.

Таблица 1

Распределение банков МК51

RS1

RS0

Номер банка

0

0

Банк 0

0

1

Банк 1

1

0

Банк 2

1

1

Банк 3

Во избежание нежелательного изменения других битов регистра PSW рекомендуется производить модификацию номера банка с использованием команд операций с битами. Напоминаем, что после сброса МК51 (обычно при включении электропитания) автоматически выбирается банк 0, при этом биты RS1 = RS0 = 0.

Запишите в память симулятора AVSIM51 следующие коды

MOV R0, #10H

SETB RS1

SETB RS0 ; Выбор банка 3 РОН

MOV R0, #33H

CLR RS0 ; Выбор банка 2 РОН

MOV R0, #22H

CLR RS1 ; Выбор банка 0

MOV R0, #0FFH

NOP

Выполните программу в пошаговом режиме, наблюдая за переключением банков РОН по изменению ячеек памяти данных, где располагаются РОН.

3.3. Вычисление логических функций с помощью команд операций с битами

Необходимо вычислить логическую (булеву) функцию трех переменных

Y = X  Z  W  ( X  Z ).

Переменные X, Z, W поступают на линии 2, 1 и 0 порта P1. Результат Y нужно вывести на линию 7 порта P1.

Программа вычисления логической функции имеет вид

W: REG P1.0 ; Спецификация бит порта P1

Z: REG P1.1

X: REG P1.2

Y: REG P1.7

MOV C, X ; Пересылка X в С

ANL C,/Z ; Операция X AND NOT(Z)

MOV F0, C ; Запоминания результата в бите F0

MOV C, X ; Пересылка X в C

ORL C, Z ; Операция X OR Z

ANL C, W ; Операция W AND (X OR Z)

ORL C, F0 ; Операция OR, результат во флаге C

MOV Y, C ; Вывод результата Y

END

Задание. В своей папке создайте файл с именем log.asm. Запишите в него программу вычисления логической функции. Получите файлы log.obj и log.hex. Исследуйте работу программы в пошаговом режиме, задавая значения переменных на соответствующих линиях порта P1 из табл. 2.

Таблица 2

Результаты исследования программы вычисления функции

Входные значения

Получено

Практически

Теоретически

X (P1.2)

Z (P1.1)

W (P1.0)

Y (P1.7)

Y

1

1

1

1

1

0

1

0

0

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]