Устройства на микроконтроллерах
Тетрис и Змейка на микроконтроллере 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 Гц.
Свечение светодиодов по периметру поля в меню означает, что выбран режим игры с границами. В этом режиме выход "змейки" за пределы игрового поля означает проигрыш. Если в меню светодиоды по периметру поля погашены, выбран режим игры без границ. В этом случае при выходе за пределы игрового поля голова "змейки” появляется с противоположной стороны поля. Выбирают режим игры с границами или без них с помощью кнопок SB2 "Вправо" и SB3 "Влево". По умолчанию в программе установлены первый уровень, первая скорость и режим с границей.
В процессе игры кратковременными нажатиями на кнопку SB5 "Старт/Стоп" можно приостановить и возобновить игру. Для выхода из меню игры необходимо удерживать кнопку SB5 нажатой более одной секунды. На игровом поле высветится заставка игры. Нажатием на любую из кнопок 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
Файлы проекта во вложении