- •Министерство образования респулики беларусь
- •Оглавление
- •Устройства ввода Краткие теоретические сведения
- •Пример приложения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Устройства вывода. Работа с принтером Краткие теоретические сведения
- •Компонент tPrintDialog
- •Пример программы
- •Процедура печати текста из Memo
- •Процедура печати картинки из Image
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Работа с накопителями Рекомендации по выполнению работы
- •Пример программы
- •Обработчик нажатия кнопки
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Работа с параллельным портом Основные теоретические сведения
- •Задания для самостоятельного выполнения
- •Контрольные вопросы
- •Список использованных источников
Контрольные вопросы
Какие компоненты используются в Delphi для работы с файловой системой?
Какие подходы к работе с файлами существуют в Delphi?
Какие процедуры и функции для работы с файловой системой использовались при выполнении работы?
Опишите основные свойства компонентов, предназначенных для работы с дисками и файловой системой, использованные при разработке программы?
ЛАБОРАТОРНАЯ РАБОТА №4
Работа с параллельным портом Основные теоретические сведения
Основным назначением параллельного интерфейса LPT (Linear Printer Terminal) является подключение к компьютеру принтеров различных типов. В настоящее время именно для подключения принтеров он практически не используется, однако существует целый ряд других устройств, использующих данный интерфейс.
Основным достоинством использования параллельного интерфейса является хорошая документированность и простота работы с ним. Главный недостаток этого подхода — очень небольшая скорость обмена, однако, это не критично при подключении устройств с небольшой скоростью обмена информацией и в случаях, когда сигналы порта используются, в основном, для управления.
Назначение 36 контактов разъема параллельного порта приведено в таблице 5.
Таблица 5 – Назначение контактов порта LPT
Контакт разъема |
Цепь |
I/O |
1 |
-STROBE |
0 |
2 |
D0 |
I,0 |
3 |
Dl |
I,0 |
4 |
D2 |
I,0 |
5 |
D3 |
I,0 |
о |
D4 |
I,0 |
7 |
D5 |
I,0 |
8 |
D6 |
I,0 |
9 |
D7 |
I,0 |
10 |
—АСК |
I |
11 |
BUSY |
I |
12 |
РЕ |
I |
13 |
SLCT |
I |
14 |
—AUTOFD |
0 |
15 |
—ERROR |
I |
16 |
—INIT |
0 |
17 |
—SLCT IN |
0 |
18...25 |
GND |
- |
Сигналы порта имеют следующее назначение (тип выходных каскадов всех cигналов — ТТЛ):
D0...D7 — 8-разрядная шина данных для передачи из компьютера в принтер. Логика сигналов положительная.
—STROBE — сигнал стробирования данных. Данные действительны как по переднему, так и по заднему фронту этого сигнала. Сигнал говорит приемнику (принтеру), что можно принимать данные.
—АСК — сигнал подтверждения принятия данных и готовности приемника (принтера) принять следующие данные. То есть здесь реализуется асинхронный обмен.
BUSY — сигнал занятости принтера обработкой полученных данных и неготовности принять следующие данные. Активен также при переходе принтера в состояние off—line или при ошибке, а также при отсутствии бумаги. Компьютер начинает новый цикл передачи только после снятия —АСК и после снятия BUSY.
—AUTO FD — сигнал автоматического перевода строки. Получив его, принтер переводит каретку на следующую строку.
РЕ — сигнал конца бумаги. Получив его, компьютер переходит в режим ожидания. Если в принтер вставить лист бумаги, то сигнал снимается.
SLCT — сигнал готовности приемника. С его помощью принтер говорит о том, что он выбран и готов к работе. У многих принтеров имеет постоянно высокий уровень.
—SLCT IN — сигнал принтеру о том, что он выбран и последует передача данных.
—ERROR — сигнал ошибки принтера. Активен при внутренней ошибке, переходе принтера в состояние off-line или при отсутствии бумаги. Как видим, здесь многие сигналы дублируют друг друга.
—INIT — сигнал инициализации (сброса) принтера. Его длительность не менее 2,5 мкс. Происходит очистка буфера печати.
Все сигналы параллельного интерфейса передаются в уровнях ТТЛ и рассчитаны на подключение одного стандартного входа ТТЛ. Максимальная длина соединительного кабеля по стандарту— 1,8 м.
Как видно из таблицы 1, для подключения к компьютеру произвольных устройств можно использовать 17 линий.
Формирование и прием сигналов производится путем записи и чтения выделенных для него портов ввода/вывода. В компьютере может использоваться три порта, обозначаемых LPT1 (базовый адрес 378h), LPT2 (базовый адрес 278h) и LPT3 (базовый адрес 3BСh). Базовый адрес порта используется для передачи принтеру байта данных. Установленные на линиях данные можно считать из этого же порта.
Следующий адрес (базовый + 1) служит для чтения битов состояния принтера (бит 3 соответствует сигналу —ERROR, бит 4 — сигналу SLCT, бит 5 — сигналу РЕ, бит 6 — сигналу — АСК, бит 7 — сигналу BUSY). Последний используемый адрес (базовый + 2) предназначается для записи битов управления принтером (бит 0 соответствует сигналу — STROBE, бит 1 — сигналу — AUTO FD, бит 2 — сигналу —INIT, бит 3 — сигналу —SLCT IN и наконец бит 4, равный единице, разрешает прерывание от принтера).
В операционной системе WindowsXP прямое обращение к портам ввода—вывода запрещено. Поэтому для того чтобы работать с портом напрямую, можно использовать уже разработанные библиотеки функций. Одной из таких библиотек является библиотека inpout32.dll (разработчик — Дмитрий Иванов [6]).