Більшості читачів, напевно, з дитинства знайома гра «Переправа», у якій човняр-перевізник повинен переправити з одного берега на інший вовка, козу і капусту У човен, крім перевізника, може сісти тільки один пасажир, або замість пасажира можна перевозити вантаж При цьому ні на одному березі не можна залишати козу з вовком або козу з капустою в відсутність перевізника, так як при цьому можливі втрати В [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 реалізований на тригері DD11 і елементах DD21, DD31, DD32 На виході елемента DD32 формуються короткі імпульси позитивної полярності при кожному перемиканні тумблера «Човен» Регістр RG реалізований на мікросхемах DD4, DD5, а блок порівняння на елементах DD33, DD34, DD61-DD64 Блок індикації пасажирів у човні містить світлодіоди HL1-HL6, а блок індикації пасажирів на берегах світлодіоди HL7-HL18 Кодіровщік реалізований на ПЗУ DD8, а блок реєстрації порушення правил на елементах DD7, DD22, DD23, DD24 і триггере DD12 Блок памяті конфліктних ситуацій виконаний на тригерах DD91, DD92

Пристрій працює таким чином Перед початком гри всі пасажири і човен знаходяться на лівому березі, тумблери SA2-SA7 замкнуті, а тумблер SA1 знаходиться в нижньому положенні Після натискання на кнопку SB1 «Скидання» регістри DD4, DD5 обнуляються і спалахують світлодіоди HL7, HL9, HL11, HL13, HL15, HL17, індиціюється положення пасажирів на лівому березі Тригери DD91, DD9 2 і RS-тригер на елементах DD22, DD23 встановлюються в нульовий стан, а тригер DD12 в одиничне На інверсних виходах тригерів DD91, DD92 формуються високі рівнігні, і світлодіоди HL20 і HL21 гаснуть За рахунок подачі високих рівнів на входи елемента DD24 на його виході формується низький рівень і світлодіод HL19 гасне Світлодіоди HL1-HL6, індиціюється положення пасажирів в човні, також не світяться, так як на першому входи елементів DD33, DD34, DD6 :1-DD6 4 подаються низькі, а на другому входи цих елементів високі рівні На входи А0-А5 DD8 подаються високі рівні, а на входи А6-А12 низькі На всіх виходах DD8 формуються при цьому високі рівні

Припустимо, що першими на правий берег переправляються зброєносці 01 і 02, для чого слід розімкнути контакти тумблерів SA3, SA5 При цьому на входи D2 і D4 регістра DD4 і входи елементів DD34 і DD62 будуть подані високі рівні Як наслідок, загоряються світлодіоди HL2 і HL4, індиціюється знаходження в човні зброєносців 01 і 02 Так як на два входи елемента DD7 подаються низькі рівні, то високий рівень з його виходу подається на D-вхід тригера DD12 На всіх виходах кодувальника DD8 формуються високі рівні

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

Якщо ж, всупереч правилам, що грає спробував би переправити трьох пасажирів, переключивши три тумблера, задають положення пасажирів, то на виходах трьох з шести елементів DD33, DD34, DD61-DD64 були б сформовані низькі рівні При подачі низьких рівнів на будь-які три * входу А0-А5 ПЗУ DD8 на виході Q1 кодувальника формується низький рівень Тригер на елементах DD22, DD23 переключиться в одиничне стан За рахунок подачі низького рівня на вхід елемента DD24 на його виході зявиться високий рівень, загориться світлодіод HL19 «Порушення правил»

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

Мікросхема ПЗУ запрограмована таким чином, що якщо при А12 = 1 (тумблер «Човен» у верхньому положенні), низькому рівні на одному або декількох входах А6-А11 (пасажири на лівому березі) зявиться низький рівень на відповідному вході А0-А5 (хтось із цих пасажирів сів у човен), то на виході Q1 ПЗУ DD8 зявиться низький рівень, що встановлює RS-тригер на елементах DD22, DD23 в одиничний стан, в результаті чого загориться світлодіод HL19

Низький рівень на першому виході ПЗУ зявиться також при А12 = 0 (човен на лівому березі), високому рівні на одному або декількох входах А6-А11 (пасажири на правому березі) і низькому рівні на відповідному вході А0-А5 (хтось із цих пасажирів сів у човен)

Світлодіод HL19 «Порушення правил» загориться також при «переправі» порожній човна Якщо після чергової «переправи» перемкнути тумблер SA1 без зміни положення тумблерів SA2-SA7, то на всі входи елемента DD7 будуть подані високі рівні Після перемикання тумблера SA1 на виході елемента DD32 формується короткий імпульс позитивний полярності У результаті низький рівень з виходу DD7 записується в тригер DD12 На перший вхід елемента DD24 подається низький рівень, і світлодіод HL19 світиться

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

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

Після кожного виникнення конфліктної ситуації, як і при порушенні правил, гру потрібно починати спочатку

Оскільки ПЗУ має обєм 8192 кбайт, привести таблицю програмування в книзі не представляється можливим Тому наводимо формули для рівні ^ напруг на кожному їх трьох виходів ПЗУ:

На закінчення наведемо один з можливих варіантів переправи всіх лицарів і зброєносців на протилежний берег без порушення правил гри Стрілками показано напрямок руху човна

Джерело: Фромберг Е М, Конструкції на елементах цифрової техніки М: Гаряча лінія-Телеком, 2002 264 с: Ил (Масова радіобібліотека Вип 1249)