Проекты с использованием контроллера Arduino



Download 12,28 Mb.
Pdf ko'rish
bet71/215
Sana22.02.2022
Hajmi12,28 Mb.
#109180
1   ...   67   68   69   70   71   72   73   74   ...   215
Bog'liq
Petin V A - Proekty s ispolzovaniem kontrollera Arduino Elektronika 2014


Глава 9. Подключение клавиатуры и мыши 
125 
9.3. Подключение клавиатуры 
В далекие 1990-е годы мне пришлось разрабатывать клавиатуру XT/AT. От этого 
времени осталось только воспоминание о множестве малопонятных последова-
тельностей байтов, отсылаемых из клавиатуры в компьютер. Было бы интересно, 
насколько изменился протокол для клавиатуры PS/2. Изучение скудных материалов 
по теме в Интернете, а также анализ полученных кодов из подключенной к Arduino 
PS/2-клавиатуры позволил выявить следующее. 
На каждую принятую от контроллера команду (или — проще сказать — на каждый 
принятый байт) клавиатура должна обязательно ответить одним из следующих
байтов: 

0xFA
— подтверждение об успешном приеме

0xFE
— команда принята с ошибкой — вероятно, это ошибка циклической кон-
трольной суммы (CRC). 
При получении от контроллера команды 
0xFF
(начальная установка) клавиатура 
отвечает 
0xFA
, а затем сбрасывается и посылает в ответ байт 
0xAA

В клавиатуру контроллер может послать следующие команды: 

0xED
— зажечь или потушить светодиоды CAPS/NUM/SCROLL. Если клавиату-
ра принимает эту команду, то она не пошлет более никаких ответов до тех пор, 
пока компьютер не пришлет следующий байт — параметр, который определяет 
битовую маску: один бит — это один из светодиодов. Битовая маска для свето-
диодов клавиатуры определена так: 
• #define KEYBOARD_CAPS_LOCK_ON 4 
• #define KEYBOARD_NUM_LOCK_ON 2 
• #define KEYBOARD_SCROLL_LOCK_ON 1 

0xF3
—– это тоже двухбайтовая команда. После этой команды следует параметр, 
определяющий частоту повтора кодов при нажатой клавише и интервал времени 
между нажатием и началом повторов. 
После подачи напряжения питания клавиатура посылает код 
0xAA
и немедленно го-
това к работе. Она сразу, без дополнительного программирования, готова посылать 
коды нажатых клавиш. По умолчанию клавиатура посылает на нажатие клавиши 
один байт-код, а на отпускание клавиши два байта. Первый байт в кодах отпуска-
ния клавиши — это префикс отпускания 
0xF0
. Например, если нажать и отпустить 
клавишу <1>, то клавиатура пошлет последовательность кодов 
0x16

0xF0

0x16

Существует еще так называемый 
дополнительный код — это префикс 
0хE0
. Он по-
сылается вместе с кодами дополнительных клавиш. Например, при нажатии кла-
виши  (нецифрового блока) отправляется последовательность 
0хE0

0x70
,
0хE0
, а при ее отпускании 
0xF0

0x70

До сих пор все более или менее понятно, но, как оказалось позже (при написании 
редактора текста — см. 
разд. 9.4), это еще не все... Получив от контроллера коман-
ду зажечь светодиод — например, Num_Lock, клавиатура зажигает соответствую-


126 
Download 12,28 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   215




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish