Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Как объединить порты в массив
vanish Дата: Пт, 21.03.2025, 08:44  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 57
Репутация: 0   ±
Замечания:   ±
На сайте с 08.04.2010

Статус: Offline

Всем привет. Встала задача на работе управлять 18 реле при помощи двух кнопок. При нажатии  первой кнопки включается следующее реле, выключается предидущее, принажатии второй кнопки тоже самое в обратном направлении. Я использовал сдвиги типа <<1 и >>1. Работает но в пределах восьми портов например от portb.0 до portb.7. И вот вопрос .Как собрать порты  portb, portc, portd в одну кучу? Натолкните на мысль, пожалуйста. Пробовал массив , не получилось.
Использую pic16f877. Спасибо

Добавлено (21.03.2025, 15:34)
---------------------------------------------
Вопрос решен. Использовал Select Case

ЯНДЕКС Дата: 21.03.2025
доцент2 Дата: Пт, 21.03.2025, 23:03  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 300
Репутация: 10   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Поставьте условие, если достигли 8-го вывода порта, то переходим на следующий порт и т.д. Также в обратном направлении. Или наверное проще ввести дополнительную переменную для счета и от ее значения включать тот или иной вывод нужного порта. например:
if a=0 then portb.0=1, portb.1=0, portc.хх=0
if a=1 then portb.1=1, portb.0=0, portb.2=0
if a=2 then portb.2=1, portb.1=0, portb.3=0
и т.д.

Сообщение отредактировал доцент2 - Пт, 21.03.2025, 23:12
xvovanx Дата: Вс, 23.03.2025, 19:04  |                                                                                                                Сообщение # 3
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 354
Репутация: 65   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата доцент2 ()
Или наверное проще ввести дополнительную переменную для счета

Да, с переменной гораздо проще. При нажатии кнопок делаем +1 и -1 к переменной. А потом целый ряд из 18 условий - если переменная =тому то, то этот порт=1, остальные нулю.
vanish Дата: Сб, 29.03.2025, 15:09  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 57
Репутация: 0   ±
Замечания:   ±
На сайте с 08.04.2010

Статус: Offline

Спасибо! Ваш вариант лучше!
Сообщение отредактировал vanish - Сб, 29.03.2025, 15:27
  • Страница 1 из 1
  • 1
Поиск: