Авторизация


...

Кто на сайте?

Сейчас 105 гостей и один зарегистрированный пользователь на сайте

  • oegerwilm

Статистика

-Посетители : 23825
-Материалы : 209

Пользователь сайта продает...

  ENC28J60

Пользователь сайта покупает...

Вариант создания клавиатуры без прерываний

Автор: Александр Милевский Просмотров: 4262

   И подключается к задействованным под шину данных индикатора портам.

Например, если клавиатура 4х4, 4 вертикальные линии сетки клавиатуры и 4 горизонтальных линии. Сильно описывать тяжело, посмотрите схемы.

Одно условие, линии работающие на вход надо подключать к порту В, чтобы включить подтягивающие резисторы.

(Конечно можно и другие, но резисторы придется использовать уже внешние.)

Порты подключенные к горизонтальным линиям настроены на выход, к вертикальным на вход. (Горизонталь и вертикаль, конечно относительно.) Опрос производится «нулем», что удобно, если кто-то умудрится нажать все кнопки клавиатуры одновременно, последствий (типа сгорания порта) никаких.

Все классически, поставили «0» на горизонтальной линии, к ней подключено 4 кнопки, если кнопка нажата, на вх. вертикальной линии , куда подключена кнопка тоже ноль. Если не нажата, то 1( резисторы). Если нажата две кнопки или больше, контроллер программно последовательно  перебирает 0 на горизонтальных линиях, определит только последнюю кнопку по счету из нажатых. Конфликта не будет.

Для устранения дребезга, опрос клавиатуры можно производить, зациклить, на какое-то время. Это на усмотрение, но 20мс работает железобетонно.

После опроса клавиатуры, есть варианты, кнопка нажата или не нажата  ни одна.

Надо предусмотреть возврат из всех вариантов. Это уже забота автора программы.

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

Прилагаю два варианта схем, и фрагмент программы для 16 кнопок.

1 вариант, это черновая схема измерителя АЧХ, освобождал RB7,6 для отладчика, но как пример информативен.

 

4knop

 

2 вариант. с индикатором на основе HD44780, четырехпроводный интерфейс и 4 кнопки

 

4knop

Здесь исходный текст программы

 

можно обсудить на форуме

Случайные статьи....

Prev Next

Копирование таблицы МАХ7456.

16-03-2014 Александр Маюнов

Копирование таблицы МАХ7456.

  Бывает так, что радиолюбитель создавая свое электронное детище допускает ошибки в монтаже или разводке плат, чаще всего это приводит к фатальному сценарию, выходу из строя дорогостоящих радиоэлементов. Всё больше отдельных микросхем создаются на логике производителя, или программах распространителей этих...

Программные таймеры

23-09-2011 Alex

Программные таймеры

  Программные таймеры. Что это, и с чем их "едят" Что такое программный таймер? Это таймер-счётчик, основой которого является системный таймер. Т.е., другими словами, это обычная переменная, считающая переполнения системного таймера. Программному таймеру, как минимум, нужен ещё один бит-флаг, управляющий(указывающий) состоянием(на состояние)...

Программирование c нуля в AVRStudio 5 (ч.7)

07-04-2012 Радик

Программирование c нуля в AVRStudio 5 (ч.7)

Продолжим разбор теоретических основ, без которых невозможно полноценное создание программ.Основной синтаксис AVRASM совместим с AVRASM2 с исключениями, отмеченными ниже:- Ключевые слова.- Директивы препроцессора.- Комментарии.- Продолжения строк.- Строки и символьные константы.

CPFSLT

02-02-2012 Super User

CPFSLT Операция сравнения f с W, пропуск след. команды если f<.W Синтаксис: [label] CPFSLT f,a Операнды: 0<=f<=255 a Е [0,1] Операция: (f)-(W), пропуск след. команды если (f)<(W) Изменяет флаги: Нет Код: 0110 000a ffff ffff Описание: Сравниваются данные регистра f с содержимым регистра W. Если f<.W, вместо следующей по списку команды выполняется пустая...


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru