Логические игры

October 6, 2012 by admin Комментировать »

Большинству читателей, наверное, с детства знакома игра «Переправа», в которой лодочник-перевозчик должен переправить с одного берега на другой волка, козу и капусту. В лодку, кроме перевозчика, может сесть только один пассажир, или вместо пассажира можно перевозить груз. При этом ни на одном берегу нельзя оставлять козу с волком или козу с капустой в отсутствие перевозчика, так как при этом возможны потери. В [5] описана принципиальная схема логической игры «Переправа», содержащая две микросхемы К155ЛАЗ и К155ЛА4. Положение пассажиров и груза на берегах в рассмотренном устройстве задается с помощью тумблеров. В игровом автомате предусмотрена светодиодная и звуковая индикация конфликтных ситуаций. После каждой переправы лодки с перевозчиком с берега на берег нажимают кнопку «Переправа». Логическое устройство анализирует игровую ситуацию. Свечение индикатора и звуковой сигнал свидетельствуют о том, что произошли потери (волк съел козу или коза съела капусту).

Аппаратные затраты по сравнению с [5] можно уменьшить в 2 раза, используя другие схемотехнические решения. Так, например, устройство может быть реализовано на мультиплексоре К155КП1 (рис. 57). При этом конфликтная ситуация на любом из берегов индицируется светодиодом HL1, подключенным к выходу мультиплексора. Светодиод «Авария» светится при низком уровне напряжения на выходе мультиплексора. Принцип работы устройства иллюстрируется табл. 23. Условно примем, что верхнее положение тумблеров SA1-SA4 соответствует нахождению пассажиров и груза на правом берегу, а нижнее на левом.

Рис. 57. Принципиальные схемы логической игры «Переправа»:

а с использованием мультиплексора К155КП1; б с использованием мультиплексора К155КП7

Таблица 23

Уровни напряжения на входах MX

Уровень напряжения на выходе MX

SA4

.Перевозчик

SA3

«Волк»

SA2

«Коза»

SA1

«Капуста»

Dn

0

0

0

0

D0=0

1

0

0

0

1

D1=0

1

0

0

1

0

D2=0

1

0

0

1

1

D3=1

0

0

1

0

0

D4=0

1

0

1

0

1

D5=0

1

0

1

1

0

D6=1

0

0

1

1

1

D7=1

0

1

0

0

0

D8=1

0

1

0

0

1

D9=1

0

1

0

1

0

D10=0

1

1

0

1

1

D11=0

1

1

1

0

0

D12=1

0

1

1

0

1

D13=0

1

1

1

1

0

D14=0

1

1

1

1

1

D15=0

1

Нетрудно видеть, что светодиод HL1 будет светиться в том случае, если на информационный вход мультиплексора, адрес которого набран тумблерами SA1-SA4, подан высокий уровень В связи с этим, входы MX DD1, адреса которых соответствуют конфликтным ситуациям, подключены к плюсу источника питания, а остальные заземлены При ненажатой кнопке SB1 «Переправа» работа MX запрещена и на его выходе формируется высокий уровень, независимо от кода на адресных входах А1-А4 Светодиод HL1 при этом погашен После «переправы» нажимают кнопку SB1, и светодиод HL1 индицирует наличие или отсутствие конфликтных ситуаций на любом из берегов

Проанализировав табл 23, нетрудно видеть, что наличие или отсутствие конфликтной ситуации на берегах при одной и той же информации, заданной тумблерами SA1-SA3, зависит от положения тумблера SA4 «Перевозчик» Учитывая это обстоятельство, можно реализовать игровой автомат на мультиплексоре с меньшим, чем у К155КП1, числом информационных входов (рис 576) При этом уровень на информационных входах изменяется с помощью тумблера SA4 «Перевозчик» Кроме того, реализована возможность раздельной индикации конфликтных ситуаций на каждом из берегов С этой целью светодиоды HL1 и HL2 подключены к выходу MX, на котором в случае конфликтных ситуаций появляется высокий уровень Нетрудно видеть, что конфликтная ситуация на левом берегу возможна при значениях кодов, задаваемых тумблерами SA1-SA3 и равных ООО, 001, 100 при положении перевозчика на правом берегу (тумблер SA4 в верхнем положении) При этом на входы DO, D1 или D4 подается высокий уровень напряжения, на выходе MX при нажатой кнопке SB1 «Переправа» формируется высокий уровень, и загорается светодиод HL1 «Авария ЛБ», катод которого оказывается подключенным к общему проводу

По аналогии при кодах, задаваемых SA1-SA3 и равных 011, 110 и 111, на входы D3, D6 и D7 MX подается высокий уровень при нахождении перевозчика на левом берегу (тумблер SA4 в нижнем положении) На выходе MX при нажатой кнопке SB1 формируется высокий уровень, зажигающий светодиод HL2 («Авария ПБ»), катод которого оказывается соединенным с общим проводом

Рассмотрим более сложную игру [47] В ней три рыцаря и три оруженосца съехались на берегу реки и хотят переправиться на другой берег при условии, что, оказавшись отдельно от своего рыцаря, ни один из оруженосцев не находился бы в обществе других рыцарей, так как рискует быть убитым В их распоряжении имеется лодка, в которой могут разместиться не более двух пассажиров Перевозчика в лодке нет, и поэтому ее переправа с одного берега на другой может осуществляться только при наличии в ней пассажира

На лицевой панели устройства (рис 58) расположены шесть тумблеров (Р1-РЗ, 01-03), определяющих положение рыцарей и оруженосцев на левом и правом берегах и их предполагаемые перемещения Положение рыцарей и оруженосцев на левом или правом берегах, а также пассажиров в лодке индицируют 18 светодиодов Светодиоды «Авария Л Б» и «Авария ПБ» индицируют конфликтные ситуации на левом и правом берегах, соответственно

Рис 58 Передняя панель логической игры «Переправа»

Светодиод «Нарушение правил» светится при попытке “переправы” пустой лодки, а также при посадке в лодку более двух пассажиров или пассажира с противоположного берега По сравнению со схемой, описанной в [47], аппаратные затраты снижены в 1,5 раза, а функциональные возможности существенно расширены [48].

Функциональная схема игрового автомата изображена на рис. 59. Устройство работает следующим образом. В момент первоначального включения переключатель «Лодка» установлен в нижнее по схеме положение, а переключатели «Оруженосцы» 01-03, «Рыцари» Р1-РЗ замкнуты, что соответствует нахождению лодки и пассажиров на левом берегу. После нажатия кнопки «Сброс» регистр RG обнуляется. На его прямых выходах формируются низкие уровни, и в блоке индикации пассажиров на берегах загораются светодиоды, индицирующие положение всех пассажиров на левом берегу. Блоки памяти конфликтных ситуаций (БПКС) и регистрации нарушения правил (БРНП) устанавливаются в исходные состояния, при которых светодиоды «Нарушение правил», «Авария ЛБ» и «Авария ПБ» гаснут. Блок сравнения работает таким образом, что при одинаковых уровнях на первой и второй группах входов на всех выходах формируются высокие уровни, при которых светодиоды HL1-HL6 гаснут. Поэтому после нажатия кнопки «Сброс» светодиоды HL1-HL6 погашены. Если же кто-то из пассажиров (например Р1, 01) «сядет в лодку» (путем размыкания одноименных тумблеров), то загорятся светодиоды HL1 и HL2 в блоке индикации

Рис. 59. Функциональная схема логической игры «Переправа»

пассажиров в лодке за счет появления низкого уровня на первом и втором выходах блока сравнения. В момент «переправы» на другой берег переключением тумблера «Лодка» на выходе формирователя импульсов F формируется короткий импульс положительной полярности. Информация со входов D1-D6 регистра RG переписывается на прямые выходы Q1-Q6. В результате светодиоды HL1, HL2, HL7, HL9 гаснут, а загораются светодиоды HL8, HL10, индицирующие положение Р1 и 01 на правом берегу. В дальнейшем операции с посадкой пассажиров в лодку и их переправой на другой берег осуществляются аналогичным образом.

Нарушение правил фиксируется в нескольких случаях. Во-первых, при переправе пустой лодки. При этом на всех выходах блока сравнения формируются высокие уровни. При подаче короткого импульса положительной полярности на первый вход блока регистрации нарушения правил, при высоких уровнях напряжений на втором входе, на выходе БРНП формируется высокий уровень. Загорается светодиод «Нарушение правил».

Кроме того, нарушение правил фиксируется при подаче низкого уровня на третий вход БРНП с первого выхода кодировщика. Кодировщик CD работает следующим образом. Низкий уровень на выходе Q1 формируется в следующих случаях:

