Санкт-Петербургский
государственный
технический
университет
Кафедра
системного
анализа и управленияЛАБОРАТОРНАЯ
РАБОТАДисциплина:
организация
ЭВМ
Тема:
организация
микропроцессоров
(МП К580)
“__”___________2001г.Санкт-Петербург
2001 Цель
работы. Практическое
ознакомление
с отдельными
БИС микропроцессорного
комплекта серии
К580, методикой
построение
МП-систем на
его основе и
структурой
программного
обеспечения.
Описание
рабочего стенда.Лабораторный
стенд ТУМ1
предназначен
для изучения
функциональных
возможностей
и внутренней
структуры
(организации)
МП различных
типов, а так же
для изучения
системы команд
(микрокоманд)
этих МП и принципов
проектирования
и отладки
микроконтроллеров
на основе МП.
Функционально
структура
лабораторного
стенда (рис.1)
представляет
собой схему
обычной МП-системы
или микроЭВМ,
включающей
в себя центральный
процессор (ЦП),
память, устройство
ввода (клавиатура
для ввода исходных
данных и программ)
и устройство
вывода (блок
светодиодных
индикаторов,
позволяющий
визуально
контролировать
вводимую информацию
и результаты
выполнения
программ).
В
стенде использованы
два клавишных
регистра входной
информации.
Первый клавишный
регистр предназначен
для ввода данных,
а второй клавишный
регистр выполняет
функции регистра
микрокоманд
для микропроцессоров
с микропрограммным
управлением
или функции
регистра адреса
для микропроцессоров
с фиксированной
разрядностью.
Кроме того, на
панели управления
так же размещен
ряд переключателей
отдельными
режимами работы.
Светодиодные
индикаторы
выведены на
вертикальную
лицевую панель
стенда. Независимо
от типа исследуемого
МП стенд может
работать либо
в пошаговом
режиме, либо
в автоматическом.
На
плате памяти
размещены БИС
ОЗУ. Применение
оперативных
запоминающих
устройств в
качестве программной
(микропрограммной)
памяти определено
спецификой
использования
стенда, предназначенного
для решения
разнообразных
задач различных
пользователей.
В качестве
памяти МП-системы
на основе
микропроцессора
К580 использована
БИС статического
ОЗУ К565РУ2А емкостью
1024х1 бит. Параллельное
включение
восьми БИС
этого типа
позволило
организовать
программную
память и память
данных объемом
1024 восьми разрядных
слов.
При
исследовании
модульных
(секционных)
МП используется
плата памяти,
основу которой
составляет
две секции по
5 параллельно
включенных
БИС ОЗУ типа
К155РУ2 емкостью
16х4 бит. Использование
десяти БИС ОЗУ
обеспечило
реализацию
памяти микропрограмм
объемом в 32
двацатиразрдных
слова.
Управление
режимами работы
ОЗУ (Чтение,
Запись или
хранение информации)
в стенде осуществляется
с помощью управляющих
клавиш ЗУ/КЛАВ
и ЗАП, которые
соединены с
управляющими
входами БИС
ОЗУ «Выбор
кристалла»
и «Запись». В
общем случае
при работе с
ЗУ необходимо
переключить
тумблер ЗУ/КЛАВ
в положение
ЗУ. При этом
информация
(данные, команда,
микрокоманда),
записанная
по индицируемому
адресу, автоматически
считывается
и высвечивается
на соответствующих
одноименных
индикаторах.
Для записи
требуемой
информации,
предварительно
набранной на
клавишном
регистре данных
(микрокоманд),
необходимо
нажать на клавишу
ЗАП. Алгоритм
и органы управления
памятью конкретных
МП-устройств
могут несколько
отличатся от
рассмотренных
и будут представлены
дополнительно
при описании
соответствующих
режимов работы
лабораторного
стенда.Рис.1
В состав
микроЭВМ (рис.2)
на базе МПК
входит:
-плата
центрального
процессора,
включающая
кроме БИС К580ИК80А
(К580ВМ80А) ряд БИС
и СИС, с помощью
которых реализованы
тактовый генератор
двухфазных
последовательностей
импульсов Ф1и
Ф2, системный
контроллер,
формирующий
внешние сигналы
управления
обменной информации
в МП-системе,
и шинные формирователи
адреса и данных,
предназначенные
для повышения
нагрузочной
способности
шин адреса и
данных;
-плата
памяти, включающая
оперативное
ЗУ емкостью
1024 восьмиразрядных
слова на основе
БИС К565РУ2А,
предназначенное
для записи
хранения учебных
программ и
данных, а так
же результатов
выполнения
программ;
-пульт
управления
и индикации,
с помощью которого
осуществляется
управление
работой микроЭВМ
и индикации
различных
режимов работы,
содержимого
шин адреса и
данных.
С
помощью двух
внешних разъемов,
расположенных
на торцевых
стенках стенда,
предусмотрена
возможность
подключения
двух модулей
программируемого
параллельного
интерфейса
ввода-вывода
К580ВВ55, обеспечивающий
двунаправленный
обмен с внешними
устройствами.
Основным
режимом работы
микроЭВМ является
режим ВЫПОЛНЕНИЕ
ПРОГРАММЫ.
Однако, прежде
чем приступить
к работе, микроЭВМ
необходимо
запрограммировать.
Поэтому наряду
с основным
режимом микроЭВМ
также предусмотрен
режим записи
и коррекции
программ (команд),
который в
соответствии
с одноименным
режимом работы
МП КР580ВМ80 назван
режимом ПРЯМОГО
ДОСТУПА К ПАМЯТИ
(ПДП).
Режим
ПДП предназначен
для записи
информации
в ОЗУ, а также
использования
системной шины
другими внешними
устройствами.
Режим
ВЫПОЛНЕНИЯ
ПРОГРАММЫ
обеспечивает
работу микроЭВМ
по программе,
предварительно
записанной
в память, в шаговом
или автоматическом
режиме.
Для
организации
указанных
режимов работы
на передней
панели стенда
устройства
ввода размещен
ряд элементов
управления,
назначение
которых следующее:
ЗУ/КЛАВ
– переключатель
(тумблер), определяющий
источник данных
и команд. В положении
ЗУ осуществляется
чтение команд
и данных из
памяти или в
память, в положении
КЛАВ – с клавиатуры
(без обращения
к содержимому
ЗУ);
ЗПД
– тумблер, с
помощью которого
обеспечивается
формирование
сигнала «Запрос
прямого доступа
к памяти». Реагируя
на этот сигнал,
МП переходит
в режим ПДП,
при котором
ША и ШД МП отключается
от системных
шин. Благодаря
этому, появляется
возможность
непосредственного
обращения к
элементам ОЗУ
микроЭВМ с
помощью клавишных
регистров
адреса и данных.
Установление
режима ПДП
необходимо
контролировать
по светодиодному
индикатору
ППД (подтверждение
прямого доступа).
Если при включенной
клавише ЗПД
индикатор ППД
не горит, необходимо
нажать кнопки
НУ и ПУСК;
КЦ/МЦ
– тумблер, задающий
работу МП по
командным или
машинным циклам
в пошаговом
режиме.
Тумблер
НЕПР/ШАГ и кнопка
ПУСК обеспечивают
работу МП в
непрерывном
или пошаговом
режиме при
выполнении
программы. При
этом зависимости
от положения
переключателя
КЦ/МЦ в пошаговом
режиме реализуется
выполнение
одного командного
или машинного
цикла.
Рис.
2
Изучение
простейших
технических
средств организации
интерфейса
микропроцессорных
систем выполняется
на стенде ТУМ1
с помощью четырех-
или шестиразрядного
дисплеев на
семи сегментных
индикаторах
(ДСИ).
В
большинстве
МП-систем обмен
информации
между МП и
периферийными
устройствами
осуществляется
через специальные
схемы сопряжения
(интерфейсные
схемы), выполненные
на основе
интегральных
схем малой
степени интеграции
или в виде
специальных
БИС. В простейшем
случае роль
промежуточного
устройства
сопряжения
между МП и
устройством
ввода-вывода
выполняет
регистр часто
называемый
портом. Работу
подобного порта
можно изучить
с помощью
четырехразрядного
дисплея, в состав
ДСИ входят
четыре восьмиразрядных
регистра с
соответствующими
схемами управления
и четыре семи
сегментных
индикатора.
К системным
шинам адреса,
данных и управления
МП-системами
ДСИ подключается
через внешний
разъем. Семи
сегментные
индикаторы
позволяют
отображать
все десятичные
цифры и ряд
букв русского
и латинского
алфавитов.
Кодирование
отображаемых
символов
осуществляется
восьмиразрядным
двоичным кодом:
сегменту b0
соответствует
установка в
«1» разряда d0
аккумулятора,
сегменту b1 –
установка в
«1» d1 и т.д. принцип
кодирования
показан на рис.
3.Вывод информации
осуществляется
по команде Out
Port,
т.е. вывода
содержимого
аккумулятора.
Рис.
3В общем
случае в качестве
буферного
устройства
сопряжения
между МП и
устройствами
ввода-вывода
используют
БИС программируемого
параллельного
интерфейса
КР580ВВ55 (ППИ).
Программируемое
устройство
ввода-вывода
параллельной
информации
КР580ВВ55 представляет
собой набор
из трех 8-разрядных
двунаправленных
портов (каналов)
А, В и С, предназначенных
для подключения
периферийных
устройств к
системным шинам
(Рис. 4)
Структурная
схема ППИ включает
в себя двунаправленный
буфер ШД, три
информационных
регистра каналов
А, В, С и схему
выбора канала
и управления,
содержащую
регистр управляющего
слова. Связь
БИС с ШД МП-системы
осуществляется
через тристабильный
8-разрядный
буфер ШД. Входы
А0 и А1 подключаются
к одноименным
линиям шины
адреса и используются
для выбора
внутреннего
регистра ППИ
Рис.
41.Выполнение
типовых заданий
1-12 из методических
указаний
Программа
№1Загрузка
в регистры B
и C
данных 010 и 001Адреса Команды Мнемоника
команд Комментарии
L=000 041 LXIH Загрузка
начального
Адреса
памяти.
001 200 B2 мл.
байт памяти.
002 000 В3 ст.
байт памяти.
003 001 LXIB Запись
исходных данных
в
регистры В и
С
004 001 В2 В2(С)
005 010 В3 В3(В)
006 160 MOV
M,B Запоминание
(В)
007 043 INX
H Формирование
следующего
адреса
памяти.
010 161 MOV
M,C Запоминание
(С)
011 166 HLT Останов.
После
выполнения
программы
сегмент данных
будет иметь
следующий
вид:
Адрес Содержимое
001
010
Программа
№2Позволяет
занести содержимое
регистров В
и С в стек(выбранный
участок памяти).
Адреса Команды Мнемоника
команд Комментарии
000 061 LXI
SP Установка
указателя
стека.
001 202 В2 мл.байт
адреса.
002 000 В3 ст.байт
адреса.
003 001 LXI
B Запись
исходных данных
в
регистры В и
С.
004 001 В2
005 010 В3
006 305 PUSH
B Запоминание
содержимого
регистров
В и С в стеке.
007 166 HLT Останов.
Содержимое
ячеек после
выполнения
программы:Адрес Содержимое
001
010
Программа
№3Извлечение
данных из стека,
их изменение
и занесение
обратно в стек.
Запишем
в стек (H=000,
L=200
и H=000,
L=201
) числа 001 и 200 .Адрес Команды Мнемоника
команд Комментарии
000 061 LXI
SP
001 200 В2
002 000 В3
003 301 POP
B Извлечение
данных
из
стека и загрузка
их
в регистровую
пару В и С
004 004 INR
B Увеличение
на единицу
регистра
В
005 015 DCR
C Уменьшение
на единицу
содержимого
регистра С
006 305 PUSH
B Запоминание
в стеке
007 166 HLT
Содержимое
ячеек до выполнения
программы:
Адрес
Содержимое
200
001
201
200
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
200
000
201
201
Программа
№4Сложение
содержимого
регистра с
содержимым
ячейки памяти
Адреса
Команды
Мнемоника
команд
Комментарии
000
041
LXI
H
001
200
B2
002
000
B3
003
076
MVI
A
Непосредственная
загрузка А
одним
одним
из слагаемых
004
010
B2
005
206
ADD
M
Сложение
содержимого
А с содержимым
ячейки памяти
006
167
MOV
M,A
007
166
HLT
Содержимое
ячеек до выполнения
программы:
Адрес
Содержимое
200
100
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
200
110
Программа
№4.1Сложение
двоично-десятичных
чисел.
Адреса
Команды
Мнемоника
команд
Комментарии
000
041
LXI
H
001
200
B2
002
000
B3
003
076
MVI
A
004
010
B2
005
206
ADD
M
(A)+(M)(A)
006
047
DAA
Десятичная
коррекция
007
167
MOV
M,A
010
166
HLT
Содержимое
ячеек до выполнения
программы:
Адрес
Содержимое
200
051
(29)
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
200
067
(37)
Программа
№4.2Вычитание
двоично-десятичных
чисел
Адреса
Команды
Мнемоника
команд
000
041
LXI
H
001
200
B2
002
000
B3
003
006
MVI
B
004
B2
005
076
MVI
A
006
231
99
007
220
SUB
B
010
074
INR
A
011
206
ADD
012
047
DAA
013
167
MOV
M,A
014
166
HLT
Содержимое
ячеек до выполнения
программы:
Адрес
Содержимое
200
045
(25)
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
200
007
(07)
Программа
№5Логическая
операция, сдвиг
числа и запоминание
слова состояния
Адреса
Команды
Мнемоника
команд
Комментарии
000
006
MVI
B
001
200
B2
002
076
MVI
A
003
001
B2
004
250
XRA
Сложение
по mod2
содержимого
А и В.
005
027
RAL
Циклический
сдвиг влево
через перенос.
006
061
LXI
SP
007
202
B2
010
000
B3
011
365
PUSH
PSW
Запоминание
в стеке Слова
Состояния
Программы.
012
166
HLT
Анализ
значений Слова
Состояния
Программы
Мнемоника
команды
Значение
PSW
(A)
РгF
MVI
B 200
xxxxxxxx
xx0x0x1x
MVI
A 001
00000001
xx0x0x1x
XRA
B
10000001
10000110
RAL
00000010
10000111
LXI
SP 202 000
00000010
10000111
PUSH
PSW
00000010
10000111
HLT
00000010
10000111
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
200
207
201
002
Программа
№6Обнуление
области памяти.
Программа
пересылает
нулевое содержимое
какого либо
регистра в
ячейку памяти.
Адреса
Команды
Мнемоника
команд
Комментарий
000
227
SUB
A
Обнуление
А
001
041
LXI
H
002
011
B2
003
000
B3
004
167
MOV
M,A
Обнуление
ячейки памяти
по адресу HL
005
043
INX
H
Адрес
следующей
ячейки
006
303
JMP
Безусловный
переход по
адресу
007
004
B2
мл.байт
010
000
B3
ст.байт
Содержимое
ячеек до выполнения
программы:
Адрес
Содержимое
011
Xxx
…
Xxx
040
Xxx
Содержимое
ячеек после
выполнения
программы:
Адрес
Содержимое
011
000
…
000
040
000
Программа
№7Режим
задания команд
с клавиатуры
Адреса
Команды
Мнемоника
команд
100
200
166
HLT
Задание
с клавиатуры
Команды
Мнемоника
команд
303
JMP
200
B2
100
B3
Программа
№8Условные
переходы. Программа
позволяет
изучить действие
условных переходов.
По адресу
H=000,L=200
запишем число
002(соответствует
нулевому значению
всех флагов
в регистре
признаков), а
по адресу
H=000,L=004
– число 302(код
команды условного
перехода по
ненулевому
результату
JNZ).
Адреса
Команды
Мнемоника
команд
Комментарии
000
061
LXI
SP
001
200
B2
002
000
B3
003
361
POP
PSW
Извлечение
из стека ССП
004
*
*
(JNZ,JZ,JNC,JC,JPO,JPE,JP,JM)
005
000
B2
006
000
B3
007
166
HLT
200
**
–
201
000
–
Варианты
выполнения
программы
Признак
Данные
по адресу 004
Данные
по адресу 200
Переход
к адресу 000
302
(JNZ)
002
(z=0)
Есть
ноль
302
(JNZ)
102
(z=1)
Нет
312
(JZ)
102
(z=1)
Есть
322
(JNC)
002
(c=0)
Есть
перенос
322
(JNC)
003
(c=1)
Нет
332
(JC)
003
(c=1)
Есть
342
(JPO)
002
(p=0)
Есть
Четность
342
(JPO)
006
(p=1)
Нет
352
(JPE)
006
(p=1)
Есть
362
(JP)
002
(s=0)
Есть
Знак
362
(JP)
202
(s=1)
Нет
372
(JM)
202
(s=1)
Есть
Программа
№12
Выбор
максимального
элемента массива.
Адрес
Команда
Мнемоника
команды
Комментарий
000
041
LXI
H
001
100
B1
002
000
B2
003
016
MVI
C
Загрузка
переменной
цикла
004
005
B2
005
176
MOV
A,M
Загрузка
в А первого
элемента
006
043
INX
H
Переход
к следующему
элементу
007
276
CMP
M
Если
А>М С=0
А
010
332
JC
Если
А
011
014
B2
012
000
B3
013
176
MOV
A,M
Перенос
в А нового
максимума
014
015
DCR
C
Уменьшение
переменной
цикла
015
302
JNZ
Если
переменная
цикла не равна
0 то все сначала
016
006
B2
017
000
B3
020
062
STA
Сохранение
результата
в памяти
021
150
B2
022
000
B3
023
166
HLT
Конец
2.Выполнение
индивидуальных
заданийПрограмма
№1 Упорядочить
пятнадцать
элементов
массива по
возрастанию.
Адрес
Команды
Мнемоника
команды
Комментарии
000
016
MVI
C
Число
прохождений
внешнего цикла
15-1=14=16(8)
001
016
B2
002
041
LXI
H
Загрузка
адреса первого
элемента массива
003
100
B2
004
000
B3
005
026
MVI
D
Число
сравнений
внутри главного
цикла
006
016
B2
007
106
MOV
B,M
Сохр.
Первый из
сравниваемых
элементов
в B
010
043
INX
H
Формирование
адреса второго
ср-ого элемента
011
176
MOV
A,M
Сохранение
второго элемента
в аккумуляторе
012
270
CMP
B
Сравнение
аккумулятора
с регистром
B.A>B
=> флаг C=0
и наоборот
013
322
JNC
Если
C=1,
то элементы
расположены
по возрастанию
и выполнять
перемену их
местами не
нужно(ком
016-021)
014
022
B2
След.
Ячейка
015
000
B3
Делитель
из памяти в
В
016
160
MOV
M,B
Перезапись
первого элемента
по адресу
второго
017
053
DCX
H
Сформировали
адрес первого
элемента
020
167
MOV
M,A
Сохранили
под адресом
первого элемента
второй
021
043
INX
H
Адрес
первого из
сравниваемых
в следующем
цикле
022
025
DCR
D
Уменьшение
переменной
внутреннего
цикла
023
302
JNZ
Если
переменная
не равна нулю
переход к
следующей
итерации
024
007
B2
025
000
B3
026
015
DCR
C
Уменьшение
переменной
внешнего цикла
027
302
JNZ
Если
переменная
внешнего цикла
не равна нулю
то переходим
к следующей
итерации
030
002
B2
031
000
B3
032
166
HLT
Конец
программы.
Программа
№2.Вывод
с задержкой
слов РЕПА И
ГЕРБ на панель
индикатора.
Адрес
Команда
Мнемоника
команд
Комментарии
000
076
MVI
A
Предварительная
инициализация
ППИ блока
статической
индикации
001
200
B2
002
323
OUT
port
003
003
B2
004
323
OUT
port
005
007
B2
006
004
INR
B
Инициализация
стека
007
002
STAX
B
010
001
LXI
B
011
220
B2
012
230
B3
013
007
RLC
014
006
MVI
B
015
003
INX
B
016
041
LXI
H
Загрузка
начального
адреса в указатель
памяти
017
200
B2
020
000
B3
021
176
MOV
A,M
Вывод
на блок статической
индикации
слова РЕПА
022
323
OUT
port
023
000
B2
024
043
INX
H
022
176
MOV
A,M
023
323
OUT
port
024
001
B2
025
043
INX
H
026
176
MOV
A,M
027
323
OUT
port
030
002
B2
031
043
INX
H
032
176
MOV
A,M
033
323
OUT
port
034
004
B2
035
315
CALL
addr
Вызов
подпрограммы
036
153
B2
037
000
B3
040
043
INX
H
Вывод
на блок статической
индикации
слова ГЕРБ
041
176
MOV
A,M
042
323
OUT
port
043
000
B2
044
043
INX
H
045
176
MOV
A,M
046
323
OUT
port
047
001
B2
050
043
INX
H
051
176
MOV
A,M
052
323
OUT
port
053
002
B2
054
043
INX
H
055
176
MOV
A,M
056
323
OUT
port
057
004
B2
060
315
CALL
addr
Вызов
подпрограммы
061
153
B2
062
000
B3
063
303
JMP
addr
Безусловный
переход к команде
по адресу,
указанному
в B2,B3
064
006
B2
065
000
B3
Подпрограмма,
организующая
задержку.
Адрес
Команды
Мнемоника
команды
Комментарии
153
001
LXI
B
Запись
исходных данных
в регистры
B
и C
154
377
B2
B2(C)
155
377
B3
B3(B)
156
005
DCR
B
Уменьшение
переменной
внутреннего
цикла
157
302
JNZ
addr
Если
переменная
цикла не равна
нулю переход
к следующей
итерации
160
156
B2
161
000
B3
162
015
DCR
C
Уменьшение
переменной
внешнего цикла
163
302
JNZ
addr
Если
переменная
цикла не равна
нулю переход
к следующей
итерации
164
156
B2
165
000
B3
166
311
RET
Безусловный
возврат из
подпрограммы
Коды
букв для вывода
на семи сегментный
индикатор
А
167
Б
175
Г
061
Е
171
Р
163
П
067
Выводы.В ходе
выполнения
работы были
получены навыки
программирования
МП-систем, система
команд процессора
комплекта
серии К580 и принципы
проектирования
и отладки
микроконтроллеров
на основе МП.
Программирование
в машинных
кодах позволяет
прозрачно
представить
структуру МП
и программного
обеспечения.