Re[3]: разъясните плиз про LPT
От: B_A_D Израиль  
Дата: 17.11.03 11:58
Оценка: 6 (1)
Здравствуйте, Demon, Вы писали:

D>Здравствуйте, CH3COOH, Вы писали:


D>>>Вот кусок ТЗ

D>>>"Алгоритм записи:
D>>>CLK 2 нога разъёма LPT – порта.
D>>>DATA 3 нога разъёма LPT – порта.
D>>>Исходно состояние выводов CLK и DATA высокое. Падение фронта CLK означает начало передачи информации в прибор. Низкий уровень CLK держится 0.1 мсек. В течение этого времени надо установить старший бит байта данных на выводе DATA. Далее (по истечении 0.1 мсек) состояние CLK переводится в высокое и ждём ещё 0.1 мсек. Затем процесс повторяется для остальных битов."

D>>>Вопросы:

D>>>1. Что мне писать в 378-ой порт? (или в другой?)

CHC>>2 нога это D0 регистра адреса, а 3 нога — D1. Следовательно, чтобы выставить CLK-->1, надо ставить в выводимом байте разряд 0, соотв., DATA разряд 1.


D>Т.е. вот так?

D>
D>   mov dx,378h

D>//запись бита '0' из потока данных
D>   mov al,0
D>   out dx,al
D>   // sleep 0.1 msec
D>   mov al,80h
D>   out dx,al
D>   // sleep 0.1 msec
     mov al,1   
     out dx,al

D>//запись бита '1' из потока данных
D>   mov al,40h
D>   out dx,al
D>   // sleep 0.1 msec
D>   mov al,C0h
D>   out dx,al
     mov al,1   
     out dx,al

D>



Судя по ТЗ, ты должен вернуть CLK в высокое состояние после передачи каждого бита(выделено болдом).
Странно, что разработчики не посадили CLK на 1-ю ногу LPT порта(Strobe) — было бы очень удобно, не надо его сбрасывать в исходное состояние — это производится автоматически. Да и время импульса на ноге 1 отмеряется самим контроллером LPT и является величиной постоянной и известной
Хотя, если это все только в учебных целях, то другое дело.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.