Lpt блимає світлодіод, bits of mind

Цю статтю я написав років чотири тому. А зараз раптово знайшов її, і вирішив викласти в блог. Досить кумедно :) Попереджаю, я не несу відповідальності за те, що може статися з вашою технікою в результаті застосування даної інформації.

Завдання стоїть дуже тривіальна: навчитися керувати мерехтінням світлодіода, підключеного до ПК через LPT-порт. Чому саме LPT. Тому що він досить простий і в міру цікавий.
Поїхали!

підготовка

Отже, що нам потрібно для втілення цього жаху в реальне істота:

  • ПК
  • Компілятор якої-небудь мови програмування (Assembler, С, С ++, Pascal, etc ...).
  • Деякий програмний інструментарій
  • Світлодіод на 5В
  • LPT-шнур

Шнур у мене був тільки розрізаний, але ви можете використовувати будь-який, головне все правильно поєднувати. Ось мій шнур, з уже виведеними контактами для підключення світлодіода (про це мова піде далі):

Lpt блимає світлодіод, bits of mind

Ось, власне, світлодіод, куплений на найближчому базарі за кілька грошей. Він який буде світитися яскравим синім світлом:

Lpt блимає світлодіод, bits of mind

Перш ніж приступити до практики, трохи теорії.

Як працюєте LPT-порт? Про це досить багато написано, проте я все-таки коротко розповім як обстает справи.

Паралельний порт ПК зазвичай використовується для підключення принтерів, але на цьому його можливості не обмежуються. До нього можна підключати будь-який зовнішній, саморобний пристрій. LPT-порт має 25 пінів, але не всі 25 необхідні. У нашому прикладі, наприклад, потрібно тільки 2. Розглядати призначення всіх не будемо.

Lpt блимає світлодіод, bits of mind

Підключати світлодіод будемо плюсом до 2 піну, а мінусом - до піну 18. Дивіться, не переплутайте, в іншому випадку світлодіод може згоріти. Краще заздалегідь перевірити де у нього плюс, де мінус на малопотужної батарейці.

Якщо у вас шнур тато-мама, тобто при підключенні до комп'ютера, на вашому кінці шнура залишаються входи, справа проста - просто увіткнути в потрібні Піни діод. Слід бути обережним, неправильно підключив, можна пошкодити LPT-порт.

Lpt блимає світлодіод, bits of mind

Особисто я, розкурочив шнур, визначив, який відноситься до D0, який до землі, і у мене все виглядає приблизно так, як показано на наступному малюнку. Я сидів з пробником, і обчислював, яка лінія відноситься до D0. Дуже цікаво! Ви можете знайти більш удочное рішення.

Lpt блимає світлодіод, bits of mind

У запобіжні заходи можна послідовно до діода припаяти опір. Рекомендують 470 Ом. На рахунок заземлення: хтось заземляє нема на пін GRD, а на корпус коннектора, але я віддаю перевагу пін.

На цьому етапі ви повинні уявляти собі, як можна підключити світлодіод до LPT-порту.

програмна частина

Розберемо, як впоратися з ОС Windows, тому що це трохи складніше.

Перед тим, як перейти безпосередньо до програмування своїми силами, перевіримо, чи працює все це справа, зібране в минулій частині статті. Для цього я використовую чудову програму моніторингу паралельного порту, так і названу: Parallel Port Monitor by Neil Fraser.

Як роблю я: запускаю програму, вимикаю в ній все Піни з 2 до 9, потім підключаю світлодіод до LPT-порту (в нашому випадку в другій пін, в D0). Після цього в Parallel Port Monitor подаю одиницю на D0. Світлодіод повинен загорітися. Якщо нічого не сталося, можливо, ви неправильно його підключили або ж в програмі вибрали не той LPT-порт. Спробуйте LPT1, LPT2, LPT3, якщо у вас їх декілька.

Світлодіод блимає? Відмінно. Тепер можна побавитися з ним своїм програмним кодом. Як було сказано раніше, це робити ми будемо обхідним шляхом. Якщо ви використовуєте Windows 95/98 / ME, можете відразу перейти до написання програми, обхідні шляхи вам не потрібні, ці версії ОС Windows дозволяють безпосередньо звертатися до портів.

1) Використання драйвера UserPort

Lpt блимає світлодіод, bits of mind

Напишемо тестову програму, миготливу светодиодом раз в секунду. Оригінальний текст приведений нижче. Тут я використав С ++ з вставками ассемблерного коду і компілятор Visual C ++. Ви можете використовувати свій улюблений мова програмування і компілятор, суть не змінюється.

Компілюємо, запускаємо, перевіряємо. Якщо світлодіод став блимати, значить все ОК, все працює, і можна знущатися далі. Якщо ж з'явилося повідомлення про помилку, наприклад «First-chance exception at 0x00411524 in program.exe: 0xC0000096: Privileged instruction», значить, ви неправильно запустили або налаштували UserPort. Зверніться до документації по ньому, там є приклад.

2) Використання бібліотеки inpout32.dll.

Ось як виглядає вихідний текст програми, з використанням цієї бібліотеки:

Lpt блимає світлодіод, bits of mind

Наче все. Ідею можна розвинути, і зробити якісь більш корисні або цікаві програмні рішення.

висновок

Як видно, LPT-порт один з найбільш простих в роботі портів, і з ним можна досить-таки цікаво працювати. Умільці збирають і підключають роботів через LPT-порт, роблять в деякому роді систему управління квартирою, включають / вимикають світло в кімнаті з комп'ютера і ще багато цікавих речей.

P.S. Я десь чув, що люди збирають LPT- і USB-ліхтарики, і вирішив собі зробити щось подібне зі старого мікрофона від навушників. Ось що вийшло:

Lpt блимає світлодіод, bits of mind