Клавиатурный интерфес
|
|
vladh5916 |
Дата: Ср, 27.04.2011, 14:52 | Сообщение # 1 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
Недавно "путешествия" в И-нете я нашел сайт: http://wiki.picbasic.org/index.php?n=ExampleCode.Keypad Там была вот эта интересная статья. Мне показалась, что она будет интересна многим и я сделал её перевод, который здесь и предлагаю на всеобщее обозрение. Странно. Я думал, что эта статья понравится многим, тем более, что подход к написанию интерфейса подойдет для многих байсик-компиляторов. А вижу только всеобщее равнодушие. Ведь при таком построении многие цепи можно использовать в нескольких назначениях. Например для клавиатуры и для ЖКИ.
Сообщение отредактировал
vladh5916 - Чт, 28.04.2011, 21:56
|
|
|
|
mikhail09p |
Дата: Чт, 28.04.2011, 22:27 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
vladh5916, ну почему всеобщее равнодушие?!! Я, например, использовал похожий способ опроса клавиатуры в кодовом замке. http://picbasic.ru/forum/5-457-2 Помогали все, кто мог и желал, за что большое спасибо. Не думайте, что если не восхищаются люди, то это не нужно, обычно мы (они) тихо работаем Не пропадёт наш (Ваш) труд.
Сообщение отредактировал
mikhail09p - Чт, 28.04.2011, 22:36
|
|
|
|
vladh5916 |
Дата: Пт, 29.04.2011, 05:34 | Сообщение # 3 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
Спасибо Михаил за внимание. Но в Вашей ссылке используется стандартная команда Inkey (для стандартного подключения клавиатуры), а в примере переведенной статьи, подключение может быть свободным, цепи матрицы клавиатуры могут идти не по порядку и на разные порты. Я почему обратил на неё внимание? У меня под рукой оказалось готовое изделие, т.н. промышленный контроллер MIAC от Flowcode: http://www.matrixmultimedia.com/miac.php Я купил эту бодягу, чтобы использовать на работе для решения одной важной производственной задачи. Но в арсенале компилятора Flowcode, который обслуживает это изделие нет математической операции логарифмирования и возведения в степень (для AVR и ARM правда есть но там стоит PIC18F4455), а эти операции мне нужны для обработки результата. Поэтому решил написать программу на Протоне, который мне знаком. Но выясняется, что Протон стандартными средствами не может работать с таким подключением клавиатуры. Правда там еще и ЖКИ подключен не стандартно. Поэтому скорее всего буду писать на MikroBasice. Он все это умеет делать. Вот из этих рассуждений я и вышел на описываемую статью.
|
|
|
|
mikhail09p |
Дата: Пт, 29.04.2011, 22:15 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Code klava: key = 0 ' Обработка клавиатуры col1 = 1 If raw1 = 1 Then DelayMS 100 key = 1 ' 1 EndIf If raw2 = 1 Then DelayMS 100 key = 4 ' 4 EndIf If raw3 = 1 Then DelayMS 100 key = 7 ' 7 EndIf If raw4 = 1 Then DelayMS 100 key = 42 '* EndIf col1 = 0 col2 = 1 If raw1 = 1 Then DelayMS 100 key = 2 ' 2 EndIf If raw2 = 1 Then DelayMS 100 key = 5 ' 5 EndIf If raw3 = 1 Then DelayMS 100 key = 8 ' 8 EndIf If raw4 = 1 Then DelayMS 100 key = 10 ' 0 EndIf col2 = 0 col3 = 1 If raw1 = 1 Then DelayMS 100 key = 3 ' 3 EndIf If raw2 = 1 Then DelayMS 100 key = 6 ' 6 EndIf If raw3 = 1 Then DelayMS 100 key = 9 ' 9 EndIf If raw4 = 1 Then DelayMS 200 If raw4 = 1 Then DelayMS 500 key = 35 '# EndIf EndIf col3 = 0 Return Вот подпрограмма опроса клавиатуры. Пост 39.
|
|
|
|
vladh5916 |
Дата: Сб, 30.04.2011, 06:43 | Сообщение # 5 |
Группа:
Удаленные
Ранг:
Сообщений:
Статус:
|
Прошу прощения за мою невнимательность. Да, действительно, вначале обсуждаемой схемы было одно, а потом логика рассуждений изменилась. Как мне кажется жаль, что это решение не было никем выделено. И следовательно мало кто мог воспользоваться подобным решением в дальнейшем. Еще раз приношу свои извинения.
|
|
|
|
mikhail09p |
Дата: Пн, 02.05.2011, 23:08 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Да всё нормально, не надо извинятся. Будет время, выложу свой кодовый замок в виде статьи. Тем более, что он изменился в лучшую сторону. Не бог весть что, но кому нибуть да и сгодится.
|
|
|
|
fedonin |
Дата: Ср, 21.05.2014, 00:40 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 08.03.2014
Статус:
Offline
|
Добрый вечер всем! Может, не ко времени, хочу поделиться своим примером обработки матрицы 4х4 с последовательным вводом четырех (можно больше) цифр, отображением их на экранчике, возможность автоповтора ввода, либо отсутствие автоповтора. Думаю, что мой пример прост и нагляден. При каждом нажатии в младший разряд вводится цифра, соответствующая нажатой клавише, а уже набранные цифры сдвигаются влево. Если все разряды заполнены, ввод прекращается, независимо от нажатия клавиш, набранное число на экранчике остается. И одно замечание про порты: если используется не PORTB с включенными подтягивающими резисторами - можно сэкономить на 4 резисторах, ибо разряды 0-3 у InKey - выходы, им подтягивающие резисторы не нужны.
|
|
|
|