Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Змейка и Тетрис на микроконтроллере PIC16F688

В устройстве реализованы две широко известные игры "Змейка " и "Тетрис". Игровое поле 8x16 образовано двумя светодиодными матрицами.

Основой устройства, схема которого показана на рис. 1, служит микроконтроллер DD2 PIC16F688. Программа для него написана на языке ассемблера в среде MPLAB. Тактовая частота 8 МГц задана внутренним RC-генератором. Вывод информации на светодиодные матрицы 8x8 Н1 и Н2 в динамическом режиме происходит с помощью регистров DD1, DD3 и DD4. Выходы регистров M74HC595B1R DD3 и DD4 подключены через токоограничивающие резисторы R14—R29 к анодам светодиодов матриц. Катоды светодиодов этих матриц подключены к коллекторам транзисторов VT1—VT8, управляющие сигналы на базы которых поступают с выходов регистра DD1. Микроконтроллер загружает коды в регистр DD1, при заполнении которого сигнал с его вывода Q7 (вывод 9) поступает на вход SER регистра DD4 и далее данные передаются в DD3 Изображение на дисплее обновляется с частотой 100 Гц. 

Схема тетриса на микроконтроллере


После подачи питающего напряжения на игровом поле отображается заставка игры "Змейка" — в верхней его части высвечивается цифра 1, в нижней — изображение фрагмента игры. При кратковременном нажатии на кнопку SB5 "Старт/Стоп" выполняется переход в меню игры и в верхней части поля цифрами от 1 до 9 отображается уровень игры Его изменяют нажатиями на кнопку SB 1 "Вверх". Каждое нажатие приводит к последовательному увеличению уровня на единицу. После девятого уровня происходит возврат на первый. От уровня игры зависит начальная длина "змейки". Для первого её длина — три точки, для девятого — 11 точек. В нижней части игрового поля отображается информация о скорости движения "змейки”, её устанавливают нажатиями на кнопку SB4 "Вниз”. Цифре 1 соответствует минимальная скорость, цифре 9 — максимальная.

Свечение светодиодов по периметру поля в меню означает, что выбран режим игры с границами. В этом режиме выход "змейки" за пределы игрового поля означает проигрыш. Если в меню светодиоды по периметру поля погашены, выбран режим игры без границ. В этом случае при выходе за пределы игрового поля голова "змейки” появляется с противоположной стороны поля. Выбирают режим игры с границами или без них с помощью кнопок SB2 "Вправо" и SB3 "Влево". По умолчанию в программе установлены первый уровень, первая скорость и режим с границей. 

После всех установок нажатием на кнопку SB5 "Старт/Стоп" начинают игру. На игровом поле появляются "змейка” и светящаяся точка. Нажатие на любую из кнопок SB1, SB2 или SB3 приводит "змейку” в движение. После этого становится доступной кнопка SB4 "Вниз". При "наезде” на светящуюся точку длина "змейки" увеличивается. После набора 14 точек происходит переход на следующий уровень. После девятого уровня — снова на первый. В случае "наезда” "змейки" на собственное "туловище" или выхода за пределы поля в режиме наличия границ наступает проигрыш. После трёх проигрышей происходит возврат в меню игры, где указаны её текущие уровень и скорость.

В процессе игры кратковременными нажатиями на кнопку SB5 "Старт/Стоп" можно приостановить и возобновить игру. Для выхода из меню игры необходимо удерживать кнопку SB5 нажатой более одной секунды. На игровом поле высветится заставка игры. Нажатием на любую из кнопок SB1—SB4 выбирают игру, при этом на игровом поле высвечивается её заставка. 

В верхней части заставки игры "Тетрис" высвечивается цифра 2, в нижней части — фрагмент игры. Переход в меню игры выполняют нажатием на кнопку SB5. В верхней части отображается число баллов, набранных игроком. Один балл начисляется за каждую удалённую строку. Счётчик баллов ведёт счёт до 99, затем обнуляется и начинает его заново. В начале каждой новой игры счётчик также обнуляется. В нижней части поля отображается информация о скорости движения фигур, которую можно изменить, нажимая на кнопку SB1 или SB4.

Игра начинается после нажатия на SB5. В верней части поля поочерёдно появляются различные фигуры, которые можно перемещать вправо или влево нажатиями на кнопки SB2 и SB3 соответственно. Каждое нажатие на SB1 "Вверх" поворачивает фигуру на 90° по часовой стрелке. Удерживая нажатой кнопку SB4 "Вниз”, можно ускорить движение фигуры вниз. Игра заканчивается, когда новая фигура не помещается на игровом поле. После этого происходит переход в меню, где выводится информация о набранных баллах. Если в течение четырёх минут не была нажата ни одна из кнопок, устройство переходит в режим пониженного энергопотребления, микроконтроллер отключает светодиодные матрицы и переходит в спящий режим. Устройство "просыпается" после нажатия на кнопку SB5 и возвращается в прежнее состояние. 






Все детали, кроме источника питания, установлены на печатной плате из фольгированного с двух сторон стеклотекстолита толщиной 1,5...2 мм. Её чертёж показан на рис. 2 и рис. 3. В устройстве применены резисторы и керамические конденсаторы (С2, СЗ) для поверхностного монтажа типоразмера 1206, оксидный конденсатор — импортный. Светодиодные матрицы TOM-1Q88BG-B можно заменить матрицами TC15-11YWA, но при этом потребуется корректировка печатной платы, поскольку расстояния между группами выводов у них различны. Кнопки — SWT 6x6-7, TS-A3PS-130 или серии ПКн159. В отверстия, залитые на рис. 2 и рис. 3 чёрным, вставлены отрезки лужёной медной проволоки и припаяны с двух сторон.

 

 

Вид смонтированной платы приведён на рис. 4. Источником питания может быть стабилизированный сетевой блок питания напряжением 3,7...5 В или батарея из трёх гальванических элементов типоразмера АА или ААА. Устройство сохраняет работоспособность при снижении напряжения питания до 3,3 В, но при этом существенно уменьшается яркость свечения светодиодных матриц.

В архиве по этой ссылке - исходный код программы на ассемблере и прошивка для микроконтроллера. 

Источник: Радио 2014 №2
Автор: Р. МУХУТДИНОВ, д. Султановка Кигинского р-на, Башкортостан


C этой схемой также часто просматривают:

Генератор видеосигнала на микроконтроллере PIC16F84
Электронные часы с будильником на микроконтроллере AT90S2313-10PI
Схема новогодней гирлянды на микроконтроллере
Полицейская крякалка своими руками на PIC-микроконтроллере
Паяльная станция на микроконтроллере (Цифровой ПИД регулятор температуры)
Электронное спусковое устройство для зеркального фотоаппарата
Делитель частоты с регулируемым коэффициентом деления
Устройства на микросхеме MAX869L
Генератор пилообразного напряжения на таймере 555

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU


Последние поступления

Подключение энкодера к микроконтроллеру PIC

Счётчик людей в помещении, управляющий освещением

Велокомпьютер на микроконтроллере PIC16F628A

Устройство ввода-вывода на микроконтроллера

Два термометра на PIC16F628A и DS18B20

Светодиодные часы с циферблатом

Двоичные часы

Два вывода микроконтроллера PIC управляют шестью светодиодами

Цифровой программируемый таймер на микроконтроллере PIC16F628A

Устройство рисования в воздухе на ATtiny2313


Bet Boom || стратегия ставок на хоккей

© 2003—2024 «KAZUS.RU - Электронный портал»