Интернет-журнал "Домашняя лаборатория", 2008 №2
Шрифт:
Рассмотрим работу с регистрами интерфейса 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 останется на выводах разъёма до тех пор, пока Вы не перешлёте туда же другое число (это
Port[$378]:=170;
Вы примените
d:=Port[$378];
где d — переменная, то переменная примет значение последнего посланного в порт байта или, при переходе в режим приёма, значение байта, поданного на порт внешним устройством.
Пример чтения статус-регистра на языке Pascal:
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. Гук
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.
Датчик температуры DS1820 производства фирмы Dallas Semiconductors имеет малую погрешность измерений только в диапазоне от 0 до 70°. Для того, чтобы узнать, чему соответствуют его показания, скажем, при -30°, нужно построить градуировочную кривую. В документации, сопутствующей DS1820, приведен следующий график зависимости ошибки измерителя от реальной температуры.
Красная линия на нем отображает отклонение от истинного значения температуры для нашей партии датчиков. Для того чтобы программно скорректировать показания измерителей, нужно данную кривую выразить в математической форме, т. е. аппроксимировать ее полиномом. В данном случае был использован степенной ряд. Коэффициенты при степенях иксов были подобраны с помощью MS Excel (модуль "поиск решения"). На графике синяя линия соответствует полиному третьей степени, уравнение которого написано под ним. Таким образом, полученные данные с измерителя каждый раз поправляются на ту или иную величину с учетом именно этой формулы.