Выбрать главу

Рассмотрим работу с регистрами интерфейса CENTRONICS на языке PASCAL или ассемблере:

ПАСКАЛЬ:

Port[$378]:=х

АССЕМБЛЕР 8086:

mov a1,х

mov dx,378h

out dx,a1

X — число типа "byte" (0..255). Например, при посылке 170 (dec) = 10101010 (bin) на линии D0-D7 единичный сигнал будет присутствовать на выводах Dl, D3, D5, D7 (обозначение выводов начинается с D0). Число 170 останется на выводах разъёма до тех пор, пока Вы не перешлёте туда же другое число (это может сделать и другая программа) или не выключите компьютер. Заметьте, что адрес порта в команде задан в шестнадцатиричном (hex) виде, а посылка — в десятичном (dec). Если вместо Паскаль-команды

Port[$378]:=170;

Вы примените

d:=Port[$378];

где d — переменная, то переменная примет значение последнего посланного в порт байта или, при переходе в режим приёма, значение байта, поданного на порт внешним устройством.

Пример чтения статус-регистра на языке Pascaclass="underline"

d:=Port[$379];

В переменной d после выполнения программы будет отображено состояние порта. Допустим, переменная вернула значение 126 (dec). В двоичном (bin) виде оно выглядит как 01111110. Младшие (правые) три бита (нулевой, первый и второй) не используются, и почти равны 1, 1 и 0. Третий бит — 1, значит на ERROR высокий уровень. Та же ситуация на SELECT, PAPER END, ACK и BUSY (не забывайте, что сигнал BUSY является инвертированным).

Приведем пример фрагмента программы, которая считывает байт с линий данных D0-D7:

Port[$37А]:=32; {32 "включает" единицу в пятом}

d:=Port[$378]; {бите, переводя порт в режим ввода}

Как видно из приведенных примеров, программирование LPT-порта является весьма простой задачей, что позволяет в значительной степени облегчить работу разработчика программного обеспечения устройств с обсуждаемым интерфейсом.

СПИСОК КОНТРОЛЬНЫХ ВОПРОСОВ

1. Для чего предназначен параллельный интерфейс Centronics?

2. Что представляет собой адаптер LPT-порта?

3. Перечислите основные параметры интерфейса Centronics?

4. Какие основные сигналы используются обсуждаемым интерфейсом для обеспечения передачи данных от компьютера к периферийному устройству?

5. Опишите стандартный протокол обмена данными через интерфейс Centronics.

6. Перечислите режимы обмена данными через LPT-порт согласно спецификации IEEE 1284.

7. Как осуществляется двунаправленный обмен данными через LPT-порт?

8. Какими электрическими параметрами обладает LPT-порт, выполненный согласно спецификации IEEE 1284?

9. Как осуществляется работа с LPT-портом на низком уровне?

10. Какие функции выполняет регистр данных?

11. Перечислите биты регистра состояния стандартного LPT-порта и укажите их назначение.

12. Перечислите биты регистра управления стандартного LPT-порта и укажите их назначение.

13. Как осуществляется программирование регистров интерфейса с использованием языка Паскаль?

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ:

1. Гук М. Аппаратные средства IBM PC. Энциклопедия — СПб: Питер Ком, 1999.

2. Е.П. Бененсон, И.М. Витенберг, В.В. Мельников и др. Печатающие устройства персональных ЭВМ: Справочник/Под ред. И.М. Витенберга. — М.: Радио и связь, 1992.

3. Р. Браун, Дж. Кайл. Справочник по прерываниям IBM PC: В 2-х томах: Т.1. Пер. с англ. — М.: Мир, 1994.

4. Данкан Р. Профессиональная работа в MS-DOS: Пер. с англ.-М.: Мир, 1993.

5. В.Н. Пильщиков. Программирование на языке ассемблера IBM PC. — М.: Диалог — МИФИ, 1997.

6. Фролов А.В., Фролов Г.В. Аппаратное обеспечение IBM PC: В 2-х ч.: — М.: Диалог-МИФИ", 1998.

7. Мячев А.А. Интерфейсы средств вычислительной техники: Справочник, -М.: Радио и связь, 1992.

ЭЛЕКТРОНИКА

Измерение температуры датчиком DS1820

(thermo.karelia.ru)

Схема собрана на микроконтроллере[71] Atmel AT90S2313. На рисунках — принципиальная схема и внешний вид устройства. В качестве измерителя использован цифровой датчик фирмы Dallas Semiconductor — DS1820.

вернуться

71

Прошивка не прилагалась. Нужно или программировать самому, или запрашивать на сайте.