уважаемые эксперты ! Помогите чайнику! как в Турбо Паскале принятый байт разложить на биты какие контакты используют в принтерном порту и как к порту подключить 8 выключателей. Прога в приложении. Заранее благодарен.
Здравствуйте, anton! 1) Можно разбить путем сравнения исходя из того, что каждому включенному биты соответствует свое число: степени 2 от 0 до 7. См. приложение. 2) Контакты в принтерном порту используют все. Но тебе, судя по всему, надо от 2 по 9. 3) Покупаешь LPT-разъем папу. К 2-9 ногам припаиваешь свои выключатели. Только есть одна фича: когда порт в режиме приема на нем постоянно висит 255, т.е. везде 1. Поэтому выключеные выключатели должны заземлять ноги на которых висят. И вообще: x_rayman@vinnitsa.com. А то тут неудобно общаться.
Приложение: Ответ отправлен: 31.03.2003, 23:42 Отправитель: X-RayMan Отвечает Dark_Lord
Добрый день, anton! либо просто проверяя размер байта if a>127 then begin a:=a-128 bit1:=true end; if a>63 then.... тогда тебе нужно 8 переменных bitX типа boolean или вставкой ассемблера asm bt a,номер_бита salc ... end; после этого если бит=1, то al=255 иначе 0! Если какие проблеммы пиши на Dark_Lord@RusFAQ.ru
Ответ отправлен: 31.03.2003, 21:22 Отправитель: Dark_Lord Отвечает Tigran K. Kalaidjian
Приветствую Вас, anton! Разводку LPT-порта см. в приложении. Чтобы проверить какой либо бит я бы сделал ассемблерную вставку. Конкретизируем. К примеру, мы принимаем байт из ЛПТ-порта: mov dx, 379h in al, dx Затем проверяем бит по маске test al, 00100000b ; маска jnz m1 ; Если бит "включен" прыгаем на m1 ; тут выполняем действия, если бит "погашен" ; ... m1: mov a, al ; производим какие-либо действия на случай, если бит "включен" ; в данном случае сохраняем al в переменной типа Byte
Приложение: Ответ отправлен: 01.04.2003, 18:55 Отправитель: Tigran K. Kalaidjian Отвечает vitya
Здравствуйте, anton! раскладываешь на биты просто bits : array[1..8] of byte; {...} for i := 1 to 8 do bits[i] := 0; i := 1; while (myNumber <> 0) { bits[i] := myNumber AND 1; inc(i); myNumber := myNumber SHR 1; } {алгоритм последовательно получает биты и записывает их в массив. Правда он портит начальное число.} Ответ отправлен: 01.04.2003, 08:31 Отправитель: vitya
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.