МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования «Гомельский государственный
университет им. П. О. Сухого»
Кафедра «Промышленная электроника»
Лабораторная работа № 5 по дисциплине: «МПТ»
«Логические команды»
Выполнил студент
Принял преподаватель
Лабораторная работа №5
Цель работы: Изучить и практически исследовать работу логических команд однокристальных микроконтроллеров семейства MCS-51 (МК51) на персональном компьютере.
Краткое описание команд
В МК51 имеются следующие команды логических операций:
ANL A, Rn ; (A) ß (A) Ù (Rn) - Логическое И аккумулятора и регистра
ANL A, ad ; (A) ß (A) Ù (ad) - Логическое И аккумулятора и прямоадресуемого байта
ANL A, @Ri ; (A) ß (A) Ù ((Ri)) - Логическое И аккумулятора и байта из ПД
ANL A, #d ; (A) ß (A) Ù #d - Логическое И аккумулятора и константы
ANL ad, A ; (ad) ß (ad) Ù (A) - Логическое И прямоадресуемого байта и аккумулятора
ANL ad, #d ; (ad) ß (ad) Ù #d - Логическое И прямоадресуемого байта и константы
ORL A, Rn ; (A) ß (A) Ú (Rn) - Логическое ИЛИ аккумулятора и регистра
ORL A, ad ; (A) ß (A) Ú (ad) - Логическое ИЛИ аккумулятора и прямоадресуемого байта
ORL A, @Ri ; (A) ß (A) Ú (Ri)) - Логическое ИЛИ аккумулятора и байта из ПД
ORL A, #d ; (A) ß (A) Ú #d - Логическое ИЛИ аккумулятора и константы
ORL ad, A ; (ad) ß (ad) Ú (A) - Логическое ИЛИ прямоадресуемого байта аккумулятора
ORL ad, #d ; (ad) ß (ad) Ú #d - Логическое ИЛИ прямоадресуемого байта константы
XRL A, Rn ; (A) ß (A) " (Rn) - Исключающее ИЛИ аккумулятора и регистра
XRL A, @Ri ; (A) ß (A) " ((Ri)) - Исключающее ИЛИ аккумулятора и байта из ПД
XRL A, #d ; (A) ß (A) " #d - Исключающее ИЛИ аккумулятора и константы
XRL ad, A ; (ad) ß (ad) "(A) - Исключающее ИЛИ прямоадресуемого байта и аккумулятора
XRL ad, #d ; (ad) ß (ad) " #d - Исключающее ИЛИ прямоадресуемого байта и константы
CPL A ; (A) ß (/A) - Инверсия аккумулятора
CLR A ; (A) ß 0 - Сброс (очистка) аккумулятора
SWAP A ; - Обмен местами тетрад в аккумуляторе
Ход работы
1. Заносим в память программ симулятора программу, выполняющую маскирование (сброс, обнуление, очистку) 7-го разряда числа, находящегося в регистре R4.
Текст программы:
MOV A, R4 ; Пересылка (A) ß (R4)
ANL A, #01111111B ; Лог. умножение аккумулятора и маски 01111111B=7FH
MOV R4, A ; Пересылка (R4) ß (A)
NOP ; Пустая команда
Выполняем программу в пошаговом режиме, предварительно записав в регистр R4 исходные данные в соответствии с табл. 1
Таблица 1
Исходные значения |
Результат |
|
Получено практически |
Получено теоретически |
|
FFH |
01111111B=7FH |
01111111B |
0AH |
00001010B=0AH |
00001010B |
2. Записываем в память симулятора программу, выполняющую установку в 1 разрядов младшей тетрады байта, находящегося в регистре R5.
Текст программы:
MOV A, R5 ; Пересылка (A) ß (R5)
ORL A, #00001111B ; Лог. сложение с маской 00001111B = 0FH
MOV R5, A ; Пересылка (R5) ß (A)
NOP
Выполняем программу в пошаговом режиме, предварительно записав в регистр R5 исходные данные в соответствии с табл.2
Таблица 2
Исходные значения |
Результат |
|
Получено практически |
Получено теоретически |
|
F0H |
11111111B=FFH |
11111111B=FFH |
AAH |
10101111B=AFH |
10101111B=AFH |
3. Записываем в память симулятора программу, инвертирующую младшую тетраду байта, находящегося в регистре R6.
Текст программы:
MOV A, R6 ; Пересылка (A) ß (R6)
XRL A, #00001111B ; Искл. ИЛИ с маской 00001111B = 0FH
MOV R6, A ; Пересылка (R6) ß (A)
NOP
Выполняем программу в пошаговом режиме, предварительно записав в регистр R6 исходные данные в соответствии с табл. 3
Таблица 3
Исходные значения |
Результат |
|
Получено практически |
Получено теоретически |
|
FFH |
11110000B=F0H |
11110000B=F0H |
0FH |
00000000B=00H |
00000000B=00H |
4. Заносим в память симулятора следующую программу:
RL A ; Умножение на 2
RL A ; Умножение на 2
MOV P1, A ; Вывод в порт P1
NOP
Программа выполняет умножение содержимого аккумулятора на 4 и выводит результат в порт P1.
Следует, однако, отметить, что результат будет правильным только в том случае, если при умножении не происходит переполнение аккумулятора, т.е. результат должен быть меньше FFH.
Таблица 4
Исходное значение |
Результат |
||
HEX-код |
Двоичный код |
HEX-код |
Двоичный код |
10 |
0001 0000 |
40 |
0100 0000 |
20 |
0010 0000 |
80 |
1000 0000 |
40 |
0100 0000 |
01 |
0000 0001 |
5. Заносим в память симулятора следующую программу:
MOV B, #0 ; Очистить регистр B
CLR C ; Сбросить флаг C
RLC A ; Сдвиг влево объединенного
XCH A, B ; 16-разрядного результата
RLC A ; в регистровой паре (B)(A)
XCH A, B
RLC A
XCH A, B
RLC A
XCH A, B
NOP
Программа производит умножение содержимого аккумулятора на 4. Умножение на 2 заменяется сдвигом влево через перенос аккумулятора и расширителя B. Выполняем программу умножения в пошаговом режиме и заполняем табл
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.