THIS SECTION IS UNDER CONSTRUCTION
![]()
![]()
![]()
![]()
Сканирование матрицы клавиатуры
![]()
![]()
![]()
Проблема: нажато сразу много клавиш, ток течет неверно. т.е. может перетекать в другую LINE. Решения: сканировать по 1 LINE за раз добавить диоды
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Интерфейс клавиатуры у PC
![]()
AT-keyboard connector:
![]()
PS/2-keyboard connector:
![]()
--------------------------------- Descripton DIN5 mini-DIN6 --------------------------------- KBD DATA 2 1 GND 4 3 Vcc (+5V) 5 4 KBD SYNC 1 5 NC 3 2,6 ---------------------------------- Клавиатура обменивается с компьютером пакетами по 11-бит имееющими следующий формат: ---------------------------------- Bit Description ---------------------------------- +00 START BIT (Always 0) +01..08 DATA BITS +09 PARITY BIT (Parity must be odd) +0A STOP BIT (Always 1) -----------------------------------
![]()
![]()
В пакетах клавиатура пересылает скан-код клавиши которая была нажата (make-code) или отпущена (break-code).
![]()
![]()
В Break-code установлен старший бит: 39 -> B9 simple E0 1D -> E0 9D E0 2A E0 52 -> E0 D2 E0 AA pause - none break code
Пример scan-кодов: Normal Shift 01 Esc 02 1 ! 03 2 @ 04 3 # 05 4 $ 06 5 % 07 6 ^ 08 7 & 09 8 * 0A 9 ( 0B 0 ) 0C - _ 0D = + 0E BS 0F TAB 10 q Q 11 w W 12 e E 13 r R 14 t T 15 y Y 16 u U 17 i I 18 o O 19 p P 1A [ { 1B ] } 1C ENTER E0 1C ENTER (num) 1D CTRL E0 1D R-CTRL 1E a A 1F s S 20 d D 21 f F 22 g G 23 h H 24 j J 25 k K 26 l L 27 ; : 28 " ' 29 ` ~ 2A L-SHIFT 2B \ | 2C z Z 2D x X 2E c C 2F v V 30 b B 31 n N 32 m M 33 , < 34 . > 35 / ? E0 35 / (num) 36 R-SHIFT 37 * (num) 38 ALT E0 38 R-ALT 39 SPACE 3A CAPS LOCK 3B F1 3C F2 3D F3 3E F4 3F F5 40 F6 41 F7 42 F8 43 F9 44 F10 45 NUM LOCK 46 SCROLL LOCK 47 HOME [7] 48 UP [8] 49 PGUP [9] 4A - (num) 4B LEFT [4] 4C [5] 4D RIGHT [6] 4E + (num) 4F END [1] 50 DOWN [2] 51 PGDN [3] 52 INS [0] 53 DEL [.] 54 SYSRQ 56 MACRO 57 F11 58 F12 5A PA1 5B F13/LWin 5C F14/RWin 5D F15/Menu 63 F16 64 F17 65 F18 66 F19 67 F20 68 F21 69 F22 6A F23 6B F24 6D EraseEOF 6F Copy/Play 72 CrSel 73 Delta 74 ExSel 76 Clear E0 38 R-ALT E0 1D R-CTRL E0 2A E0 52 Ins E0 2A E0 47 Home E0 2A E0 49 Page Up E0 2A E0 53 Del E0 2A E0 4F End E0 2A E0 51 Page Down E0 2A E0 48 Up E0 2A E0 4B Left E0 2A E0 50 Down E0 2A E0 4D Right E0 2A E0 37 Print Scr E1 1D 45 E1 9D C5 Pause (no break code) специальные коды: 00 - Buffer overflow AA - Self test Ok AB 83 - keyboard id E0 - grey key pfix E1 - pfix for not break code F0 - break pfix EE - echo FA - ack FC - self test error FD - self test error FE - resend FF - keyboard error (code set 1) коды для multimedia-клавиатур: E0 01 My Documents E0 05 Messager E0 07 Redo/F15 E0 08 Undo/F14 E0 0A Paste E0 10 Previous Track or IE Back E0 13 Word Online Community (COMPAQ) [people icon] E0 14 Excel Online Compaq (COMPAQ) [Q icon] E0 15 Online Service (COMPAQ) [Bulb icon] E0 16 Log Off E0 18 Open faivorites (Logitech) E0 19 Next Track or IE Next E0 1E Mail (COMPAQ) [Envelope icon] E0 20 Mute E0 21 Calculator [on COMPAQ search] E0 22 Play/Pause E0 23 Spell/F22 [on COMPAQ start button] E0 24 Stop E0 26 Add faivourite (Logitech) E0 2E Volume Down E0 2C Eject E0 30 Volume Up E0 32 WWW Home E0 3B Help/F13 E0 3C My Music E0 3E New/F16 E0 3F Open/F17 E0 40 Close/F18 E0 41 Reply/F19 E0 42 Forware/F20 E0 43 Send/F21 E0 57 Save/F23 E0 58 Print/F24 E0 5E Power Off E0 5F Sleep E0 63 Wake E0 64 My Pictures E0 65 WWW Search E0 66 WWW Faivourites E0 67 WWW Refresh E0 68 WWW Stop E0 69 WWW Forward E0 6A WWW Back E0 6B My Computer E0 6C E-mail E0 6D Media select
Qwerty Dworak Jcuken Qwerty - исторически сложилась пришла с печатных машинок 1878 при быстрой печати - западали буквы. Поэтому старались раздвинуть. Раскладки клавиатуры
![]()
![]()
Qwertz - немецкая модификация qwerty Y и Z поменялись местами и вместо скобок несколько более популярных символов со всякими там умляутами.
![]()
Azerty - французко-бельгийская модификация qwerty A и Q поменяны местами, Z и W - тоже, M,N - подвинуты. Dworak - более эргономичная 1930s. Часто используемые буквы расположены в середине. Скорость печати выше чем у qwerty.
![]()
у русской клавиатуры один и тот-же layout. Он применяется и на Qwerty и на JCUKEN
![]()