Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм для программы, Ступор.. 
:(
    Опции темы
Jead
Дата 31.10.2011, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Доброе время суток!
Очень нужна помощь, подсказка.. Хотя бы направление.

В общем у нас имеется модуль ввода вывода, который содержит в своем составе четыре кнопки и четыре светодиода. Свечениe светодиода обеспечивается в том случае, если в соответствующем разряде модуля (D7...D4) имеет место логическая единица. Нажатие любой кнопки приводит к формированию логической единицы на линии, связанной с кнопкой (D3...D0).

Структурная схема модуля.
user posted image

И требуется обеспечить при отпущенных кнопках S1, S2 и S3 свечение светодиода VD1.  При нажатии любой (одной) из кнопок свечение светодиода VD2. При нажатии любой пары кнопок свечение светодиода VD3. В случае одновременного нажатия трех кнопок должен гореть светодиод VD4.

О программировании говорить еще пока рано.
В общем я составил структурную схему подсистемы, которая выглядит так.

user posted image
Дальше требуется составить алгоритм решения задачи, а вот тут-то и наступает ступор. До этого писал алгоритмы всего пару раз, и то абсолютно несерьезные.

Можете помочь с этим делом? Насколько я понял для реализации надо использовать сумматор.

Составил первые два пункта, а дальше проблемы

Включение - Запись логической единицы в порт Р1.3 - Дело доходит до сумматора и я теряюсь.
Очень надеюсь на понимание и помощь..

Это сообщение отредактировал(а) Jead - 31.10.2011, 00:05
PM MAIL   Вверх
1Smex
Дата 31.10.2011, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 31.10.2011

Репутация: нет
Всего: нет



А использование модуля ввода-вывода критично?

Если можно обойтись без него предлагаю реализовать устройство на обычной дискретной логике И-ИЛИ-НЕ.

Если использование модуля критично - думаю, все проще в плане алгоритма "если тако-то порт = 1", то "вывести 1 в такой-то порт".
PM MAIL WWW ICQ   Вверх
Jead
Дата 31.10.2011, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Да, критично. Немного не понял Ваше предложение. Как я себе представляю работу программы - сумматор считывает количество импульсов на трех выводах с кнопок. Если импульсов нет (кнопки не нажаты) зажигается первый с-диод. Если импульс один (1 кнопка нажата) загорается второй с-диод, если 2 - третий, если три - четвертый. Просто не знаю как написать алгоритм именно перед сумматором. После - более менее понятно, что надо делать проверку на равность нулю, единице, двум и трем..
PM MAIL   Вверх
baldina
Дата 31.10.2011, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



надо составить таблицу истинности, из нее и будет следовать программная или аппаратная реализация

по условию:
VD1 = NOT (S1 OR S2 OR S3)
VD2 = S1 OR S2 OR S3 OR S4
VD3 = (S1 AND (S2 OR S3 OR S4)) OR (S2 AND (S1 OR S3 OR S4)) OR (S3 AND (S1 OR S2 OR S4))
VD4 = (S1 AND S2 AND S3) OR (S1 AND S2 AND S4) OR (S2 AND S3 AND S4) OR (S1 AND S3 AND S4)

Добавлено через 1 минуту и 34 секунды
никакие сумматоры Вам не нужны, не усложняйте
PM MAIL   Вверх
1Smex
Дата 31.10.2011, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 31.10.2011

Репутация: нет
Всего: нет



Алгоритм заранее нам известен - компьютер тут не нужен, можно обойтись и цифровым автоматом (Мура или Мили).
Суть я понял. 
Не понимаю только, зачем тут модуль ввода-вывода. Если он тут стоит, значит, и управлять должен он. Разве нет?
И какой алгоритм можно написать для сумматора, я тоже не совсем понял.

Это сообщение отредактировал(а) 1Smex - 31.10.2011, 01:32
PM MAIL WWW ICQ   Вверх
Jead
Дата 31.10.2011, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Ну, как бы, у нас лабораторная работа именно по модулям ввода-вывода, поэтому они и присутствуют. 
Дальше, я тоже задумывался по поводу таблицы истинности, и даже составлял ее, но у нас строгий преподаватель, должно быть ТОЛЬКО так, как он скажет =( Т.е. нужен сумматор, и четкий алгоритм, со всеми стрелками, правильными элементами ромбами и т.д..
PM MAIL   Вверх
1Smex
Дата 31.10.2011, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 31.10.2011

Репутация: нет
Всего: нет



Ну тогда собираешь по схеме ниже и далее обрабатываешь комбинации сигналов на выходе логикой (составить таблицу истинности).

Я других решений не нашел, хотя использование сумматоров - уже извращение.



Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  __________.png 3,56 Kb
PM MAIL WWW ICQ   Вверх
1Smex
Дата 31.10.2011, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 31.10.2011

Репутация: нет
Всего: нет



На выходе можно дешифратор поставить, тогда в зависимости от суммируемого числа, будет дергаться соответствующая нога, к ней и цеплять диод.

А со съхемой я налажал третий сумматор убрать нафиг и тогда можно обойтись без таблицы истинности.

Это сообщение отредактировал(а) 1Smex - 31.10.2011, 02:17
PM MAIL WWW ICQ   Вверх
Jead
Дата 31.10.2011, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Спасибо большое за помощь, но Вы наверное не так меня поняли..

На данный момент мне требуется разработать алгоритм такого типа

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0771 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.