Крестики-нолики на микроконтроллере PIC16F628A » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Какие микроконтроллеры вы используете?


Atmel
MicroChip
STM
Motorola
Texas Instruments
Другие


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Крестики-нолики на микроконтроллере PIC16F628A
    Автор публикации: alex Просмотров: 8072 Добавлен: 28-09-2013, 23:20 Комментарии: 0

         В предложенном устройстве реализована широко известная игра "крестики-нолики". В игре принимают участие два соперника, но предусмотрен вариант, в котором игрок может сыграть против "электронного интеллекта” микроконтроллера. Игровое поле 3x3 образовано двухцветными светодиодами.
         Устройство (рис. 1) содержит микроконтроллер DD1, два регистра DD2 и DD3 и девять двухцветных светодиодов, поэтому в данном случае эту игру можно назвать "красный-зелёный”. Питающее напряжение на аноды светодиодов HL1—HL9 поступает с выходов регистров DD2, DD3 и линий RB6, RB7 микроконтроллера DD1. Катоды всех светодиодов подключены к коллектору транзистора VT1, которым по линии RB5 управляет микроконтроллер.

    Принципиальная схема Крекстиков-Ноликов на микроконтроллере PIC16F628A

         Микроконтроллер DD1 загружает данные в регистр DD2, при переполнении которого информация с выхода восьмого разряда (вывод 13) передаётся на информационные входы регистра DD3. После загрузки регистров на базу транзистора VT1 поступает открывающее напряжение, тем самым катоды светодиодов подключаются к общему проводу. В результате загораются те из них, на анодах которых присутствует напряжение. Светодиод HL4 подключён непосредственно к микроконтроллеру, так как все выходы регистров заняты. Резисторы R3—R21 — токоограничивающие. Микроконтроллер работает на тактовой частоте 4 МГц от встроенного генератора.
         После подачи питания устройство переходит в режим игры, в котором противником игрока является "электронный интеллект" микроконтроллера. При этом на игровом поле высвечивается символ "+" (плюс) зелёного цвета. Игрок может играть только "крестиками", которым присвоен красный цвет. Микроконтроллер играет "ноликами", которым соответствует зелёный цвет. При выборе этого режима игры первый ход делает игрок, в следующей партии первый ход за микроконтроллером, затем опять за игроком. Таким образом, право первого хода передаётся по очереди.

    Разводка печатной платы

         Ход крестиками осуществляют нажатием на кнопку SB1. После кратковременного нажатия светодиод HL1 начинает мигать красным цветом с частотой 1 Гц, тем самым указывая клетку игрового поля, на которую можно "поставить крестик". При повторном нажатии на кнопку SB1 светодиод HL1 гаснет и начинает мигать светодиод HL2. При последующих нажатиях поочерёдно мигают остальные светодиоды поля, а после светодиода HL9 снова мигает HL1. Чтобы сделать ход ("поставить крестик") на выбранную клетку, необходимо удерживать кнопку SB1 нажатой более одной секунды, после чего светодиод перестанет мигать и станет постоянно гореть красным цветом. После хода микроконтроллера игрок выбирает необходимую клетку, как было описано выше, и делает ход сам. Во время выбора клетки игроком уже занятая пропускается, вместо неё мигает следующая свободная.
         В случае победы игрока, через секунду после того как сделан последний ход, на игровом поле высвечивется символ "X" (крестик) красного цвета. Если побеждает микроконтроллер, то высвечивается символ "0” (нолик) зелёного цвета. Ничья отображается символом "Н" (ничья) оранжевого цвета, т. е. в каждом светодиоде зажигаются оба кристалла, красный и зелёный. Для начала новой игры необходимо нажать на кнопку SB1.

    Внешний вид устройства

         Для переключения режима игры нужно одновременно удерживать нажатыми более секунды кнопки SB1 и SB2. Переключение возможно после подачи питания, а также после завершения каждой партии в обоих режимах. После перехода в режим игры для двух игроков на игровом поле высвечивается символ "+" (плюс) красного цвета. Для начала игры необходимо нажать на кнопку SB1 или SB2, соответственно, первым ходит тот игрок, кто раньше нажмёт на кнопку. То же правило справедливо для начала любой следующей партии. Здесь также кнопкой SB1 осуществляется ход крестиками, которым присвоен красный цвет, а кнопкой SB2 — ноликами, соответственно, зелёного цвета свечения. Выбор клетки для крестиков описан выше, для ноликов справедливы те же действия, с одной разницей — после нажатия на кнопку SB2 начинает мигать светодиод HL9, при следующем нажатии — HL8, т. е. светодиоды переключаются в обратном направлении. Отображение результатов, как в первом режиме. Если в течение четырёх минут нажатий на кнопки не было, устройство переходит в режим пониженного энергопотребления, микроконтроллер отключает все светодиоды и переходит в спящий режим. Он "просыпается" после нажатия на кнопку SB1, и устройство возвращается в прежнее состояние.
         Все детали смонтированы на двусторонней печатной плате из фольгированного текстолита толщиной 1,5...2 мм, чертёж которой показан на рис. 2. В устройстве применены резисторы для поверхностного монтажа типоразмера 1206, оксидный конденсатор — импортный, С2 — керамический К10-17. Светодиоды L-59EGW можно заменить двухцветными с общим катодом и диаметром корпуса 5 мм. Кнопки SB1, SB2 — тактовые SWT 6x6-7, TS-A3PS-130 или серии ПКн159. Внешний вид смонтированной платы приведён на рис. 3. Источник питания — стабилизированный сетевой блок питания напряжением 3,7...5 В или батарея из трёх гальванических элементов типоразмера АА или ААА.
    Материал взят из: Журнала Радио 2013 №9

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

    krestnolnamikrok.rar [7,61 Kb] (cкачиваний: 351)

    Комментарии