- •Оглавление
- •Микропроцессорная техника
- •Введение
- •1. Описание лабораторного стенда
- •2. Лабораторная работа № 1 синтез управляющего автомата
- •Лабораторный макет управляющего автомата
- •Программирование комбинационной схемы
- •Операционный автомат
- •2.3. Задание
- •2.4. Порядок выполнения работы
- •2.5. Контрольные вопросы
- •3. Лабораторная работа № 2 архитектура однокристального микропроцессора
- •3.1. Описание микроконтроллера
- •3.2. Назначение и использование команд монитора
- •3.2.1. Обращение к программе монитор
- •3.2.2. Команды монитора
- •3.3. Система команд процессора кр580ик80а.
- •3.4. Подключение объекта управления
- •3.5. Задание
- •3.6. Порядок выполнения работы
- •3.7. Контрольные вопросы
- •3.8. Литература
- •4. Лабораторная работа № 3 программное управление исполнительным механизмом
- •4.1. Организация ввода-вывода в эвм
- •4.2. Подключение объекта управления к портам ввода/вывода
- •4.3. Задание
- •4.4. Программирование системы управления
- •4.5. Порядок выполнения работы
- •4.6. Контрольные вопросы
- •4.7. Литература
- •5. Лабораторная работа № 4 вывод данных на внешний динамический индикатор
- •5.1. Организация динамической индикации
- •5.2. Подключение индикатора
- •4.3. Задание
- •5.4. Порядок выполнения работы
- •5.5. Контрольные вопросы
- •5.6. Литература
- •6. Лабораторная работа № 5 реализация релейного закона управления на эвм
- •6.1. Подключение объектов управления
- •6.2. Задание
- •6.3. Порядок выполнения работы
- •6.4. Контрольные вопросы
- •4.6. Литература
- •7. Лабораторная работа № 6 архитектура и система команд процессора intel 286
- •7.1. Архитектура процессора intel 286
- •7.2. Особенности программирования при выполнении работы
- •7.3. Задание
- •7.4. Порядок выполнения работы
- •7.6.3. Примеры команд языка Ассемблер
- •7.7. Литература
- •8. Лабораторная работа № 7 работа intel 286 в реальном масштабе времени
- •8.1. Прерывания в эвм
- •8.2. Задание
- •8.3. Порядок выполнения работы
- •8.4. Контрольные вопросы
- •8.5. . Литература
- •9. Лабораторная работа №8 формирование аналогового сигнала
- •9.1. Плата ввода-вывода l-154
- •9.2. Программное обеспечение платы
- •9.3. Задание
- •9.4. Порядок выполнения работы
- •9.5. Контрольные вопросы
- •9.6. Литература
- •10. Лабораторная работа № 9 Ввод аналогового сигнала
- •10.1. Ввод аналоговыхданных
- •10.2. Задание
- •10.3. Порядок выполнения работы
- •10.4. Контрольные вопросы
- •10.5 Литература
- •11. Лабораторная работа №10 программируемый таймер
- •11.1. Программируемый таймер
- •11.2. Режимы работы таймера
- •11.3. Подключение таймера в контроллере мс2721
- •11.4. Задание
- •11.5. Выполнение работы
- •11.6. Контрольные вопросы
- •11.7. Литература
8.4. Контрольные вопросы
Как обрабатываются прерывания?
Каким образом формируется в процессоре прерывание $1С?
Что такое вектор прерывания?
Перечислите последовательность операций при смене вектора прерывания.
Как происходит передача параметров в процедуре обработки прерывания?
Какие операторы Паскаля предназначены для работы с прерываниями?
Как работает контроллер прерываний?
8.5. . Литература
Абель П. Язык Ассемблера ддля IBM PC и программирования / Пер. с англ.- М.: Высш. Шк., 1992.- 447 с.
Джордейн Р. Справочник программиста персональных компьютеров типа IBM XT и AT: Пер с англ. – М.: Финансы и статистика, 1992 – 544 с.
Турбо Паскаль 7.0 – К.: Торгово-издательское бюро BHV, 1995-448с.
Марченко А.И., Марченко Л.А. Программирование а среде Турбо Паскаль 7.0 –М.: Бином Универсал, К.: ЮНИОР, 1997.-496 с.
9. Лабораторная работа №8 формирование аналогового сигнала
Цель работы: получение аналогового сигнала в реальном масштабе времени.
Оборудование: INTEL286 c платой L-154, осциллограф.
9.1. Плата ввода-вывода l-154
В лабораторной работе используется универсальная плата ввода-вывода L-154 и ее программное обеспечение. Плата имеет в своем составе программируемый таймер для отсчета интервалов времени, 8-разрядные параллельные интерфейсы ввода и вывода, 16/32 аналоговых входа, аналоговый выход и устройство запросов прерывания. Программно установлен запрос прерывания по линии IRQ5. Необходимое программное обеспечение для выполнения работы размещено в модуле lpas.
Плата содержит в своем составе одноканальный ЦАП, аналоговый выход которого выведен на осциллограф. Обращение к регистру вывода ЦАП происходит по адресу 300H. Для вывода в этот регистр можно использовать библиотечную процедуру OUTDA объектной библиотеки размещенной в модуле lpas. Для включения этой процедуры необходимо отметить этот модуль в числе вызываемых модулей в директиве USES.
Содержимое регистра данных ЦАП может изменятъся от 0 до 4096. Числу 0 типа WORD (целому числу без знака) соответствует выходное напряжение (–5.12в), числу 2048 соответствует 0в, а числу 4096 соответствует напряжение (+5.12в).
В работе предлагается использовать язык программирования Паскаль.
9.2. Программное обеспечение платы
В программное обеспечение платы для выполнения работы включены следующие процедуры, размещенные в модуле lpas:
procedure OUTDA(dat:integer);- вывод данных в ЦАП;
procedure INITINTR(rate1,rate2:word, name:pointer);- инициализация режима прерывания
Процедура выполняет следующие действия:
Запоминает регистры DX, DI, SI в стеке.
Запрещает прерывания на плате.
Запоминает адрес старой программы обработки прерывания (старый вектор) в переменной OldHand.
Устанавливает новую программу name обработки вектора прерывания от внутреннего таймера.
Инициализирует контроллер прерывания.
Устанавливает период между прерываниями равный rate1*rate2 мксек.
Разрешает прерывания.
Восстанавливает регистры DX, DI, SI.
procedure STOP_INTR; выключение прерывания
Процедура выполняет следующие действия:
Запоминает регистры в стеке.
Запрещает прерывания.
Восстанавливает старый, ранее запомненный в переменной
OldHand, вектор.
Восстанавливает контроллер прерываний.
Восстанавливает регистры.
procedure RESET_IRQ; - Процедура сбрасывает контроллер прерываний. Она должна быть последней в программе обработки прерывания.
procedure INTR_SETUP(n:word); - Данная процедура сообщает драйверу о номере прерывания IRQ, установленному на плате с помощью перемычек.
Для IRQ5 значение n должно быть равно 2, для IRQ3 n равно 0.