Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Як розширити можливості джойстика Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / телебачення Багато комп'ютерних ігор потребують керування не тільки джойстиком, але і введенням команд з клавіатури. Однак тримати при собі під час гри обидва ці пристрої дуже незручно. Застосувавши програмовану логічну матрицю (ПЛМ) 556РТ1, автор вирішив проблему, замінивши "клавіатурні" команди комбінаціями натискання кнопок джойстика. Ігрові програми для комп'ютера ZX-Spectrum побудовані зазвичай таким чином, що після запуску вони не входять автоматично в режим керування джойстиком; для цього доводиться натиснути кілька кнопок. Необхідність скористатися клавіатурою іноді виникає у процесі гри. Наприклад, щоб розпочати новий сеанс, замінити гру, потрібно натиснути кнопку початкової установки. А це означає, що гравець не може з джойстиком у руках надовго відійти від комп'ютера, сісти у крісло чи лягти на диван. Для того, щоб натиснути одну-дві клавіші, потрібно часто підходити до комп'ютера. Деякі ігри взагалі не розраховані на керування лише джойстиком. Доводиться інтенсивно використовувати клавіатуру, яка від цього швидко виходить з ладу. До того ж клавіші, що керують напрямом руху фігур і стріляниною, бувають обрані невдало (наприклад, розташовані на клавіатурі в ряд), що найчастіше впливає на результат. Було б привабливо, не змінюючи програм, передати джойстику керування і такими іграми. Сьогодні найбільш поширені "кнопкові" джойстики, що мають п'ять зручно розміщених кнопок для вказівки чотирьох напрямків руху та стрілянини. Для виконання інших операцій (вводити символи, що управляють грою) можна скористатися всілякими комбінаціями натискання кнопок. Але вирішення цього завдання традиційним способом за допомогою мікросхем малого та середнього ступеня інтеграції призводить до створення занадто дорогого та складного пристрою. У промисловій апаратурі широко застосовуються поки що мало відомі радіоаматорам мікросхеми ПЛМ спеціально призначені для реалізації складної комбінаційної логіки. Одна з них - 556РТ1 - може одночасно обчислювати 8 логічних функцій від 16 вхідних змінних, причому останні можуть входити до логічних виразів у 48 різних комбінаціях. За своїм пристроєм вона подібна до ППЗУ тієї ж серії 556. Щоб реалізувати потрібні функції, за допомогою програматора перепалюють плавкі перемички на кристалі мікросхеми. Методику програмування, функціональні схеми програматорів та важливі схеми їх блоків можна знайти у [1-8]. Схема доопрацювання комп'ютера ZX-Spectrum показано малюнку. Джойстик (через інвертори мікросхеми DD3) та клавіатура залишаються підключеними до комп'ютера звичайним чином та продовжують виконувати свої функції. Контакти джойстика SB 1-SB5 додатково з'єднують з входами А1-А5. а лінії А8-А15 шини адреси процесора з входами А7-А14 ПЛМ 556РТ1 (002). Вхід А6 залишено вільним. Виходи мікросхеми 0D2 (з відкритим колектором) підключають до порту клавіатури (KL0-KL4) паралельно до останньої і до лінії початкової установки. Потрібно враховувати, що у багатьох варіантах комп'ютера ZX-Spectrum шина адреси процесора перевантажена. Тому з'єднувати з нею клавіатуру та додаткове навантаження (входи ПЛМ) рекомендується через шинний формувач КР580ВА86 (DD1). Іноді він вже є на комп'ютері, наприклад, якщо до нього підключений дисковод. Такий буфер підвищить надійність роботи клавіатури. Річ у тім, що зменшення навантаження на шину адреси розробники комп'ютера з'єднали входи порту клавіатури із джерелом живлення через резистори великого номіналу (15 кОм). В результаті, після відпускання клавіші, паразитні ємності перезаряджаються занадто повільно, що призводить до помилкових зчитувань стану клавіатури. У деяких іграх цей дефект проявляється у вигляді хаотичного переміщення курсору по екрану та мимовільного перемикання режимів. Після встановлення шинного формувача та зменшення номіналів навантажувальних резисторів до 1 ком подібні явища усуваються повністю. Коли вимикач SA1 розімкнуто, виходи ПЛМ знаходяться у високоімпедансному стані, і вона не впливає на роботу комп'ютера. Замкнувши SA1, комбінаціями кнопок джойстика можна дублювати дії деяких клавіш. Це відбувається за рахунок того, що "зашита" ПЛМ логічна функція повторює на відповідному вході порту клавіатури стан одного з розрядів адреси, імітуючи таким чином з'єднання цих ланцюгів контактами натиснутої клавіші. Програму прошивки ПЛМ наведено у табл. 1. З 48-ми наявних у матриці елементів 16І використано 30. Приклад підготовки кодів програмування елемента, що імітує натискання клавіші "З", наведено в табл. 2. Потрібно подати сигнал з лінії шини А8 даних (вхід А14 ПЛМ) на лінію KL3 порту клавіатури (вихід В4 ПЛМ), якщо кнопки "Направо". "Наліво" та "Стрільба" натиснуті разом. У єзапрограмованій ПЛМ кожен з входів А1-А16 з'єднаний з відповідним входом елемента 16 через дві плавкі перемички, причому в ланцюгу однієї з них є інвертор. Якщо перепалити "інверсну" перемичку, аргумент надійде на вхід елемента І безпосередньо, а якщо "пряму" - проінвертується. Перепалювання обох перемичок взагалі виключає даний аргумент із реалізованої функції. У двійкових розрядах кодів програмування перемички, що видаляються, позначають логічними 1. У нашому випадку натиснутою кнопкою джойстика відповідають логічні 0 на з'єднаних з ними входах ПЛМ. Для реалізації функції їх необхідно проінвертувати. видаливши "прямі" перемички. А в розрядах, пов'язаних з кнопками, у цій комбінації не натиснутими, видаляють "інверсні". Далі задають лінію шини адреси, що використовується. Так як активний логічний рівень на ній низький, у відповідному розряді коду видаляють "пряму" перемичку, залишивши "інверсну". Залишається відключити входи, що не використовуються, видаливши обидві перемички в їх розрядах. Матриця АБО складається з восьми (по одному на кожен вихід) елементів 48АБО, входи яких через перемички з'єднані з виходами матриці І. Таким чином, на виході кожного з елементів 16І є вісім перемичок, перепалюючи які його відключають від відповідного елемента 48АБО, а значить, та від виходу ПЛМ. Виходу В1 відповідає молодший, а В8 – старший розряд коду програмування. Щоб залишити потрібне нам з'єднання з виходом В4, задамо код 0F7H. Якщо при програмуванні була допущена помилка або виникла потреба замінити одну функцію іншою, перепалюють усі перемички (код 0FFH). повністю відключаючи непотрібний елемент від виходів. Замість нього програмують один із тих, що залишилися невикористаними. Поки такі елементи є, операцію можна повторювати неодноразово, удосконалюючи та доповнюючи алгоритм роботи джойстика. Зверніть увагу, що кнопка "Ліворуч" імітує натискання клавіші "5", незалежно від стану кнопки "Вгору". Аналогічно кнопка "Вгору" імітує натискання клавіші "7", незалежно від стану кнопки "Вліво". Тому одночасне натискання цих кнопок для комп'ютера еквівалентне такому ж натисканню згаданих клавіш. Це стосується і кнопок "Вниз" і "Направо", що імітують клавіші "6" та "8". Для комбінації клавіш "0" і "5" знадобилося по два елементи І та АБО. Це необхідно, щоб ланцюг KL0 не потрапив сигнал А11, а в ланцюг KL4 - сигнал А12. Неважко помітити, що коли задані клавіші натиснуті, незадані вільні, а на вибраній лінії шини адреси логічний 0. на виході ПЛМ замість потрібного логічного 0 з'явиться 1. Однак передбачена можливість проінвертувати вихідні сигнали, пропалюючи перемички матриці НЕ. У нашому випадку це необхідно зробити, вилучивши їх усі. Аналогічно можна запрограмувати ПЛМ для роботи з джойстиком, що має нормально замкнуті контакти. За потреби за допомогою її можна підключити до комп'ютера клавіатуру, внутрішні з'єднання між клавішами якої не відповідають "стандарту" ZX-Spectrum (наприклад, клавіатуру "Електроніка МС 7007"). Користуючись розширеними можливостями джойстика, слід пам'ятати, що іноді разом із потрібною кнопкою він імітує натискання кількох інших. Це відбувається через те, що натиснути всі потрібні кнопки одночасно неможливо і всі проміжні стани, які коротко виникають у процесі набору комбінації, можуть бути сприйняті як натискання відповідних клавіш. На щастя, багато ігрових програм не реагують на це. Якщо ввести потрібний символ не вдається, спробуйте натиснути кнопки в потрібному поєднанні при розімкнутому вимикачі SA1. Потім, утримуючи їх, увімкніть вимикач. література
Автор: В.Солонін, м.Конотоп, Україна Дивіться інші статті розділу телебачення. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Мікросхеми радіочастотних синтезаторів STW81101 та STW81102 ▪ Тонкий зовнішній привід Pioneer з підтримкою BDXL-дисків ▪ Друк гнучких електронних схем на еластичних матеріалах та тканині Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ Розділ сайту Дозиметри. Добірка статей ▪ стаття Синій птах. Крилатий вислів ▪ стаття Як виникли часові пояси? Детальна відповідь ▪ стаття Виробничий майстер. Посадова інструкція
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |