- •2006Г. Исследование однокристального микропроцессора
- •1. Краткое описание микропроцессора 1816ве51
- •II. Краткое описание лабораторного стенда умпк-51
- •Порядок проведения лабораторной работы .
- •1.2. Режим просмотра и изменения содержимого внешней памяти.
- •1.3. Вывод на дисплей содержимого программного счетчика.
- •1.4. Просмотр и изменение содержимого внутренней памяти данных.
- •1.6. Просмотр и изменение содержимого внутренних регистров.
- •1.8. Запуск выполнения программы.
- •1. Команды обращения к регистрам
- •2.Команды обращения к памяти.
- •4. Двухоперандные команды
- •5. Команды обращения к портам ввода/вывода.
- •6. Команды операций с битами.
- •7. Пример программы.
2.Команды обращения к памяти.
В этих командах используется косвеннаяадресация с помощью регистровr0 илиr1.
Занесение информации в резидентную память данных (РПД)
-
Команда
Структура
Код
MOV @Ri,A
1111 011i
F6/F7
Введите в память программ код команды по 1000 адресу.
Занесите в аккумулятор произвольное значение.
Запишите в регистр банка памяти данных, номер которого указан в команде (b0r0 илиb0r1), значение адреса РПД. Выполните команду в пошаговом режиме.
Проверьте правильность выполнения команды. Результат занесите в отчет.
Занесение константы.
-
Команда
Структура
Код
MOV @Ri,#d
0111 011i
76/77
#d
XX
Введите команду в память программ, начиная с 1000 адреса.
Во второй байт команды (адрес 1001) занесите значение константы.
Запишите в регистр, номер которого указан в команде, значение адреса РПД .
Выполните команду в пошаговом режиме.
Проверить правильность выполнения команды. Результат занесите в отчет.
Чтение памяти
Команда выполняет пересылку данных из РПД в аккумулятор. Предварительно следует занести в ячейку памяти пересылаемое значение, и в соответствующий регистр - адрес ячейки
-
Команда
Структура
Код
MOV A,@Ri
1110 011i
E6/E7
(Ri)
XX
По команде пересылается значение ячейки РПД, адрес которой указан в регистре b0r0 илиb0r1.
Однооперандные команды.
Выполните приведенные команды, предварительно занеся в аккумулятор (А) и соответствующий регистр (Rn) конкретные значения. Результаты выполнения команд занесите в отчет.
-
Команда
Структура
Код
Содержание команды
INCА
0000 0100
04
Инкремент аккумулятора
INCRn
0000 1rrr
08…0F
Инкремент регистра
CLRA
1110 0100
E4
Сброс аккумулятора
SWAPA
1100 0100
C4
Обмен местами тетрад в аккумуляторе
4. Двухоперандные команды
-
Команда
Структура
Код
Содержание команды
ADD A,Rn
0010 1rrr
28…2F
Сложение акк. и рег.(результат в А)
MUL A,B
1010 0100
A4
Умножение акк. на рег.В (результат в B,А)
XCH A,Rn
1100 1rrr
C8…CF
Обмен акк. с регистром
ANL A,Rn
0101 1rrr
58…5F
Лог. умножение акк. и рег.(результат в А)
ORL A,Rn
0100 1rrr
48…4F
Лог. сложение акк. и рег.(результат в А)
Выполните приведенные команды, предварительно занеся в аккумулятор (А) и соответствующий регистр (Rn) конкретные значения. Результаты выполнения команд занесите в отчет.
5. Команды обращения к портам ввода/вывода.
В этих командах используется прямаяадресация.
Запись вручную. Выполните обращение к порту 1 следующим образом:
Используя движковые переключатели, установите все разряды порта 1 в единичное состояние (индикаторы светятся).
Нажмите кнопку «DM».
Введите по адресу 90 (адрес порта 1) произвольное число.
Нажмите кнопку «+1».
Проследите за изменением разрядов порта 1 (индикаторов).
Повторите эту процедуру несколько раз с различными значениями данных.
5.2. Загрузка порта 1 содержимым аккумулятора.
-
Команда
Структура
Код
MOV ad,A
1111 0101
F5
ad
90
Установите движковые переключатели (входы порта 1) в нижнее положение (светодиодные индикаторы светятся).
Загрузите в аккумулятор произвольное число.
Выполните команду пошаговом режиме.
Проконтролируйте состояние разрядов порта 1 по световым индикаторам.
Повторите эту процедуру несколько раз с различными значениями данных.
5.3. Пересылка константы по прямому адресу. В данном случае константа загружается в порт 1.
-
Команда
Структура
Код
MOV ad,#d
0111 0101
75
ad
90
#d
Любое число.
XX
Установите движковые переключатели (входы порта 1) в нижнее положение (светодиодные индикаторы светятся).
Загрузите команду с 1000 адреса.
Запишите в 3-й байт команды произвольное число (ХХ).
Выполните команду пошаговом режиме.
Проконтролируйте состояние разрядов порта 1 по световым индикаторам.
Повторите эту процедуру несколько раз с различными значениями данных.
Загрузка порта 1 содержимым порта 2.