Программируем порты - это очень просто !
____________________________________

О проекте

Занимаясь сопряжением внешних устройств и ПК, мною была разработана программа 'PortControl V3+' как удобный инструмент визуальной отладки вновь создаваемых программ без вмешательства в схемотехнику управляемого компьютером прибора. В настоящее время ПК стали очень доступны и гораздо универсальней, надёжней и функциональней использовать в своих конструкциях виртуальную панель управления, задействовав всю мощность графической оболочки ОС Windows, нежели пилять напильником, клепать и сверлить железные корпуса, устанавливая различные кнопки, переключатели, индикаторы и лампочки, не говоря уже о неограниченных возможностях современного компьютера.

Однако для многих отличных электронщиков детальное освоение ПК является далеко не самым быстрым и лёгким процессом. Еще более сложным делом становиться изучение языков программирования, даже на самом начальном уровне. И уж совсем трудновыполнимой задачей является разработка собственного програмного обеспечения для доступа в порты ввода-вывода персонального компьютера. Всё это осложняется тем, что в популярных средах визуального проектирования напрочь отсутствуют специализированые, например в виде компонент, средства работы с портами. Информация имеющаяся в русскоязычном интернете по данному вопросу очень скудна и зачастую не подходит начинающим разработчикам. В свою очередь, эта информация разделяется на две категории: или предлагается использовать ассемблеровские вставки ввода-вывода, или установить тот или иной компонент, в основном для Делфи и С++. Но русскоязычных компонентов, с русским хэлпом очень мало, и они как правило не бесплатные. Начинающим разработчикам установить компоненты и, особенно, разобраться в описании функций и процедур очень трудно, так как эти пакеты предназначены, в основном, для изготовления профессиональных приложений.


Ассемблеровские вставки хорошо подходят для Win9x, но тут возникает вопрос куда их вставлять, как обращаться к ихним процедурам и функциям и как вывести полученый результат для дальнейшего использования в стандартной палитре компонент - кнопки, панели, редакторы, комбобоксы и другие элементы пользовательского интерфейса. Примеров очень мало и все они "задуренные" для начинающих. Ну, а теперь ближе к делу.

Чтобы облегчить процесс отладки программ и протоколов, для многих занимающихся программированием портов, я и разместил программу "PortControl V3+"- freeware в иртернете. Однако для большинства интересующихся или занимающихся портами этого оказалось не достаточно и мне, естественно, стали приходить письма с просьбой помочь разобраться в этом вопросе - на каком языке программирования лучше писать, как это сложно, где найти примеры и очень много вопросов КАК ЭТО СДЕЛАТЬ самостоятельно. Для того, чтобы решить все вышеперечисленные трудности, мною, специально для начинающих и был разработан этот проект, с помощью которого Вы, если немного знаете Делфи, конечно, сможете написать программу, например включения-выключения бытовых приборов всего за две-три минуты !


Принцип действия прост - Вам ничего не надо устанавливать, инсталировать (компоненты), подключать какие-либо модули, встраивать ввода-вывода процедуры и функции. Специально для этого я приготовил шаблон с уже подключенным модулем ввода- вывода общеизвестного ассемблеровского кода, который функционирует в теле программы и ничем себя не выдаёт - Вы скачиваете шаблон - это обычный Делфи-проект, запускаете двойным щелчком файл проэкта (Project1.dpr) и видите пустую форму, готовую для установки кнопок и прочего как обычно. В редакторе открывается абсолютно стандартный модуль (Unit1.pas) - Unit. Всё, больше Вам ничего не надо делать, всё готово для написания Вашей Windows программы, Вам требуються только начальные, самые простейшие знания Дельфи, для работы со стандартной палитрой инструментов - кнопки, Edit, RadioButton и др.

И так, если Вы умеете бросить на форму кнопку, вставить в нее код, нажать F9 для компиляции программы, тогда приступим.

Так как Вы электронщик (радиолюбитель) со стажем и решили окончательно и бесповоротно приобщится к современным технологиям изготовления своих конструкций, тогда оставляйте себе паяльник, отвёртки и др. радиомонтажные инструменты, а напильник, зубило, молоток и дрель можете подарить теперь уже технически отсталому, своему товарищу, или, открыв форточку, выбросить их в палисадник - Вы будете работать на клавиатуре, на радость домочадцам и соседей, измученных противным скрежетом напильника по ночам, когда Вы пропиливаете в стальном корпусе своего прибора дырки, чтобы поставить туда пару десятков тумблеров (:- .



----------------------------------- Необходимые инструменты: ------------------------------------------------



1. Скачайте документацию к LPT порту и изучите ёё - где входные биты - порт 889 (тоже что и $379) Pin 10-11-12-13-15, где выходы данных- 888 (тоже что и $378) Pin 2-9, 890 (тоже что и $37A) Pin 1-14-16-17.

2. Скачайте отладчик - программу " PortControl V3+ ", чтобы потом наглядно видеть что Вы там напрограммировали (:- без необходимости подключения светодиодов и др. к LPT порту.

3. Скачайте готовый шаблон- заготовку для Вашей будущей программы - Shablon.zip

4. Скачайте готовый пример (исходник + exe файл) - Primer1.zip , созданный на основе данного шаблона.
< исходник PortDemoControl .

Внимание: всё только для Windows 95/98/ME !!!

 

Скачать исходник и шаблон Вы можете прямо сейчас, а детальное описание как это всё работает будет готово на днях. А пока проделайте пару-тройку несложных операций.

  1. Запустите файл Project1.dpr из каталога шаблона.
  2. Бросте на форму кнопку, щёлкните по ней двойным щелчком и вставте следующий код:

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

PortWriteByte (888,1); //---- В порт 888 записуем число 1 – не правда ли очень просто!

end;

Разместите ещё несколько кнопок и попробуйте, а результат смотрите в программе “PortControl V3+”

 


procedure TForm1.Button2Click(Sender: TObject);

begin

PortWriteByte ($378,$4); //---- В порт 888 записуем число 4

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

PortWriteByte (890,10); //---- В порт 888 записуем число 10

end;

 

Читать с порта будет посложнее, тем не менее, не пугайтесь, добавте на форму Edit, для того чтобы вывести прочитанный результат и, конечно, кнопку :

procedure TForm1.Button4Click(Sender: TObject);

Var

b : byte; //-- объявляем переменную которая хранит прочитанный результат, тип - byte

begin

b :=( PortReadByte(888) ) ; //----читаем с 888 порта, результат присваиваем b

Edit1.text := IntToStr(b); //--- преобразуем прочитанное число в строковый тип

end; //---и выводим в Edit1


-------------------------------------------- 15.04.04------------------------------------

 

 

Смотрите дальше: Шаг1. Поля ввода номера порта и данных

Скачать шаблон - Shablon.zip (6 kb)
Скачать исходник PortDemoControl - Primer1.zip (210 kb)

******

Валерий Ковтун US4LEH
http://valery-us4leh.narod.ru

О сайте

Вернуться на главную страницу
Программа PortControl V3+
Программа PinRegistrator D1+


Гостевая книга
Обратная связь

radionet
Hosted by uCoz