Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Інше життя LPT порту. Частина 1. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Комп'ютери Не очікував, що перша стаття (azbukavb.narod.ru/teorie/LPT.htm) викличе такий інтерес серед програмістів і електронників, т.к. я отримав багато листів із запитаннями і продовжую їх отримувати досі, хоча минуло вже майже три роки з моменту написання статті. Крім того, у першій статті було допущено низку неточностей. Це все й спонукало мене на написання більш докладної статті на цю тему, в якій я намагатимусь відповісти на більшість питань шановних читачів та виправити ті неточності, які були допущені у першій статті. Нехай не ображаються на мене читачі першої статті, але ми знову докладно розглянемо кожен контактик і битик нашого LPT порту. У першій частині статті буде розглянута теорія, у другій та наступних (якщо вони будуть) ми розглядатимемо електронні пристрої, які можна "підчепити" до цього порту. Ø У тексті ви зустрінетеся із загальноприйнятою абревіатурою записування чисел. Ø Наприклад, 10102 - Двійка в нижньому індексі вказує, що число 5 представлено в двійковому обчисленні, Ø 12410 - десятка у нижньому індексі, говорить про те, що число 124 десяткове. Це так… про всяк випадок Як показала практика, всі програми, правильно написані та доповнені відповідними бібліотеками (vbio32.dll, inpout32.dll, dlportio.dll тощо) працюють на більшості комп'ютерів із операційними системами сімейства Windows. Я перевіряв роботу всіх своїх програм (Visual Basic5.0, 6.0) на Win95, 98, Me, 2000, XP HE, XP Prof і навіть у DOS6.22 (QBasic) – все працює чудово. У DOS взагалі ніяких бібліотек не треба, там все і так працює. Відразу зазначу, що vbio32.dll і inpout32.dll НЕ ПРАЦЮВАТИМУТЬ ПІД Win2000, Але цілком спокійно працюватимуть під Win95, 98, Me. До речі, взяти будь-яку із цих бібліотек ви можете на sano2000.narod.ru/index.html. Мені захотілося спробувати dlportio.dll і зараз я працюю з цією бібліотекою. Ну і останнє, перед написанням програм необхідно правильно оголосити бібліотеку, яку ви використовуєте. Ø Для inpout32.dll Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) Ø Для dlportio.dll Private Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte Private Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte) Чим відрізняється приватний від громадськості я писати не буду. Паралельний порт для зв'язку з принтером (або іншим пристроєм) має базову адресу H378 (LPT1), H278 (LPT2), H3BC (LPT3). У цій статті ми розглядатимемо лише LPT1. Адресний простір цього порту займає діапазон H378-H37F.
· Адреса &H378 називається базовим і служить для запису (читання, але це пізніше) даних у порт, лінії D0-D7.
· Адреса &H379 (базовий+1) призначений для читання бітів стану з пристрою, підключеного до LPT-порту (принтер, сканер тощо)
· Адреса &H37A (базовий+2) служить для запису бітів керування пристрою, підключеного до LPT-порту (принтер, сканер тощо). На наведених нижче таблицях "розшифровані" контакти та сигнали кожної з адрес Контакти 18-25 - "земля" (загальний, GND, GROUND і т.д.) Розглянемо програмування кожної з адрес.
· Базова адреса &H378 (LPT1) дозволяє записувати дані в порт на лінії D0-D7 у діапазоні від 0 до 255.
· Записуємо до порту число 69
************************************************** ************************************************** *****
· Адреса &H379 служить читання бітів стану.
· Читаємо стан порту за адресою &H379 Ø Під час читання адреси &H379 необхідно пам'ятати, що перші три біти - не використовуються і завжди мають значення балка. "1", а 7-й біт – інверсний. В результаті, якщо всі контакти 15, 13, 12, 10, 11 посадити на "землю", то при читанні інформації ви отримаєте на перших трьох бітах (які не використовуються) 1+2+4 і на 7-му біті (контакт 11- інверсний, отже, при замиканні на землю буде лог."1") +128 разом 135. Про це не треба забувати. У другій частині статті ми зупинимося на цьому детальніше.
************************************************** ************************************************** *****
· Адреса &H37A служить запису бітів управління.
· Записуємо сигнал -STROBE (біт управління 0)
Чому 10? Давайте подивимось у табличку.
сигнали STROBE, АВТО, ВИБІР IN - інверсні, отже, щоб у виході контактів роз'єму 1, 14, 17 отримати логічну " 1 " треба подати ці біти логічний " 0 " , тобто. подали одне – отримали протилежне. Сигнал INIT прямий (не інверсний), тому логічна "1" на контакті 16 з'явиться тоді, коли ми подамо цей біт логічну "1", тобто. що подали, те й одержали. Спробуємо отримати контактах 1,17 - низький рівень сигналу "0", але в контактах 14 і 16 високий рівень сигналу "1", тобто. на виході контактів 1,14,16,17 буде присутнім 0 1 1 0 (610). На нульовий біт (-STROBE) подаємо "1" (на контакті 1 буде "0"), на перший біт (-AUTO) подаємо "0" (на контакті 14 буде "1"), на друга біт (INIT) подаємо "1" (на контакті 1 буде "1") і, нарешті, на третій біт (-ВИБІР IN) подаємо " 1 " (на контакті 17 буде " 0 " ), тобто. ми записали за адресою &H37A число 10112,-це 1310. Отже, щоб у виході отримати 6 треба подати 13. Для зручності наводжу таблицю з усіма можливими комбінаціями чисел від 0 до 15
Ну і, нарешті, останнє у цій частині статті. Якщо ваш комп'ютер підтримує стандарт EPP, то четвертим бітом за адресою &H37A ви зможете дозволити переривання (для LPT1 це IRQ7) від принтера, тільки не питайте мене, що це таке, я все одно нічого не знаю про переривання. А ось п'ятим бітом 1101012наприклад, подавши число 4310Ви встановлюєте шину D0-D7 в режим ПРИЙОМ даних. При цьому всі розряди (контакти 2-9) набувають значення логічної "1". Щоб подати на потрібний контакт логічний "0", треба замкнути його через опір 240 - 360 Ом на "землю". Таким чином, через LPT порт комп'ютера ми отримуємо в стандартному вигляді пристрій з 12 вихідними сигналами і 5 вхідними, а при перекладі порту в режим EPP ми отримуємо 4 вихідні сигнали і 13 вхідних сигналів.
Автор: Клюшников Олексій, м. Іваново; Публікація: cxem.net Дивіться інші статті розділу Комп'ютери. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Стрес гальмує імунні клітини ▪ Ранній вихід на пенсію негативно впливає на мозок ▪ Монітор із увігнутим екраном Samsung S34E790CN ▪ Портативна колонка Sony Extra Bass SRS-XB33 Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Регулятори струму, напруги, потужності. Добірка статей ▪ стаття Соціальна педагогіка. Шпаргалка ▪ стаття Чи світяться очі тварин у темряві? Детальна відповідь ▪ стаття Кизильник цілокраїй. Легенди, вирощування, способи застосування ▪ стаття Підсилювач сигналу дзвінка. Енциклопедія радіоелектроніки та електротехніки ▪ стаття Замість синьої хустки – червона. Секрет фокусу
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |