Разряды Ь 4— Ь 7 , напротив, напрямую сообщают о текущем состоянии каждого из четырех цифровых входов. Для выделения значения каждого разряда достаточно выполнить логическое умножение (функцию И , то есть AND ) считанного байта на соответствующую маску, то есть на байт, значение которого равно весу данного разряда. Данная операция существует в любом языке программирования.
Параллельные порты
Хотя порт джойстика также можно назвать параллельным (потому что данные поступают в параллельном коде), этот термин традиционно закреплен за портами принтера, носящими общее название Centronics . Его часто называют также интерфейс Centronics .
На рис. 5.3 показано назначение выводов розеток типа DB25, используемых для данного интерфейса. Не следует путать их с вилками DB25 последовательных портов RS232, которые еще встречаются наряду с разъемами типа DB9 (СОМ1 — COM4).
Рис. 5.3. Выводы разъема интерфейса Centronics
Все ПК имеют первичный параллельный порт, названный LPT1, нередко можно встретить компьютеры, имеющие и второй порт — LPT2.
Вполне естественно подключать принтер к LPT1, а для других, менее часто используемых аксессуаров, воспользоваться LPT2. Информационный доступ процессора к каждому параллельному порту осуществляется через программно-доступные регистры, которые располагаются в адресном пространстве ввода-вывода. Каждому порту соответствуют 4 последовательных логических адреса: BASE, BASE+1, BASE+2, BASE+3. В табл. 5.1 представлены возможные значения адресов.
Таблица 5.1. Адреса доступа к параллельным портам
Регистры с адресами BASE+3 используются для управления режимами работы соответствующего порта. Их содержимое определяет конфигурацию и режимы работы порта, ими нельзя манипулировать без хорошего знания принципов функционирования параллельного интерфейса.
Для передачи данных используются регистры данных, которым соответствуют базовые адреса (BASE). Соответствие разрядов регистров данных и разрядов данных показано на рис. 5.4. Обычно регистры данных применяются для вывода информации из порта, то есть процессор может только записывать в них информацию.
Рис. 5.4. Назначение разрядов регистров данных
Регистр с адресом BASE+1, наоборот, доступен процессору только для чтения. Считанный байт несет так называемую информацию состояния порта (status). Назначение разрядов байта состояния представлено на рис. 5.5. Отметим, что три младших разряда ( Ь 0— Ь 2 ) не используются.
Рис. 5.5. Байт состояния параллельного порта
Регистры с адресами BASE+2, называемые регистрами управления, используются для управления выходными функциональными линиями интерфейса, включая линию
, применяемую нашим кодером. На рис. 5.6 показано соответствие четырех младших разрядов регистра управляющим линиям параллельного порта. Четыре старших разряда ( Ь 4— Ь 7 ) не используются.
Рис 5.6. Назначение разрядов регистра управления
Обычно на IBM PC РС-совмсстимых компьютерах значение десятичного базового адреса порта LPT1 — 888 (то есть 378h в шестнадцатеричной системе). Для LPT2 он составляет 632 (или 278h в шестнадцатеричной системе). Можно встретить компьютеры, в которых LPT1 соответствует адрес 956 (3BCh).
При установке мультикарты целесообразно сконфигурировать ее на «настоящий» LPT2, то есть с базовым адресом равным 632.
Так, в табл. 5.2 приведены только наиболее часто встречаемые адреса (BASE — BASE+3) портов LPT 1 и LPT2, те самые, к которым мы обращались при разработке программ.
Таблица 5.2. Адреса портов LРТ1 и LPT2
ФАЙЛЫ, СОДЕРЖАЩИЕСЯ НА САЙТЕ
Помимо трех файлов с расширением .CAR, приведенных в качестве образцов и позволяющих начать работу, еще не изготовив ни одной печатной платы, на сайте www.dmk.ruесть следующее программное обеспечение, которое может понадобиться при чтении книги:
Читать дальше