–         при появлении низкого уровня в трех любых разрядах на входе А2. Эта ситуация возникает при «посадке в лодку» трех пассажиров (изменение положений трех любых тумблеров Р1-РЗ, 01-03) без переключения тумблера «Лодка»;

–        при размыкании любого переключателя Р1-РЗ, 01-03 при разомкнутом переключателе «Лодка», что эквивалентно попытке посадить в лодку, находящуюся на правом берегу, пассажиров с левого берега;

–         при замыкании любого переключателя Р1-РЗ, 01-03 при замкнутом переключателе «Лодка», что эквивалентно попытке посадить в лодку, находящуюся на левом берегу, пассажиров с правого берега.

Во всех остальных случаях на первом выходе кодировщика формируется высокий уровень.

Если обозначить символами Р1-РЗ, 01-03 положение пассажиров

на правом берегу, а Р1-РЗ, 01-03 положение пассажиров на левом

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

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

При подаче низкого уровня с выхода Q2 CD на вход БПКС загорается светодиод «Авария ЛБ», а при подаче низкого уровня с выхода Q3 CD загорается светодиод «Авария ПБ». Игра завершена. После нарушения правил или возникновения конфликтных ситуаций игру необходимо начинать сначала.

Принципиальная схема игрового автомата изображена на рис. 60. Формирователь импульсов F реализован на триггере DD1.1 и элементах DD2.1, DD3.1, DD3.2. На выходе элемента DD3.2 формируются короткие импульсы положительной полярности при каждом переключении тумблера «Лодка». Регистр RG реализован на микросхемах DD4, DD5, а блок сравнения на элементах DD3.3, DD3.4, DD6.1-DD6.4. Блок индикации пассажиров в лодке содержит светодиоды HL1-HL6, а блок индикации пассажиров на берегах светодиоды HL7-HL18. Кодировщик реализован на ПЗУ DD8, а блок регистрации нарушения правил на элементах DD7, DD2.2, DD2.3, DD2.4 и триггере DD1.2. Блок памяти конфликтных ситуаций выполнен на триггерах DD9.1, DD9.2.

Устройство работает следующим образом. Перед началом игры все пассажиры и лодка находятся на левом берегу, тумблеры SA2-SA7 замкнуты, а тумблер SA1 находится в нижнем положении. После нажатия на кнопку SB1 «Сброс» регистры DD4, DD5 обнуляются и загораются светодиоды HL7, HL9, HL11, HL13, HL15, HL17, индицирующие положение пассажиров на левом берегу.’ Триггеры DD9.1, DD9 2 и RS-триггер на элементах DD2.2, DD2.3 устанавливаются в нулевое состояние, а триггер DD1.2 в единичное. На инверсных выходах триггеров DD9.1, DD9.2 формируются высокие уровгни, и светодиоды HL20 и HL21 гаснут. За счет подачи высоких уровней на входы элемента DD2.4 на его выходе формируется низкий уровень и светодиод HL19 гаснет. Светодиоды HL1-HL6, индицирующие положение пассажиров в лодке, также не светятся, так как на первые входы элементов DD3.3, DD3.4, DD6:1-DD6.4 подаются низкие, а на вторые входы этих элементов высокие уровни. На входы А0-А5 DD8 подаются высокие уровни, а на входы А6-А12 низкие На всех выходах DD8 формируются при этом высокие уровни.

Предположим, что первыми на правый берег переправляются оруженосцы 01 и 02, для чего следует разомкнуть контакты тумблеров SA3, SA5. При этом на входы D2 и D4 регистра DD4 и входы элементов DD3.4 и DD6.2 будут поданы высокие уровни. Как следствие, загораются светодиоды HL2 и HL4, индицирующие нахождение в лодке оруженосцев 01 и 02. Так как на два входа элемента DD7 подаются низкие уровни, то высокий уровень с его выхода подается на D-вход триггера DD1.2. На всех выходах кодировщика DD8 формируются высокие уровни.

После «переправы» (переключения тумблера SA1 в верхнее положение) триггер DD1.1 переключится в единичное состояние. На выходе элемента DD3.2 формируется короткий импульс положительной полярности, поступающий на входы синхронизации регистров DD4, DD5 и триггера DD1.2. Так как на D вход триггера DD1.2 с выхода элемента DD7 подается высокий уровень, то состояние триггера не меняется и светодиод HL19 не загорается. Двоичный код на выходах регистров соответствует коду, набранному тумблерами SA2-SA7. Очевидно, что после «переправы» погаснут светодиоды HL2 и HL4, HL9 и HL13, а включатся светодиоды HL10 и HL14, указывающие на появление оруженосцев 01 и 02 на правом берегу. Конфликтных ситуаций на левом и правом берегах нет, светодиоды HL20 и HL21 не светятся, так как на всех выходах кодировщика DD8 формируются высокие уровни.

