Вверх ↑
Пакеты 
HiAsm4
Windows 
Статьи - Работа с LPT

Работа с LPT
Предупреждение
Внимание! При работе с LPT портом нужна хоть какая-то осторожность! Поэтому перед повторением того, что написано в статье вы соглашаетесь с тем, что за любые повреждения оборудования, которые вы можете нанести по небрежности - отвечаете сами. Конечно современные контроллеры, установленные на материнских платах содержат защиту от дурака, но тем не менее лишний раз испытывать ее не стоит.
Разбираем шаг за шагом
   Чтобы что-то усвоить и в чем-то разобраться, нужно как известно сделать это самому и увидеть своими глазами. Поэтому разберем возможности компонента LPT на простом примере, чтобы затем вы не испытывали никаких трудностей при работе с ним:

Шаг0 Первое знакомство с компонентом (а может и с LPT портом вообще) лучше всего начинать с простого примера без лишних замуток и никому ненужных тонкостей. Поэтому мы разберем пример, схема которого изображена на рисунке слева. Смысл тут таков: при замыкании ключа K будет происходить переключение диодов D1 - D4, отображающих число от 0 до 15 в шестнадцатеричном виде. Т.е. при 0 - все диоды не горят, при 1 - горит D1, при 2 - горит D2, при 3 - горят D1 и D2, при 4 - горит D3 и т.д.
Шаг1 Для начала убедитесь, что у вас есть стандартный LPT разъем на 25 пинов к нему мы и будем припаивать провода.
Шаг2 Так же нам понадобятся: 4 резистора (сопротивления) номиналом 200 - 600Ом. Если таковых нет, то можно обойтись и без них, хотя это крайне нежелательно, потому что не очень хорошо брать из порта такую мощность (хотя я при экспериментах подключал именно так и все отлично работало), 4 светодиода с напряжением питания в 5 вольт, 1 кнопка (если нет, то можно просто замыкать два провода)
Шаг3 Теперь припаяйте (или оголите, если они уже есть) следующие провода: пины 2-5: для 4-х диодов, пин 10: для кнопки, пин 18: общая для диодов и кнопки земля (на схеме они соединены одним проводом). Нумерация выводов LPT кабеля приведена слева, хотя почти на всех современных разъемах она есть на нем самом.
Шаг4 Теперь припаяйте( или прикрутите )положительные ножки диодов D1 - D4 к проводам, идущим с пинов 2 - 5 соответственно. Отрецательные ножки припаяйте к проводу с пина 18. И наконец кнопку K присоедините к проводам, идущим с пинов 10 и 18. Все. Схема готова к использованию в программе.
Шаг5 Прежде всего убедитесь, что драйвера для работы с LPT портом установленны. Для этого зайдите на вкладку Integration и нажмите кнопку "LPT drivers". Откройте пример из стандартного пакета HiAsm LPT . Запустите программу и если вы все собрали верно, то нажатия на кнопки с именами "Диод" будут зажигать соответствующие светодиоды на выходе LPT порта. После этого понажимайте кнопку и убедитесь, что диоды переключаются по принципу двоичного счетчика( описано выше ). Для дальнейшего программирования LPT порта, используйте таблицу внизу.

Назначение выводов порта LPT и их эквивалент в HiAsm
Пин Сигнал Направление Регистр HiAsm
1 Строб ввод/вывод Управляющий нет
2 Бит 0 вывод Данные doD0
3 Бит 1 вывод Данные doD1
4 Бит 2 вывод Данные doD2
5 Бит 3 вывод Данные doD3
6 Бит 4 вывод Данные doD4
7 Бит 5 вывод Данные doD5
8 Бит 6 вывод Данные doD6
9 Бит 7 вывод Данные doD7
10 Опрос ввод Статус onACK
11 Занят ввод Статус onBUSY
12 Конец бумаги ввод Статус onPE
13 Выбор ввод Статус onSLCT
14 Автоперевод строки ввод/вывод Управляющий нет
15 Ошибка ввод Статус onERR
16 Инициализация ввод/вывод Управляющий нет
17 Выбор принтера ввод/вывод Управляющий нет
18-25 Земля ----

Примеры
Add(MainForm,9531,392,274)
{
Left=312
Top=284
Width=283
Height=141
Caption="Тестирование LPT порта"
}
Add(Counter,29880,270,376)
{
Max=1
link(onNext,64187:doD3,[(366,382)(366,257)])
}
Add(Button,24416,220,376)
{
Left=10
Top=85
Width=75
Font=[Arial,8,0,0,1]
Caption="Диод 4"
link(onClick,29880:doNext,[])
}
Add(Button,67137,220,296)
{
Left=10
Top=35
Width=75
Font=[Arial,8,0,0,1]
Caption="Диод 2"
Data=Integer(1)
link(onClick,10142:doNext,[])
}
Add(Button,66041,220,336)
{
Left=10
Top=60
Width=75
Font=[Arial,8,0,0,1]
Caption="Диод 3"
link(onClick,31125:doNext,[])
}
Add(Button,63340,220,256)
{
Left=10
Top=10
Width=75
Font=[Arial,8,0,0,1]
Caption="Диод 1"
Data=Integer(1)
link(onClick,71320:doNext,[])
}
Add(Counter,49544,270,216)
{
Max=15
link(onNext,64187:doData,[])
}
Add(Counter,31125,270,336)
{
Max=1
link(onNext,64187:doD1,[(359,342)(359,250)])
}
Add(Timer,6474,313,167)
{
Interval=50
link(onTimer,64187:doCheck,[(370,173)(370,229)])
}
Add(Counter,10142,270,296)
{
Max=1
link(onNext,64187:doD2,[(353,302)(353,243)])
}
Add(Counter,71320,270,256)
{
Max=1
link(onNext,64187:doD0,[(348,262)(348,236)])
}
Add(LPT,64187,395,216)
{
Port=1
Point(doD0)
Point(doD2)
Point(doD1)
Point(doD3)
}
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)
Комментарий
...