ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Практическая работа №3. Программирование внешних устройств. Подсистема прерыванийВремя, отводимое на выполнение практической работы - 2 часа. Перечень необходимых технических средств обучения: ü персональные компьютеры Core i3 3.0, 2 Gb, 4 ГБ ОЗУ, 250 Gb HDD; ü локальная сеть; ü коммутатор для подключения в сети Internet. Перечень необходимых программных средств обучения: ü ОС Windows XP (7); ü Программа «Учебная ЭВМ». 1. Цель занятия: изучение способов способами взаимодействия процессора и внешних устройств в составе ЭВМ, научиться подключать внешние устройства в составе учебной ЭВМ и составлять программы для вывода информации с клавиатуры на дисплей учебной ЭВМ. 2. Основные теоретические положения: 2.1 Связь процессора и ВУ может осуществляться в синхронном и асинхронном режиме. Синхронный режим используется для ВУ, всегда готовых к обмену. В нашей модели такими устройствами являются дисплей и тоногенератор – процессор может обращаться к этим ВУ, не анализируя их состояние (правда дисплей блокирует приём данных после ввода 128 символов, формируя флаг ошибки). Асинхронный обмен предполагает анализ процессором состояния ВУ, которое определяет готовность ВУ выдать или принять данные или факт осуществления какого-нибудь события, контролируемого системой. К таким устройством в модели является клавиатура и блок таймеров. 2.2 Анализ состояния ВУ может осуществляться процессором двумя способами: - в программно-управляемом режиме (предполагается обращение процессора к регистру состояния ВУ с последующим анализом значения соответствующего разряда слова состояния). Такое обращение следует предусмотреть в программе с некоторой периодичностью, независимо от фактического наступления контролируемого события (например, нажатия клавиши мыши) - в режиме прерывания (при возникновении контролируемого события ВУ формирует процессору запрос на прерывание программы, по которому процессор и осуществляет связь в ВУ) 2.3 В состав контроллера клавиатуры входят три программно-доступных регистра:
2.4 Дисплей представляет собой модель внешнего устройства, реализующую функции символьного дисплея. Дисплей может отображать символы, задаваемые ASCII-кодами, поступающими на его регистр данных. Дисплей включает:
В модели предусмотрен механизм векторных прерываний. Источниками прерываний являются модели внешних устройств, в которых могут возникать события, требующие реакции программы. Среди подключаемых ВУ формировать запросы на прерывания могут контроллер клавиатуры и блок таймеров, которым по умолчанию присваиваются вектора прерываний 0 и 2 соответственно. При этом вектор блока таймеров является общим для всех трёх таймеров, при необходимости обработчик прерывания может определить, какой из них вызвал прерывание по значению разрядов регистра SR состояния блока таймеров. Таблица векторов прерываний располагается в ячейках ОЗУ 100 – 109, таким образом возможно обслуживать до 10 различных векторных источников прерываний. В ячейках таблицы должны располагаться адреса соответствующих программ – обработчиков прерываний. Эти адреса становятся известными после компиляции и заносятся в ячейки «вручную». При вызове обработчика в стеке сохраняется адрес возврата (текущее значение РС) и значение регистр флагов IF, OV, S, Z. Возврат из обработчика прерывания осуществляется командой IRET, которая восстанавливает значения РС и регистра флагов. Дисциплина обслуживания прерываний поддерживается с помощью программно-доступных флагов. Флаг IF разрешает/запрещает все прерывания, он устанавливается в «1» командой EI (Разрешить прерывания) и сбрасывается в «0» командой DI (Запретить прерывания). После RESET процессора IF = 0, поэтому, если предполагается использовать прерывания, следует выполнить команду EI. При вызове любого обработчика IF аппаратно сбрасывается, поэтому если требуется реагировать на другие запросы внутри обработчика прерывания, в его начале следует выполнить команду EI. Команда IRET восстанавливает все флаги, в том числе IF = 1. В системе команд модели имеются команды INT0 – INT9, которые позволяют программно вызывать обработчики прерываний независимо от значения IF. На ВУ предусмотрены т.н. «локальные маски», позволяющие запретить/разрешить прерывание от любого источника независимо от остальных. Пример программы, выставляющей в начало каждой строки её номер приведён в таблице 1: Таблица 1 Пример программы, выставляющей в начало каждой строки её номер
Пример программы, выводящей слово «Май» приведён в таблице 40 Пример программы, выводящей слово «Май»
Таблица 2 Пример программы, выводящей слово «Май»
Программа для обработки прерывания от клавиатуры – программу для обработки прерывания пустого цикла при вводе символа с клавиатуры и передаче этого символа на дисплей. Таблица 3. Обработка прерывания от клавиатуры.
Адрес обработчика прерывания от клавиатуры (значение метки ОбрПр) необходимо записать в ячейку 100, так как вектор клавиатуры по умолчанию равен 0. Если компилировать приведённую программу с нулевого адреса подряд, то адрес команды IN 0 (начало обработчика) равен 8. Поэтому число 8 следует перед запуском программы записать в ячейку 100. Для установки флага E в регистре CR требуется выполнить команды: RD #10 OUT 1 Для установки S в «1» (режим посимвольного ввода) требуется выполнить следующие команды: RD #103 OUT 1 Таблица4. Вывод введённых символов с клавиатуры на дисплей по опросу устройства:
Задание к работе Не нашли, что искали? Воспользуйтесь поиском:
|