
- •Лекция 8 Организация подсистем прерываний
- •Обработка информации по прерываниям
- •Способы формирования адреса подпрограммы обслуживания прерывания
- •Адрес подпрограммы формирует МП
- •Сохранение адреса возврата в стеке
- •Адрес подпрограммы формируют аппаратные средства подсистемы прерывания
- •Много уровневые системы прерывания
- •Функции контроллера контроллер прерываний
- •Программируемый контроллер прерываний
- •Функционирование К580ВН59
- •Функционирование К580ВН59
- •Функционирование К580ВН59
- •Функционирование К580ВН59 4/4
- •Последовательность инициализации контроллера
- •Инициализация и оперативное управление режимами2/8
- •Инициализация ВН59
- •ФОРМАТЫ СЛОВ ИНИЦИАЛИЗАЦИИ
- •Оперативное управление режимами
- •Форматы OCW1 – OCW3
- •Каскадирование ВН59
- •Пример инициализации ВН59
- •Пример инициализации ВН59
- •Вопросы и задания
- •Лекция 9.
- •Средства поддержки реального времени
- •Программируемые таймеры
- •Таймер К1810ВИ54
- •Назначение выводов ВИ54
- •Описание структурной схемы ВИ54
- •Программирование
- •Формат управляющего слова
- •Форматы команд чтения таймера
- •Состояние таймера
- •Подключение таймера к МПС
- •Каналы таймера можно запрограммировать в один из шести режимов.
- •Канал таймера запрограммирован в режиме 0
- •Режим 2 – импульсного генератора частоты
- •Пример инициализации таймера
- •Задания
- •Лекция 10 Организация подсистем прямого
- •Общие принципы организации ПДП
- •Функции контроллера ПДП
- •Организация прямого доступа к памяти
- •Контроллер ПДП К1810ВТ37
- •Назначение линий выводов КПДП (рис. 3.39).
- •Назначение выводов, описание структуры КПДП (рис. 3.39).
- •Программирование контроллера ПДП
- •Режимы контроллера ПДП
- •Формат команды режима канала
- •Команда управления контроллером
- •Слово состояния контроллера
- •Программная установка запросов
- •Запрещение обслуживания
- •По канальное маскирование
- •Каскадирование контроллеров ПДП
- •Подключение контроллера к системной шине
- •Вопросы и задания
- •Модуль 4 Программирование микропроцессора и элементов микропроцессорной системы
- •Лекция 11
- •Цели изучения
- •ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ
- •Программа в машинных и ассемблерных кодах
- •Начальный этап программирования МП
- •Задания
- •Схема формирования дополнительного кода
- •Последовательные и циклические программы
- •Операции с массивами данных
- •Программная реализация типовых функций управления
- •Моделирование функций алгебры логики
- •Метод моделирования ФАЛ, заданной СДНФ
- •Таблица 4.2
- •КОНТРОЛЬНЫЕ ЗАДАНИЯ
- •Контрольное задание 1
- •Контрольное задание 2
- •Номер
- •Контрольное задание 3 и 4
- •Пример выполнения задания 1
- •Пример выполнения задания 1 и 2
- •Пример выполнения задания 2
- •Заключение и выводы
- •Перечень источников и дополнительной литературы

Цели изучения
Более детальное изучение вычислительных возможностей микропроцессоров методом исследования программной реализации различного рода операций.
На начальном этапе предлагается ручное ассемблирование с определением машинных кодов, что позволяет детально изучить:
•принцип кодирования команд; форматы команд и данных;
•способы адресации данных и команд;
•систему команд микропроцессора;
•программную модель микропроцессора и МПС;
•программные модели интерфейсных БИС и контроллеров устройств.

ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ
• В качестве примера оформления в табл. 4.1 приведена программа суммирования содержимого ячейки 8400h и порта 01h с выводом суммы в порт 02h и в ячейке 8401h.
• Поля табл. 4.1: адреса, кода команды, ассемблерного
кода (мнемокода) и комментариев.
•Поле метки используется при наличии команд передачи управления и
вданной программе остается пустым.
•Поле мнемокода содержит символьное обозначение кода
команды на языке ассемблера.
•Поле операнда содержит информацию о регистрах, данных и адресах, объединенных соответствующей операцией.
•Поле комментариев не учитывается ассемблером и ограничивается его перепечаткой. Это поле очень важно для понимания процессов и событий в программе.
•Программа ассемблер может выдать соответствующий машинный
код, используя только поля мнемокода и операнда.

