Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ПУ(исп).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.25 Mб
Скачать

Формат регистра состояния

Бит

Название

Назначение

7

BUSY

Определяет инвертированное состояние линии «занято»: 0 - устройство занято; 1 - устройство свободно. Сигнал «занято» может формироваться из-за ошибки, а также в том случае, когда принтер отключен или отсутствует.

6

ACK

Показывает инвертированное состояние готовности к приему очередного байта: 0 - устройство готово к приему; 1 - устройство не готово к приему.

5

PE

Показывает текущий сигнал от принтера о состоянии бу­маги. Бит устанавливается в 1, когда принтер вырабатывает сигнал конец бумаги (Paper End).

4

SEL

Указывает текущее состояние сигнала «выборка» (Sеlесt) и устанавливается в 1, когда устройство было выбрано.

3

ERR

Задает инвертированное состояние ошибки в устройст­ве. Бит устанавливается в 0 при выработке принтером сигнала ошибки (Error).

2

IRQS

Принимает значение 0, когда устройство подтвердило прием предыдущего байта информации сигналом подтвержде­ния (ACKnowlegement). Значение данного бита имеет смысл только для двунаправленного параллельного порта. Режим подтверждения устройством приема символа и выработки прерывания управляется битом IRQE управляющего порта. Обычно, прерывание от устройства LPT1 поступает на IRQ5, а от LPT2 - на IRQ7.

1

RESERVE

Зарезервирован, должен быть равен 0.

0

RESERVE

Зарезервирован, должен быть равен 0.

Регистр управления. Регистр управления параллельного порта представляет собой 8-ми разрядный регистр, доступный по чтению и записи. Формат регистра управления описывается таблицей 3. Регистр управления находится по адресу базовый адрес + 2.

Таблица 3

Формат регистра управления

Бит

Название

Назначение

7

RESERVE

Зарезервирован, должен быть равен 0.

6

RESERVE

Зарезервирован, должен быть равен 0.

5

DIR

Используется для задания типа операции при работе в расширенном режиме (или направления передачи данных): 0 - операция записи; 1 - операция чтения. Этот бит имеет смысл только для двунаправленного параллельного порта. В режиме совместимости, а также для обычного параллельного порта значение бита игнорируется.

4

IRQE

Управляет прерыванием. Когда бит равен 1, парал­лельный порт посылает прерывание при выработке сигнала АСК со стороны устройства.

3

SELIN

Управляет состоянием сигнала выборки устройства (Select In). Когда бит установлен в 1, устройство считается выбранным. Данной линии соответствует разъем 17.

2

INIT

Управляет инвертированным состоянием сигнала инициализации устройства (Init). При этом установка нулевого значения бита означает инициализацию принтера.

1

AFD

Управляет состоянием сигнала автоматический прогон строки (Automatic Feed XT). Когда бит установлен в 1, принтер после печати каждой строки будет автоматически переходить на новую строку. Следует отметить, что, несмотря на упоминание ХТ в названии сигнала, использование данного бита не ограничено для других моделей компьютеров. Обычно установ­ка данного бита не требуется, так как большинство редакторов, используемых для подготовки документов, формируют символ перехода на следующую строку в конце каждой строки текста.

0

STRB

Управляет синхронной передачей данных в устройст­во. Когда он принимает значение 1, передаваемые данные мо­гут считываться с линий данных.

Программирование адаптера параллельного интерфейса на уровне портов ввода/вывода. Для получения базового адреса LPT порта необходимо обратиться к ячейке памяти BIOS по соответствующему адресу (0:0408h для LPT1):

mov ax, 0

mov es, ax

mov dx, es:[0408h] ; в dx адрес базового регистра LPT1

Для инициализации адаптера последовательного интерфейса необходимо сбросить бит 2 регистра управления в нуль на время, равное тысяче тактов пустого цикла. В этот момент нужно, чтобы был установлен только бит 3 регистра управления. Таким образом, для инициализации адаптера необходимо:

  • в регистр управления записать значение 12 (1100 – установка битов 2 и 3);

  • сделать задержку;

  • послать в регистр управления значение 8 (1000 – сброс бита 2).

Для записи символа в параллельный порт необходимо:

  • записать очередной выводимый символ в регистр данных;

  • проверить занятость устройства и организовать ожидание его освобождения: опрос бита 7 регистра состояния;

  • выдать стробирующий импульс: установить и сразу сбросить бит 0 регистра управления.

Для организации цикла в языке Ассемблер используется конструкция типа:

mov cx, число циклов

label:

..............

loop label

В регистр cx заносится количество циклов. Метка label указывает на начало цикла. Команда loop выполняется до тех пор, пока значение регистра cx не равно 0. После выполнения команды loop значение регистра cx уменьшается на единицу автоматически.

Команды ввода/вывода языка Ассемблер. Каждое устройство ввода-вывода имеет один или несколько встроенных регистров, каждый из которых имеет соответствующий адрес. Всего существует 65536 адресов ввода-вывода. Из них 512 адресов назначены системному каналу ввода/вывода и могут использоваться различными адаптерами. Другие 256 адресов используются системной шиной для управления подключенными туда устройствами ввода-вывода.

Команда IN пересылает данные из устройства ввода-вывода в регистр AL. Если адрес устройства находится в пределах 0-255, то он может содержаться в команде как непосредственное значение. Если адрес больше 255, то он сообщается косвенно и содержится в регистре DX.

Команда OUT записывает содержимое регистра AL в регистр устройства ввода-вывода, адрес которого указывается так же, как и в команде IN. В случае использования микропроцессора Intel x86 команды IN и OUT, могут пересылать слова в устройства ввода вывода. Источником и приемником в этом случае является регистр AX.

Описание используемых аппаратных средств

В ходе выполнения работы используется испытательный стенд, схема которого приведена на рисунке 1.

рисунок 1 – Схема испытательного стенда

Данный стенд позволяет наглядно убедиться в работоспособности написанной программы. При появлении на контакте уровня логической единицы, соответствующий светодиод загорится.

Порядок выполнения работы

  1. Выключить питание компьютера.

  2. Подсоединить с помощью кабеля типа CENTRONIC, испытательный стенд к компьютеру.

  3. Включить питание компьютера.

  4. Разработать и отладить программу на языке Си или Ассемблер записи символа в параллельный порт.

Контрольные вопросы

  1. Опишите режимы работы параллельного порта.

  2. Опишите назначение контактов параллельного порта.

  3. Какие существуют регистры для программирования параллельного порта?

  4. Опишите порядок программирования параллельного интерфейса на уровне портов ввода/вывода.

Содержание отчета

  1. Отчет должен содержать:

  2. Титульный лист.

  3. Тему и цель лабораторной работы.

  4. Задание на лабораторную работу.

  5. Описание алгоритма программы (блок-схема или текстовое описание).

  6. Прокомментированный листинг программы.

  7. Выводы по результатам работы.