- •О.И. Елисеева, б.Б. Михайлов микропроцессоры.
- •Основные правила по технике безопасности при работе в лаборатории
- •Изучение микро-эвм на базе комплекта к 580
- •Общие сведения.
- •Порядок проведения лабораторной работы.
- •Задание 2. Изучение порядка записи и выполнения простых программ.
- •Задание 3. Исследование процесса выполнения программы по командам.
- •Задание 4. Обнуление бита переноса
- •Список необходимых команд микропроцессора к580
- •Исследование микропроцессора серии к1801
- •1. Краткое описание микропроцессора к1801вм1
- •1.1. Основные технические характеристики.
- •1.2. Структура микропроцессора.
- •1.3 Система команд микропроцессора
- •Методы адресации процессора 1801
- •Порядок выполнения работы
- •Требования к отчету.
- •Список необходимых команд микропроцессора к1801вм1
- •Исследование микропроцессорного комплекта серии к1804 Краткие теоретические сведения.
- •Входные данные Выходные данные
- •Описание устройства «микротренажер мт 1804».
- •Режимы работы устройства «микротренажер мт 1804»
- •Разряды
- •Подготовка к работе и порядок её выполнения
- •5. Отчет
- •Исследование однокристального микропроцессора 1816ве51 Порядок проведения лабораторной работы .
- •Краткое описание лабораторного стенда умпк-51.
- •Задание 1. Изучить порядок обмена информацией и способы управления микроконтроллера.
- •1. Порядок включения контроллера.
- •2. Режим просмотра и изменения содержимого внешней памяти.
- •3. Вывод на дисплей содержимого программного счетчика.
- •4. Просмотр и изменение содержимого внутренней памяти данных.
- •5. Просмотр и изменение содержимого отдельных разрядов.
- •6. Просмотр и изменение содержимого внутренних регистров.
- •7. Порядок занесения команды (программы).
- •8. Запуск выполнения программы.
- •Задание 2: Изучить порядок выполнения команд и программ.
- •. Система команд микроконтроллера семейства 1816.
- •1. Общая характеристика.
- •2. Типы команд
- •3. Типы операндов
- •5. Oбозначения, используемые при описании команд.
- •6. Команды пересылки данных микроконтроллера 1816.
- •7. Команды арифметических операций 1816.
- •8. Команды логических операций микроконтроллера 1816.
- •9. Команды операций над битами микроконтроллера 1816.
- •10.Команды передачи управления микроконтроллера 1816.
- •Память данных (озу).
- •Регистры специальных функций.
- •Исследование однокристального микропроцессора к1810вм86 Краткое описание микропроцессора к1810вм86
- •Оглавление
7. Порядок занесения команды (программы).
Коды команд (программа) вводятся в память программ (program memory) следующим образом:
Открыть ячейку памяти, нажав на кнопку PM.
2) Вести 16р адрес памяти (четыре шестнадцатеричных числа), используя числовые кнопки.
3) Вести 8р содержимое данной ячейки (код операции или операнд), используя числовые кнопки.
4) Записать введенное значение в ячейку памяти, нажав на кнопку «+1». При этом значение счетчика команд (PC) увеличивается на 1 - инкрементируется.
Процесс занесения можно продолжить далее: в следующую ячейку ввести новый код и записать его, нажав кнопку «+1».
Примечание. Занесение информации в память данных и регистры микропроцессора выполняется аналогично.
8. Запуск выполнения программы.
После ввода программы пользователя , выполните предварительную установку регистров внутренней памяти и отдельных битов , если это необходимо для выполнения программы.
Запуск программы пользователя может быть выполнен в одном из двух режимов: пошаговом и автоматическом. Для запуска программы пользователя необходимо предварительно ввести адрес первой выполняемой команды в программный счетчик с помощью кнопок «PC» или «PM», т.е. после записи программы в память необходимо вернуться в начало программы (набрать адрес ячейки, в которой хранится первая исполняемая команда программы).
Запуск программы пользователя в пошаговом режиме осуществляется нажатием кнопки «ST» («Step»). При этом выполняется одна команда и на дисплей выводится новое значение программного счетчика (адрес следующей команды).
Запуск программы пользователя в автоматическом режиме осуществляется нажатием кнопки «RU» («Run»).
Выход из программы пользователя при работе в автоматическом режиме производится нажатием на любую кнопку. При этом сохраняется содержимое внутренней памяти данных и регистров контроллера и на дисплей выводится адрес останова (адреса ячейки памяти, на которой прервали команду). Это дает возможность просмотра результатов выполнения программы.
Для продолжения выполнения программы нажмите кнопку «RU» или «ST».
Примечание. В данном микропроцессоре отсутствуют команды HALT и STOP. Поэтому выход из-под программы осуществляется по запросу прерывания, который выставляет контроллер клавиатуры после нажатия любой кнопки.
Задание 2: Изучить порядок выполнения команд и программ.
1. Команды обращения к регистрам
1.1 . Запись данных в регистр.
а) Ручная запись:
- нажмите кнопку «Rg»;
выберите нужный регистр, нажав кнопку «+1»;
используя числовые кнопки «0», «1»,….. «F» занесите двухзначное число в
данный регистр;
- запомните это число, нажав кнопку «+1».
б) Программная запись. Эта операция выполняется, например, с помощью команды передачи данных из аккумулятора в регистр.
-
Команда
Структура
Код
MOV Rn, A
1111 1rrr
F8…FF
Здесь rrr – номер n-го регистра 0…7, F8 – код команды при обращении к нулевому регистру, FF – код команды при обращении к седьмому регистру, соответственно.
Примечание. Выбор банка регистров осуществляется с помощью разрядов RS0, RS1 слова состояния процессора ССП (PSW). После включения питания по умолчанию устанавливается нулевой банк.
Порядок выполнения:
Занесите в аккумулятор (A) любое двухзначное число.
Нажмите кнопку «PM».
Введите значение 1000. (С этого адреса можно вводить программы пользователя).
Наберите код команды.
Нажмите кнопку «+1» для запоминания команды.
Запустите программу с адреса 1000 в пошаговом режиме, для чего используйте кнопку «ST».
Проверьте содержимое регистра, который использовался в данной команде.
в) Программное занесение константы. В этом случае в выбранный регистр заносится содержимое второго байта команды (ХХ).
.
-
Команда
Структура
Код
MOV Rn, #d
0111 1rrr
78…7F
#d
ХХ
Порядок выполнения:
Нажмите кнопку «PM».
Введите значение 1000.
Введите код команды.
Нажмите кнопку «+1» для запоминания команды. Адрес памяти изменился и стал 1001.
Занесите значение константы по этому адресу.
Нажмите кнопку «+1» для запоминания константы.
Перейдите в начало программы, то есть в ячейку с адресом 1000.
Нажмите кнопку «ST» для пошагового выполнения программы.
Проверьте содержимое регистра, который используется в данной команде.
г) Программное занесение прямо адресуемого байта памяти (РПД) в регистр.
-
Команда
Структура
Код
MOV Rn, ad
1010 1rrr
A8…AF
ad
ХХ
Здесь аd - адрес байта РПД.
Откройте ячейку резидентной памяти данных (кнопка «DM») в диапазоне адресов от 40 до 7F.
Занесите в ячейку любое число.
Запустите исполнение команды с 1000 адреса.
Проверьте содержимое соответствующего регистра, номер которого используется в коде команды.
1.2. Чтение регистра
а) Перенос содержимое регистра в аккумулятор
-
Команда
Структура
Код
MOV A, Rn
1110 1rrr
E8…EF
Занесите код команды в память программ по адресу 1000. Выполните команду в пошаговом режиме для третьего регистра второго банка. Просмотрите содержимое регистра. Значение, лежащее в регистре «Rn», будет занесено в «А».
Примечание. Банк регистра определяется разрядами RS0, RS1 регистра флагов (FL). По умолчанию установлен нулевой банк.
б) Пересылка значения регистра по прямому адресу в РПД.
-
Команда
Структура
Код
MOV ad, Rn
1000 1rrr
88…8F
ad
XX
Примечание. Используйте ячейки памяти в диапазоне адресов 40Н…7FH
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
Инкремент аккумулятора
INC Rn
0000 1rrr
08…0F
Инкремент регистра
CLR A
1110 0100
E4
Сброс аккумулятора
SWAP A
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.
?
?
?
?
6. Команды операций с битами.
Выполните приведенные ниже команды управления разрядом переноса С (рис.1).
6.1 Установка разряда переноса
-
Команда
Структура
Код
SET B,C
1101 0011
D3
Проверьте наличие единицы в 7р регистра флагов (СПП).
6.2. Сброс разряда переноса.
-
Команда
Структура
Код
CLR C
1100 0011
C3
Проверьте наличие нуля в 7р регистра флагов (СПП).
7. Пример программы.
Введите приведенную ниже программу, занося в соответствующие ячейки памяти необходимые коды команд. Введите в аккумулятор произвольное число. Запустите программу с 1000 ячейки памяти, используя кнопку “ST”. Нажимая кнопку “ST”, проконтролируйте изменение содержимого аккумулятора с помощью индикаторов порта 1.
-
Команда
Структура
Код
1000
INC A
04
1001
MOV 90,A
F5
1002
90
1003
LJMP 1000
02
1004
10
1005
00
