![]() |
|
#1
|
|||
|
|||
![]() Всем здраствуйте!!! Ребята такая проблема: Делаю курсовую на тему Управление внешними устройствами ......... Задание такое нужно написать программу которая бы управляла при помощи СОМ- порта каким либо простейшим устройством!!! Знакомый мальчик спаял мне диод с ресистором
![]() Подскажите что мне делать, или как делать!!! Горю((((((((((((( От меня респектик и за ранее спасибо)))))))))) |
#2
|
||||
|
||||
![]() Схему электрическую покажи приборчика который тебе друг спаял.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
![]() Нет там не приборчик! Просто резистор припаяный к светодиоду потом в ком порт RS 232! сказал подключил правильно, дерзай,я у же два дня дерзаю не как не получается.
|
#4
|
|||
|
|||
![]() Попродуй мой модуль для работы с ком-портом.
Работает в WinXP Но для таких задач часто используют Win98. Дело в том что она позволяет прямое обращение к портам ввода-вывода (чего не допускает WinXP) В этом случае все сильно упрощается. Код:
|
#5
|
|||
|
|||
![]() и еще в догонку.
Тебе Обязательно потребуется тестовая программа. С ее помощью ты сможешь отладить канал связи и вообще убедиться что он работает. Я ее откопал в Инете. Чрезвычайно полезная вещь! Не мучайся с исходником. Я откомпилировал. См ComTestExe Схема вызыает большие сомнения. Вряд ли ты что-то увидишь. Процесс передачи байта очень быстрый. Ты не увидишь вспышки светодиода. Или в твоей проге посылай TxD в цикле Нормальное решение проблемы- соединить 2 компа через ком-порт и на них экспериментировать Или возьми какой-нибудь прибор с интерфейсом COM Последний раз редактировалось chainik, 30.09.2011 в 12:59. |
#6
|
||||
|
||||
![]() Цитата:
Компьютер тоже просто коробочка из нее проводки идут и телевозор... А программа почему-то не пишется... ![]() Какой светодиод, номинал резистора, как спаяны, на какие ноги разъемы COM порта? Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#7
|
|||
|
|||
![]() Аж слеза прошибла.
Отдаю свой интерфейсный модуль с прибором БРС-1М. Объясняю суть. В лаборатории метрологии имеется прибор измеряющий давление воздуха. Требуется периодически снимать показания и отсылать в БД и накапливать их там. Это давление используется для введения поправок при калибровке авиационных барометрических высотомеров. Прибор имеет интарфейс СОМ. Работает он предельно просто. Ты отсылаешь в прибор запрос- 1 байт равный $81 В ответ прибор выдает последовательность 7 байт из них 1байт=$DA-это байт начала последовательности. Далее 6 байт, каждый- это 1 разряд на индикаторе, ст. разряд-первый. и это все. Далее все это превращается в число и укладывается в БД. (но нам это пока не надо) Полагаю, зачет будет!!!!!!!! |
#8
|
|||
|
|||
![]() Я нашла компонент работы с ком портом BCPort называется ,а как его на форму выложить не могу понять!!!
|
#9
|
|||
|
|||
![]() Код:
|
#10
|
|||
|
|||
![]() |
#11
|
|||
|
|||
![]() Не поможет. Этот СОМ- не тот СОМ (однофамилец)
Component Object Model (COM) а нам нужен последовательный интерфейс. Если есть такое непреодолимое желание копаться в компьютерной требухе- почитай Юрий Магда. Программирование последовательных интерфейсов. Вызывает подозрение твой вопрос по поводу линии которую надо выбрать для передачи. Он говорит о том что ты все-таки не совсем поняла суть. Она в том что линия передачи- всего одна! (TxD) и линия приема тоже только одна (RxD) Но может ты путаешь термины и речь идет о параллельном порте (LPT)? Тогда проясняется эта идея со светодиодом. В своей минимальной конфигурации Com- порт пребует всего 3 линии Txd, Rxd и общий- итого 3 провода. Если не веришь- расковыряй свою мышку. И передача и прием ведутся последовательно. Есть правда вспомогательные шины (готовности к приему и пр) но они как-то не прижились хотя и позволяют контролировать процесс передачи-приема и избежать потери данных. А впрочем кто знает что потребует от тебя твой препод... Последний раз редактировалось chainik, 02.10.2011 в 18:01. |
#12
|
|||
|
|||
![]() Тогда должно подойти это http://www.helloworld.ru/texts/comp/.../com/index.htm
|
#13
|
|||
|
|||
![]() Если нужно просто светодиодом поморгать, компоненты не нужны - и через WinApi все очень просто выходит. Вот код:
Код:
![]() |
#14
|
||||
|
||||
![]() На 9-ти контактном разъеме COM-порта всего есть 8 сигнальных линий: 5 на вход и 3 на выход. Из этих 8 линий, две отвечают за прием/передачу данных (одна линия на передачу и одна на прием). Эти две линии - это, собственно и есть основа COM-порта. Остальные 6 линий - вспомогательные, они используются не для передачи данных, а для управления процессом передачи. За передачу/прием данных отвечают функции ReadFile/WriteFile. За чтение/установку состояний вспомогательных линий в ручном режиме отвечают функции GetCommModemStatus/EscapeCommFunction (еще эти линии могут управляться аппаратно - при соответствующих настройках COM-порта).
Очевидно что для управления устройством можно использовать только выходные линии. Их всего три - это TX, DTR, RTS. Линию TX нельзя установить в фиксированное состояние - она может лишь выдавать данные, бит за битом, с установленной скоростью. За выдачу данных по линии TX отвечает функция WriteFile. Линии DTR, RTS можно переключить в фиксированное состояние: лог. 0 или 1 (Если, разумеется, не активирован какой-нибудь автоматический режим. Если активирован - состояние линий будет устанавливаться аппаратно). Максимальная скорость, переключения линий DTR,RTS может достигать нескольких десятков килогерц, поэтому на них вполне можно реализовать какой-нибудь протокол. Вот перечень команд для установки состояния линий DTR/RTS: Код:
Вот функции для передачи данных по линии TX: Код:
P.S. Если в вашей схеме только светодиод и резистор, светодиод вполне может быть пробит при обратной полярности. Лучше вместо одного светодиода включить встречно-параллельно два светодиода разного цвета - и надежно и смотрится хорошо. |
#15
|
|||
|
|||
![]() Привожу драйвер ком- порта для Win95/Win98
Обрати внимание насколько здесь все проще. Чтобы отослать байт ты просто отправляешь его в порт (команды IN/OUT) К сожалению в WinXP этот трюк уже не работает. Система не допускает прямого обращения к портам ввода/вывода. Это элемент защиты. У меня на предприятии есть стенды с такой системой. Заменить уже не на что... Код:
|