leoniv.diod.club
|
Цифровая клавиатура с интерфейсом PS/2 Существует очень много проектов и application notes по использованию готовой PC AT клавиатуры с интерфейсом PS/2 в своих проектах. Намного меньше информации про то, как такую клавиатуру реализовать самостоятельно. Этот проект демонстрирует, как можно реализовать дополнительную цифровую клавиатуру с интерфейсом PS/2 на микроконтроллере семейства AVR. ![]() Основой проекта является микроконтроллер ATtiny2313. К нему подключена стандартная клавиатура, имеющая 16 кнопок - цифровые и ряд дополнительных. Каждой кнопке можно назначить любой скан-код согласно стандартной таблице скан-кодов PC AT клавиатуры. В данном примере используются коды цифровых кнопок, а также кнопки "Enter" (кнопка "#") и "Backspace" (кнопка "*"). Кнопка "Backspace" работает здесь несколько нестандартно, одно нажатие удаляет все введенные перед этим символы. При необходимости логику работы можно изменить. ![]() Принципиальная схема особенностей не имеет. Часть портов микроконтроллера U1 используется для сканирования матрицы клавиатуры, которая подключается через разъем XP1. Подавление дребезга производится программно. Микроконтроллер эмулирует интерфейс PS/2, который имеет сигналы DATA и CLOCK. Клавиатура подключается к компьютеру через разъем XP2. Если кабель подключения клавиатуры будет длинный, на линиях DATA и CLOCK надо предусмотреть элементы защиты. Через этот же разъем клавиатура получает питание 5 В, светодиод VD1 индицирует его наличие. ![]() Конструктивно контроллер клавиатуры выполнен на односторонней печатной плате размером 34.5 х 32.0 мм. На плате установлен разъем XP3 для внутрисхемного программирования микроконтроллера. При программировании нужно установить fuse-биты следующим образом:
Остальные fuse-биты равны единице. Используется внутренний RC-генератор на 8 МГц без дальнейшего деления частоты (CKDIV8 = 1). Проверить правильность установки тактовой частоты можно осциллографом, на всех линиях матрицы кнопок должен быть меандр с периодом 4 мс. References:
Downloads:
![]() ![]() ![]() ![]() |
Ридико Леонид Иванович
www.leoniv.diod.club e-mail:
wubblick@yahoo.com
|