PC Hardware Input/Output Port: Keyboard

The keyboard scan codes you see listed in Books and FAQs and so forth are NOT current for a MFII (101-key expanded) keyboard. The Linux source code does document all this.

Typical data transfer speed from the keyboard  is approx. 8kHz . The clock pulses are 60 or 70 uS long so 120uS for the period. The clock rate can differ significantly between  PCs

Many keyboards have automatic XT/AT mode detection. This worked in several different ways. e.g. one keyboard would send a code with a deliberate parity error, and if the host didn't request a re-send it went into XT mode.

Topics:

Michael Hetherington's USB Keyboard demo

Caller ID Keyboard wedge: ddj article and source code

See also:

letter decender? curve? circle? heavy? leftheavy? two parts? topheavy? points?
a A X ? X B 1-2
b B X L ? X 1-2
c C X L X 2
d D X R L? 1-2
e E X X L X X 1-2
f F X L X ? X 3-4
g G X X X RT LB X 1-2
h H X L ? X 3-6
i I X 2-4
j J X X R X 2-3
k K L X 4
l L ? L 2
m M X TL T X X 2-4
n N X TL ? X X 2-3
o O X 0
p P X X LT X 1-2
q Q X X RT RB X 1-2
r R X LT X X 3
s S X 2
t T T X 4
u U X B 2-3
v V T X 2
w W X B 2-4
x X 4
y Y X ? T X 3-4
z Z 2

See also:

Archive:

Uche Nwoko of Multi-Electronics Design Says:

A simple experiment for those looking for, a common keyboard that is capable of encoding 9 key strokes into four binary bit. what I did was to use an IC 74HC147, known as 10 to 4 line priority encoder, as a keyboard to controle a wireless remote system, with this IC I can be able to achive an Output of 4 binary code from 0 to 9, whereby i interface the binary output with any encoder to give me the right data i needed to controle my design.
To construct a keboard from 74Hc147 all 1 to 9 input pins should pull high with 10k resistors, then each of the input is connected to micro push buttons,with this buttons i can be able to sellect any of the input from 1 to 9, if all of the 9 iputs are on high position, the output will be Automatically 0 (Zero), i.e if the output is invert, that is why I did not have 0 button on my keboard, with the help of cd4511 you can be able to read out the output from 7 segment display.
Below is the input and Output Table.

A B C D 1 2 3 4 5 6 7 8 9
1 1 1 1 = 1 1 1 1 1 1 1 1 1 when output invert = 0, if not invert = F
0 1 1 0 = 1 1 1 1 1 1 1 1 0 when output invert = 9, if not invert = 6
1 1 1 0 = 1 1 1 1 1 1 1 0 1 when output invert = 8, if not invert = 7
0 0 0 1 = 1 1 1 1 1 1 0 1 1 when output invert = 7, if not invert = 8
1 0 0 1 = 1 1 1 1 1 0 1 1 1 when output invert = 6, if not invert = 9
0 1 0 1 = 1 1 1 1 0 1 1 1 1 when output invert = 5, if not invert = A
1 1 0 1 = 1 1 1 0 1 1 1 1 1 when output invert = 4, if not invert = B
0 0 1 1 = 1 1 0 1 1 1 1 1 1 when output invert = 3, if not invert = C
1 0 1 1 = 1 0 1 1 1 1 1 1 1 when output invert = 2, if not invert = D
0 1 1 1 = 0 1 1 1 1 1 1 1 1 when output invert = 1, if not invert = E

The above table is exctly how the input and out out look like, if necessary the output can be invert with the help of Ic CD4069 or CD4049, I wish any reader a success, if you want to try this simple design.

Questions: