Б.Б.Михайлов, О.И.Елисеева - Исследование однокристального микропроцессора 1816ВЕ51, страница 3
Описание файла
Документ из архива "Б.Б.Михайлов, О.И.Елисеева - Исследование однокристального микропроцессора 1816ВЕ51", который расположен в категории "". Всё это находится в предмете "элементы электронной и микропроцессорной техники" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "элементы электронной и микропроцессорной техники" в общих файлах.
Онлайн просмотр документа "Б.Б.Михайлов, О.И.Елисеева - Исследование однокристального микропроцессора 1816ВЕ51"
Текст 3 страницы из документа "Б.Б.Михайлов, О.И.Елисеева - Исследование однокристального микропроцессора 1816ВЕ51"
Для обращения к внешней памяти команд необходимо нажать кнопку “PM”(Program memory). В результате на 1-м, 2-м, 3-м и 4-м индикаторах дисплея высветятся нижние сегменты, что подтверждает возможность ввода адреса ячейки памяти. Адрес ячейки вводится путем последовательного нажатия 4-х числовых кнопок (от «0» до «F»). Например, если требуется проконтролировать содержимое ячейки памяти по адресу 1123, необходимо нажать кнопку «PM», а затем ввести цифры 1, 1, 2, 3. В результате на правых индикаторах дисплея появится содержимое ячейки памяти по адресу 1123.
Внешняя память данных и программ имеет общее адресное пространство. Для памяти программ отведены адреса с 0000 по 07FF (2К), для памяти данных – адреса с 1000 по 17FF (4К).
Просмотр памяти команд осуществляется с помощью кнопок «+1» и «-1». С помощью кнопки «+1» выполняется просмотр памяти в сторону старших адресов (вперед), с помощью кнопки «-1» - в сторону младших адресов (назад). Одновременно с нажатием кнопки «+1» происходит запись набранной команды в ячейку памяти.
Ввод нового значения ячейки по выбранному адресу (5-ый и 6-ой индикаторы) производится путем нажатия на соответствующие числовые кнопки. При этом на 6-м индикаторе дисплея высвечивается запятая, являющаяся признаком ввода информации. Отсутствие запятой на индикаторе показывает, что данная информация введена в память.
При вводе очередной цифры содержимое дисплея сдвигается на один разряд влево и дополняется вновь введенной цифрой, что позволяет не набирать незначащие старшие нули и корректировать неправильно набранные значения. Введенное значение записывается в память кнопкой «+1», при этом осуществляется автоматический переход к следующей ячейке. Отказ от записи набранного значения производится с помощью кнопки «-1» или вводом новых данных.
Примечание. Поскольку адреса 1750H . . . 17FFH зарезервированы и используются управляющей программой, НЕ РЕКОМЕНДУЕТСЯ использовать эти адреса при выполнении лабораторной работы.
1.3. Вывод на дисплей содержимого программного счетчика.
Эта процедура осуществляется нажатием кнопки «PC» («Program counter»). В результате на дисплей выводится значение программного счетчика на момент последнего выхода из программы пользователя и содержимое памяти команд по этому адресу. При начальной установке значение программного счетчика устанавливается равным 1000H. После вывода на дисплей значения программного счетчика возможен просмотр и изменение содержимого памяти аналогично описанному выше.
1.4. Просмотр и изменение содержимого внутренней памяти данных.
Для ввода адреса внутренней памяти данных нажать кнопку «DM» («Data memory»). На дисплее должно появиться сообщение « А - _ _». После этого ввести две цифры требуемого адреса. При этом на дисплей индицируется адрес и содержимое ячейки внутренней памяти данных. Просмотр и изменение содержимого памяти данных выполняется также как это описано в п. 1.2.
Примечание. 1. При выполнении лабораторной работы используйте ячейки памяти в диапазоне адресов 50Н…7FH !!!!!!
2. При вводе адреса, превышающего 7FH, осуществляется доступ непосредственно к регистрам специальных функций (SFR).
-
Просмотр и изменение содержимого отдельных разрядов.
Для ввода адреса требуемого разряда необходимо нажать кнопку «BT» («Bit»). В результате на дисплей выводится сообщение «b - _ _». После этого необходимо ввести две цифры требуемого адреса. В результате на дисплее индицируется адрес и содержимое бита (0 или 1). Просмотр и изменение содержимого битов выполняется так же, как описано в п.1.2.
1.6. Просмотр и изменение содержимого внутренних регистров.
Для просмотра и изменения содержимого внутренних регистров контроллера необходимо нажать кнопку «RG» («Registers»). После этого на дисплее будет индицироваться мнемоническое обозначение и содержимое регистров в следующем порядке:
Acc – регистр-аккумулятор;
B – регистр B;
FL – регистр флагов PSW (с указателем номера используемого банка памяти данных);
dPH – старший байт регистра – указателя данных DPTR;
dPL – младший байт регистра – указателя данных DPTR;
SP – регистр – указатель стека;
PCH – старший байт программного счетчика;
PCL – младший байт программного счетчика;
b0r0 – регистр R0 нулевого банка памяти данных;
b0r1 - регистр R1 нулевого банка памяти данных;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
b3r7 – регистр R7 3-го банка регистров.
Последовательный просмотр содержимого регистров в направлении больших адресов (вперед) осуществляется с помощью кнопки «+1», в направлении меньших адресов (назад) - с помощью кнопки «-1». Для изменения содержимого выбранного регистра используйте числовые кнопки («0»…»F»)..
Регистр слова состояния программы (ССП или PSW) является местом занесения признаков полученного результата хранящегося в аккумуляторе. Другое название этого регистра – регистр флагов (FL).
7p 6 5 4 3 2 1 0p
С | АС | F0 | RS1 | RS0 | OV | X | P |
Рис.1
С – флаг переноса. Устанавливается при выполнении арифметических операций.
АС – флаг переноса из третьего бита результата (полуперенос). Используется при выполнении операции десятичной коррекции.
F0 – флаг пользователя. Может устанавливаться, сбрасываться и проверяться программно.
RS0, RS1 – определяют банк регистров резидентной памяти данных (РПД) следующим образом:
00 – 0 банк адреса 00Н – 07Н
01 – 1 банк адреса 09Н – 0FH
10 – 2 банк адреса 10Н – 17Н
11 - 3 банк адреса 18Н – 1FH
Разряды RS0, RS1 устанавливаются и сбрасываются программно
OV – флаг переполнения. Устанавливается после выполнения арифметических операций.
Р – флаг паритета. Фиксирует четное число бит (единиц) в аккумуляторе (контроль четности).
1.7. Порядок занесения команды (программы).
Коды команд (программа) вводятся в память программ (program memory) следующим образом:
-
Открыть ячейку памяти, нажав на кнопку PM.
2) Вести 16р адрес памяти (четыре шестнадцатеричных числа), используя числовые кнопки.
3) Вести 8р содержимое данной ячейки (код операции или операнд), используя числовые кнопки.
4) Записать введенное значение в ячейку памяти, нажав на кнопку «+1». При этом значение счетчика команд (PC) увеличивается на 1 - инкрементируется.
Процесс занесения можно продолжить далее: в следующую ячейку ввести новый код и записать его, нажав кнопку «+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) конкретные значения. Результаты выполнения команд занесите в отчет.