Самый недорогой и простой вариант ввода данных в устройство на микроконтроллерах, это считывание состояния тактовых кнопок. Для подключения к порту микроконтроллера достаточно одного резистора. А если порт позволяет подключать встроенные подтягивающие резисторы, то подключение имеет элементарно простой вид:

catcatcat_tact_01.png

Самый эффективный вариант опроса кнопок и формирования управляющих флагов, это когда обработка выполняется через прерывания. Для семейства PIC24 (MPLAB® XC16) это легко реализовать через прерывания по изменению состояния на входе порта B.

Для примера возьмём простую клавиатуру из 3 тактовых кнопок, из схемы на рисунке, с аналогичным подключением.

Первое что необходимо это для себя определить, какие флаги состояния нам необходимо получит при выполнении события по нажатию тактовой кнопки. При нажатии на кнопку PB1 – должен установиться флаг MINUS, для  PB2 – PLUS, для PB3 – FUNC. Дополнительно опишем флаги предыдущего состояния кнопок, они нам понадобиться, что-бы программа могла формировать только типа один импульс при нажатии кнопки, а не последовательность.

Следующее – выполним настройку портов, выполнить настройку выводов порта – это делается при инициализации в начале программы.

После этого надо создать саму функцию прерывания, а именно в этой функции будут описываться реакция на нажатия кнопок, у нас самое простое, при нажатии программа должно получить 1 импульс независимо от того как долго нажата кнопка.

Из программы прерывания мы получаем флаги состояния кнопок, эти флаги легко обработать в основном цикле программы например так:

Т.е. как видно, все очень просто!



Это может быть интересно


  • Проект с использованием MCC часть 01Проект с использованием MCC часть 01
    Для изучения MCC я выбрал простой контроллер PIC16F1509. Выбор его был обусловлен богатой новой периферией которую можно изучить. Для начала была собрана схема на макетной плате Внешний вид собранной схемы …
  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
    Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще можно увидеть …
  • NeoPixel LED и PIC18NeoPixel LED и PIC18
      Еще раз об управлении светодиодами на драйвере WS2812 и ему подобных. Как известно эти светики управляются по однопроводной шине. Основная особенность, что программно можно описать передачу данных, но это …
  • WiFi ESP8266 – AT команды связанные с функцией Wi-FiWiFi ESP8266 – AT команды связанные с функцией Wi-Fi
    AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание  1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 AT+CWMODE_CUR Проверка, …
  • Стабилизатор тока для светодиодов SN3350Стабилизатор тока для светодиодов SN3350
    SN3350 ближайший аналог ZXLD1350 Как собрать готовый вариант, читайте во второй части – http://catcatcat.d-lan.dp.ua/stabilizator-toka-na-sn3350-chast-2/ 40V  драйвер светодиодов с внутренним ключом  SN3350 – импульсный понижающий преобразователь, разработанный для того, чтобы эффективно управлять одним или группой параллельно-последовательно …
  • Система AT команд версии V2.0 для ESP8266 и ESP32Система AT команд версии V2.0 для ESP8266 и ESP32
    Появление нового модуля на базе ESP32 заставило систематизировать систему AT команд, а так же систему обновления и для модулей на базе ESP8266. Начиная с версии v2.0 в ESP8266 внедряется прошивка …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети “Киевстар”. Их …
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя датчиками. Теперь …
  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Переработанные файлы от Microchip, библиотека для работы с Core Timer. Метки:PIC32MZ
  • ch-светомузыка от теории до реализацииch-светомузыка от теории до реализации
    Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического преобразования или …



Translate »

Copyright © Catcatcat electronics 2013-2020. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com