Если же, вопреки правилам, играющий попытался бы переправить трех пассажиров, переключив три тумблера, задающих положение пассажиров, то на выходах трех из шести элементов DD3.3, DD3.4, DD6.1-DD6.4 были бы сформированы низкие уровни. При подаче низких уровней на любые три* входа А0-А5 ПЗУ DD8 на выходе Q1 кодировщика формируется низкий уровень. Триггер на элементах DD2.2, DD2.3 переключится в единичное состояние. За счет подачи низкого уровня на вход элемента DD2.4 на его выходе появится высокий уровень, загорится светодиод HL19 «Нарушение правил».

Аналогичная ситуация возникнет и в том случае, если после совершенной «переправы» оруженосцев 01 и 02 на правый берег будет в последующем сделана попытка «посадить в лодку» пассажира с левого берега (в данном случае любого из Р1, Р2, РЗ, 03) при положении лодки на правом берегу.

Микросхема ПЗУ запрограммирована таким образом, что если при А12=1 (тумблер «Лодка» в верхнем положении), низком уровне на одном или нескольких входах А6-А11 (пассажиры на левом берегу) появится низкий уровень на соответствующем входе А0-А5 (кто-то из этих пассажиров сел в лодку), то на выходе Q1 ПЗУ DD8 появится низкий уровень, устанавливающий RS-триггер на элементах DD2.2, DD2.3 в единичное состояние, в результате чего загорится светодиод HL19.

Низкий уровень на первом выходе ПЗУ появится также при А12=0 (лодка на левом берегу), высоком уровне на одном или нескольких входах А6-А11 (пассажиры на правом берегу) и низком уровне на соответствующем входе А0-А5 (кто-то из этих пассажиров сел в лодку).

Светодиод HL19 «Нарушение правил» загорится также при «переправе» пустой лодки. Если после очередной «переправы» переключить тумблер SA1 без изменения положения тумблеров SA2-SA7, то на все входы элемента DD7 будут поданы высокие уровни. После переключения тумблера SA1 на выходе элемента DD3.2 формируется короткий импульс положительный полярности. В результате низкий уровень с выхода DD7 записывается в триггер DD1.2. На первый вход элемента DD2.4 подается низкий уровень, и светодиод HL19 светится.

После любого нарушения правил игру следует начинать сначала переводом всех тумблеров SA1-SA7 в нижнее (по схеме) положение и нажатием кнопки «Сброс».

В описанной выше игровой ситуации после переправы на рравый берег оруженосцев 01 и 02 один из оруженосцев должен вернуться на левый берег. Предположим, на левый берег вернулся оруженосец 01. Для ознакомления с работой устройства индикации конфликтных ситуаций рассмотрим случай, когда при нахождении на правом берегу оруженосца 02 туда с левого берега переправится рыцарь Р1. При этом создаются конфликтные ситуации на обоих берегах, поскольку на левом берегу оруженосец 01 оказался без рыцаря Р1 в обществе рыцарей Р2, РЗ, а на правом оруженосец 02 без своего рыцаря Р2 оказался в обществе рыцаря Р1. За счет программирования ПЗУ на выходах Q2 и Q3 DD8 в рассматриваемом случае формируются низкие уровни, устанавливающие триггеры DD9.1, DD9.2 в единичное состояние. В результате за счет появления низких уровней на инверсных выходах этих триггеров загораются светодиоды HL20 «Авария ЛБ» и HL21 «Авария ПБ».

После каждого возникновения конфликтной ситуации, как и при нарушении правил, игру нужно начинать сначала.

Так как ПЗУ имеет объем 8192 кбайт, привести таблицу программирования в книге не представляется возможным. Поэтому приводим формулы для уровне^ напряжений на каждом их трех выходов ПЗУ:

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

Источник: Фромберг Э. М., Конструкции на элементах цифровой техники. М.: Горячая линия-Телеком, 2002. 264 с.: ил. (Массовая радиобиблиотека; Вып. 1249).

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты