Приступаем к программированию

  Одна из .dll программ находится у вас в компьютере в папке c:\Windows\System. Я привык работать с dlportio.dll, поэтому её и будем использовать.

  А.Новожилов в своей статье утверждает, что для считывания данных из порта LPT необходимо переключить порт в режим EPP. Для этого надо изменить настройки в BIOS. К нему я и отсылаю желающих подробнее узнать об этом. У меня все работает и в установленном по умолчанию режиме Normal.

В VB запускаем стандартный EXE проект.



Добавляем к форме модуль



и в нём объявляем доступ к .dll:

'декларации внешних функций
'функция чтения порта
Public Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte
'функция записи в порт
Public Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)

  Библиотеки .dll дают возможность работать с любым портом компьютера.Однако читать из порта одно,А вот записывать в него совсем другое.В процессе программирования неизбежны ошибки.И вот тогда можно записать в другой порт значение,которое приведет к полной неработоспособности компьютера.Поэтому я советую один раз объявить константы для работы с портами.

  Перейдем к форме и в разделе (General) (Declarations) запишем:

Const IN_PORT As Integer = &H379
Const OUT_PORT As Integer = &H378


  Теперь наклеим на форму TextBox и две командные кнопки.На Command1 напишем "Записать",на Command2 напишем "Считать".



  Щёлкнем два раза на кнопке "Записать" и запишем код:

'запись байта
DlPortWritePortUchar OUT_PORT, Val(Text1.Text)

  Щёлкнем два раза на кнопке "Считать" и запишем код:

'чтение байта
Text1.Text = DlPortReadPortUchar(IN_PORT)

  Вот и все! Запускаем проект на выполнение.Пишем в текстовом окне 1 и щелкаем на кнопке "Записать" - загорится первый светодиод.Кстати какой-либо светодиод может гореть и до запуска пректа. Зачем включается бит выхода при инициализации Windows наверное не смогут объяснить даже её создатели! Нас это не интересует. Достаточно записать в порт значение 0 и все будет нормально. Наберем в окне 128 - загорится восьмой светодиод. Наберем 255 - загорятся все светодиоды.
  Теперь кликнем кнопку "Считать".В текстовом окне появится 120.Соединим нашим гибким проводком контакт 15 разъёма с общим проводом и кликнем еще раз - получим 112.Подадим 0 на контакт 10 получим 56.
  Полная власть над портом LPT!

Здесь находится исходник нашего примера

Главная Оглавление Назад Вперед
Hosted by uCoz