МПТлабы4-6 / 6
.doc
Цель работы: изучить и практически исследовать работу команд операций с битами однокристальных микроконтроллеров семейства MCS-51 (МК51) на персональном компьютере.
Основные теоретические сведения
Отличительной особенностью данной группы команд является то, что они оперируют с однобитными операндами. В качестве таких операндов могут выступать отдельные биты некоторых регистров специальных функций, а также 128 программных флагов пользователя.
МК51 имеет следующие команды операций с битами
CLR C ; (C) 0 - Сброс переноса
CLR bit ; (b) 0 - Сброс бита
SETB C ; (C) 1 - Установка переноса
SETB bit ; (b) 1 - Установка бита
CPL C ; (C) (/C) - Инверсия переноса
CPL bit ; (b) (/b) - Инверсия бита
ANL C, bit ; (C) (C) (b) - Логическое И бита и переноса
ANL C, /bit ; (C) (C) (/b) - Логическое И инверсии бита и переноса
ORL C, bit ; (C) (C) (b) - Логическое ИЛИ бита и переноса
ORL C, /bit ; (C) (C) (/b) - Логическое ИЛИ инверсии бита и переноса
MOV C, bit ; (C) (b) - Пересылка бита в перенос
MOV bit, C ; (b) (C) - Пересылка переноса в бит
5-й бит регистра PSW может быть сброшен (очищен) любой из четырех команд
USER_FLAG REG PSW.5 ; Описание символа пользователя
………………..
………………..
CLR 0D5H ; Абсолютная адресация
CLR PSW.5 ; Использование точечного оператора
CLR F0 ; Использование собственного имени бита
CLR USER_FLAG ; Использование символа пользователя
Установить в единицу 3-бит ячейки ПД с адресом 20H можно любой из трех следующих команд
FLAG1: REG 20H.3 ; Описание флага пользователя
……………….
SETB 03H ; Абсолютная адресация
SETB 20H.3 ; Использование точечного оператора
SETB FLAG1 ; Использование имени флага пользователя
Порядок выполнения работы
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
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. Вычисление логических функций с помощью команд операций с битами
Необходимо вычислить логическую (булеву) функцию трех переменных
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
1
1
0
0
0
1
0
0
1
1
Проверьте результаты работы программы «вручную», произведя вычисления по правилам алгебры логики.
Вывод: изучена и практически исследована работа команды операций с битами однокристальных микроконтроллеров семейства MCS-51 (МК51) на персональном компьютере.