Логотип


Устройства на микроконтроллерах

материалы в категории

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

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


Основой устройства, схема которого показана на рис. 1, служит микроконтроллер DD2. Программа для него написана на языке ассемблера в среде MPLAB. Тактовая частота 8 МГц задана внутренним RC-генератором. Вывод информации на светодиодные матрицы 8x8 Н1 и Н2 в динамическом режиме происходит с помощью регистров DD1, DD3 и DD4. Выходы регистров 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

Файлы проекта во вложении

Вложения к странице
ФайлОписаниеРазмер файла:
Скачать этот файл (zmeikaitetrisnamk.rar)zmeikaitetrisnamk.rar 16 Кб

Почта сайта