Вывод двоичного числа в параллельный порт - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Вывод двоичного числа в параллельный порт
Вывод двоичного числа в параллельный порт
xvovanx Дата: Пт, 06.02.2015, 21:05  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 247
Репутация: 12   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Дорогие Форумчане! И опять без Вашей помощи у меня стоп-кадр nocomp туплю однако. Натолкните в нужное русло. Как вывести двоичное число в параллельный порт. Поясню. Имеем приемник, в котором кодировка приема задается 8 разрядами - от ADR=%00000000 до ADR=%11111111. К шине адресов подключены 8 портов процессора. Как организовать сканирование? Пытался в цикле от 0 до 65635 командой GetBit выдергивать отдельные биты, но вывести в паралельный порт без гем...роя не выходит. Киньте идею красивого цикла

P.S. С последовательным USARTом как-то все просто. Короче туплю.
ЯНДЕКС Дата: 06.02.2015
DAlexV Дата: Сб, 07.02.2015, 13:38  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

xvovanx, а в чем вопрос ???? Если про чтение, то ...
В прерывании считываем весь порт, далее уже в основном коде издеваемся над битами. Если не хочетсяя заморачиваться с таймерами и скорость опроса не высокая, то можно воспользоваться расширителем портов типа PCF8574. У него есть нога INT которая генерит прерывание при изменнии состояния любой ноги. Сбрасывается автоматом при чтении из I2C.
Если про побитную запись, то ......

Dim PortOut as byte

PortOut=0      ' чистим переменную от старого хлама
PortOut.5=1   ' выставляем биты 
PortOut.1=1   ' те что нуно
PortB=PortOut   ' обновляем порт (Б в данном случае )

Так же можно поступать и с  PCF8574 (единственное но ... Там подтяжку по питанию нужно ставить. Выходы с открытым стоком у нее)

Успехов  wink


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
xvovanx Дата: Сб, 07.02.2015, 18:42  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 247
Репутация: 12   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата DAlexV ()
PortOut=0      ' чистим переменную от старого хлама
PortOut.5=1   ' выставляем биты
PortOut.1=1   ' те что нуно
PortB=PortOut ' обновляем порт (Б в данном случае )


Это то, что нужно! И действительно все так просто оказалось.

P.S. с меня как обычно код
ПОМОЩЬ=%00000100
РЕПУТАЦИЯ=РЕПУТАЦИЯ+ПОМОЩЬ.2
biggrin

Сообщение отредактировал xvovanx - Сб, 07.02.2015, 18:42
AndrF Дата: Пн, 09.02.2015, 12:29  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 148
Репутация: 3   ±
Замечания:   ±
На сайте с 03.02.2012

Статус: Offline

Цитата DAlexV ()
Так же можно поступать и с  PCF8574 (единственное но ... Там подтяжку по питанию нужно ставить. Выходы с открытым стоком у нее)

Я сейчас MCP23008 несколько штучек себе прикупил - стоят у Чипа с Дипом 60 руб и ниже...

Сообщение отредактировал AndrF - Пн, 09.02.2015, 12:30
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Вывод двоичного числа в параллельный порт
Страница 1 из 11
Поиск: