Рассмотрим работу с регистрами интерфейса 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.