Программа в машинных и ассемблерных кодах
|
|
|
|
Таблица 4.1 |
Адрес |
Машинный Метка |
Мнемокод |
Операнд |
Комментарий |
(h-код) |
код (h-код) |
|
|
|
8500 |
21 |
LXI |
H, 8400h |
Загрузка указателя адреса, |
8501 |
00 |
|
|
т.е. 8400h HL |
8502 |
84 |
|
|
|
8503 |
DB |
IN |
01 |
Ввод числа из порта 01 |
8504 |
01 |
|
|
в аккумулятор |
8505 |
86 |
ADD |
M |
Сложение содержимого |
|
|
|
|
ячейки М и регистра А, |
|
|
|
|
т.е. (А)+(М) (А) |
8506 |
23 |
INX |
H |
Увеличить указатель адреса, |
|
|
|
|
т.е. (HL)+1 HL |
8507 |
|
MOV |
M, A |
Заполнить сумму в ячейке |
|
|
|
|
8401 |
8508 |
D3 |
OUT |
02 |
Вывод суммы в порт 02,т.е. |
8509 |
02 |
|
|
(А) 02 |
850А |
76 |
HLT |
|
Останов ЭВМ |

Начальный этап программирования МП
•После составления программы на ассемблере мнемокоды и операнды можно ручным способом перевести на машинный язык, используя систему команд выбранного микропроцессора.
•Каждому байту кода команды и операнду назначить последовательно ячейки памяти.
•На начальном этапе изучения микропроцессоров и их программирования рекомендуется эти преобразования выполнять вручную.

Задания
•Разработайте программу формирования дополнительного кода,рис.4.1.
•Разработайте программы, выполняющие над числами в ячейках 0902 и 0903 следующие операции:
•а) сложение; б) вычитание;
•в) сложение с предварительным умножением слагаемых на два;
•г) вычитание с предварительным делением чисел на два;
•д) сложение с получением результата в двоично- десятичном коде.
•П р и м е ч а н и е. Результаты вычислений разместите в ячейках памяти.
Микропроцессорные системы. Лекция 11. Программирование микропроцессора.

Схема формирования дополнительного кода
Микропроцессорные системы. Лекция 11. Программирование микропроцессора.

Последовательные и циклические программы
•Последовательной называют программу, в которой нет ветвлений.
•Например, программа формирования дополнительного кода числа, рис. 4.1.
•Для организации циклов в программах (рис.4.2.) в качестве счетчиков используются регистры A, B, C, D, E, H, L, M.
•Можно использовать и регистровые пары в качестве счетчиков, но команды INX, DCX не формируют признаков, что несколько затрудняет формирование ветвлений в программах по содержимому регистровых пар.

Операции с массивами данных
Рассмотрим типовую процедуру сбора и формирования в ОЗУ МП-системы массива данных, вводимых из порта ввода IPORT.
•Начальный адрес массива данных – BASE, а регистр С используется как счетчик данных. Регистровую пару HL удобно использовать как указатель данных, рис.4.3.
•Задания
4.5. Разработайте программу сбора данных и организации в ОЗУ 100 байтного массива.
Введите в программу пункта 4.5 обработку массива:
а) нахождение суммы массива (без учета возможного переполнения);
б) нахождение максимального числа в массиве данных, представленных как
целое без знака.

Программная реализация типовых функций управления
•При управлении оборудованием часто необходимо опрашивать состояние двоичного датчика, ожидать определенного события в объекте управления, формировать временные задержки и управляющие сигналы.
•Рассмотрим ожидание замыкания контакта К на объекте управления рис. 4.4. Текст
программы WAIT
•WAIT:IN 80h; ввод в регистр А из порта 80.
• |
ANI 08h; маскирование всех разрядов кроме D3. |
|
• |
JNZ WAIT; |
переход в цикле ожидания, если D3=1. |
• |
RET; |
возврат в основную программу, если D=0. |

Моделирование функций алгебры логики
•Моделирование функций алгебры логики (ФАЛ) заданной
полной таблицей истинности, в которой всем набором входных переменных (Х4, Х3, Х2, Х1) ставится в соответствие вектор выходных значений ФАЛ (Y8 , Y7 , Y6 , Y5 , Y4, Y3 , Y2, Y1), см табл 4.2.
•Метод программной реализации ФАЛ, заданных полной таблицей истинности:
•в память МПС записывается массив векторов выходных значений ФАЛ для всех 2n наборов значений входных переменных (в порядке возрастания номера набора);
•считываемое извне значение входных переменных интерпретируется как номер строки в массиве, суммируется с начальным адресом массива и образует адрес строки выходных значений ФАЛ.
•Разработайте программу табличного варианта моделирования ФАЛ, заданных в табл. 4.2. Входные переменные введите из порта 80h или ячейки памяти 8700h.