как в турбо паскале с помощью ассемблерных вставок запрограммировать LPT порт , чтобы к нему подключить восемь выключателей для управления программой.Сама программа представляет собой счетчик времени для восьми объектов в здании.Принцип такой,включили свет,замкнулись контакты и через порт включили один из восьми счетчиков. Приношу извинения если что нескладно изложил.Надеюсь на Вашу помощь.Заранее благодарен. Антон.
Здравствуйте, anton! Проще всего это сделать так - перевести порт в режим приема, постоянно принимать данные. Для этого всего лишь надо подключить к 2-9 ногам порта сигнальные линии. Перевести порт в режим приема - записать в 5 бит регистра управления "1". 378h - адрес регистра данных, его можно посмотреть в настройках системы. Адрес регистра управления (37Ah) - адрес регистра данных + 2. 378h+2h=37Ah Примерная прога в приложении.
Приложение: Ответ отправлен: 29.03.2003, 13:37 Отправитель: X-RayMan Отвечает Tigran K. Kalaidjian
Приветствую Вас, anton! Это делается с помощью всего 2 процедур Посылка в порт: ------------------------------------------------------------ procedure ToLpt (a: Byte); assembler; asm MOV DX, 378H MOV AL, a OUT DX, AL end; ------------------------------------------------------------ Принятие из порта: ------------------------------------------------------------ function FromLpt: byte; var a: byte; begin asm MOV DX, 379H IN AL, DX MOV a, AL end; fromlpt:=a; end; ------------------------------------------------------------ Из порта принимается байт, а затем раскладывается на биты и осуществляется проверка замыкания (т.е. единичные биты). С удовольствием отвечу на Ваши вопросы по почте - kalaidjian@pochtamt.ru. Могу предложить свои замечания и программы. Устройствами сопряжения с ПК (включение
света в помещении, принятие сигналов, датчики, черепашки и прочие самопальные приборы) я занимаюсь около года, поэтому могу поделиться большим количеством документов и исходников на эту тему. Ответ отправлен: 29.03.2003, 12:23 Отправитель: Tigran K. Kalaidjian
Вопрос № 173
Плиз объясните!(ламерский вопрос) Есть файл internet.txt, как его прочитать. Кучу литературы перелопатил, но ни чего не смог сделать. Может что-то упустил.
Приветствую Вас, Кирилл! Смотря что значит прочитать ? Уточните, пожалуйста. Если вы хотите производить чтение файла по строкам, то используйте план(см. приложение). Вообще же АФАИР информация по обработке файлов содержится во всех книгах по паскалю...
Приложение: Ответ отправлен: 30.03.2003, 13:40 Отправитель: Tigran K. Kalaidjian Отвечает Tancho
Здравствуйте, Кирилл! Если я правилно понял тебе, то не вижу ничево сложного: 1)Откроешь текстовой файл; 2)Читаешь его символ о символ, пока доедеть конец файла, путемь выводишь символый екраном; 3)Закрываешь файл( Это не обезателно для входных файлов, но для хороший стиль програмирования это обезательно; Ну смотри маленький примерчик.
Приложение: Ответ отправлен: 31.03.2003, 19:19 Отправитель: Tancho Отвечает X-RayMan
Здравствуйте, Кирилл! Да... Так вот... :) Для начала надо объявить переменную для файла. В разделе var надо написать что-то типа: var _file: Text; Где _file - имя переменной, Text - тип(в данном случае у нас текстовый файл, можно еще file of где вместо указать тип данных). Потом надо связать файловую переменную с физическим файлом на диске: Assign(_file,'c:autoexec.bat'); Потом, если хочешь считать данные, надо использовать команду Reset(_file); Потом есть функция EOF(End Of File) Она указывает достигнут ли конец файла. Ее синтаксис eof(): Boolean; Например считаем всю информацию из файла: while not eof(_file) do { пока не достигнут конец файла } begin ReadLn(_file,s); { считать строку из файла в строковую переменную s } WriteLn(s); {думаю понятно} end; В конце файл надо
обязательно закрыть: Close(_file); Если хочешь записать инфу в файл: Rewrite(_file) - если файл существует, стирает из него все и открывает для записи, если не существует - создает и тоже открывает для записи. Append(_file) - Открывает файл для дозаписи и устанавливает указатель в конец файла. Write(_file,), WriteLn(_file,) - записать в файл. Смотри приложение.
Приложение: Ответ отправлен: 30.03.2003, 00:11 Отправитель: X-RayMan Отвечает Igoryk
Приветствую Вас, Кирилл! Сначала файл связывается, а затем читается: var F:Text; S:String; begin Assign(F,'internet.txt'); while eof(F) do begin readln (S); {Читаем} writeln (S); {Выводим} end; end. Ответ отправлен: 01.04.2003, 17:43 Отправитель: Igoryk Отвечает Zloy
Добрый день, Кирилл! видно не там копал.
Приложение: Ответ отправлен: 31.03.2003, 08:34 Отправитель: Zloy Отвечает Sensey
Здравствуйте, Кирилл! Объявляешь переменную f:text; s:string; потом связываешь файл assign(f,'internet.txt'); потом открываешь для чтения: reset(f); читаешь readln(f,s) как-нить обрабатываешь... Ответ отправлен: 31.03.2003, 15:53 Отправитель: Sensey
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.