Question:
how does the computer able to take the words entered on a keyboard and translate them into digital information
5r1o5n0
2006-11-11 14:01:46 UTC
how does the computer able to take the words entered on a keyboard and translate them into digital information
Three answers:
robin_graves
2006-11-13 20:58:49 UTC
Hi there:



You have a really interesting question here.

WIth a long, but interesting answer.

Instead of dealing with "words" typed in to

a keyboard, I will start at the very beginning with

simple KEYS being pressed on the first IBM keyboard.



The typical "IBM" or "PC" keyboard, is, surprisingly,

an entire computer. The first keyboards offered in the

PC, the XT and the AT, had a complete microprocessor

CPU in them, with RAM, ROM, I/O, etc., which was

often MORE powerful than ENTIRE earlier, home computers !



The first PC keyboard used a CPU called the 8048, then the

8049, and clone keyboards would use any CPU they wanted,

typically, a programmable chip, ( like a 6805 series ) with a

CPU with ROM ( Read Only Memory ( to hold the instructions on how to work the keyboard ), and RAM, to store temporary keystrokes in a buffer, and I/O ( input / Output pins to send or receive the information TO or From the computer ).



The first PC used another chip on the COMPUTER end to

receive the data sent from the CPU on the keyboard, called

an 8255 PPI (Programmable Peripheral Interface ).

The first PC could ONLY SEND data from the keyboard, while

now, the Keyboard can not only send keyboard data to the

computer, but the computer can send back information, such

as TURN ON the Capitals LED light, the Number Lock,

and the Scroll Lock. As you know, there are now hundreds of

extra keys on many " multimedia " keyboards, but, the

operation is still the same -- as follows.



When you press ANY key on a keyboard, you are closing a

switch of some kind, typically a (conducting) rubber button presses on 2 traces, shorting the traces out, allowing electricity

to go across the button area, to a pin on the keyboard CPU

INPUT pins.



SInce there are 84 to 101 typical keys, and even more on the

new keyboards, this could mean that there would have to

be hundreds of buttons. To lower the traces or wires on the

keyboard, the buttons are on a grid of rows and columns.



Take an example of just a 6 row, by 10 columns grid.

There are 6 wires running from left to right, under each

key, and there are 10 rows of wires running from top to bottom.

If the rows are numbered R1 to R6,and the columns are numbered C1 to C10 from top to bottom, if a button over R1 and C1 is pressed, the CPU on the keyboard sees a short on R1/C1 ( just for example, I will call this button F1 ). The key under F1

would be the number 2, or R2/C1, and under that would be the

letter W, or R3/C1 - look at your keyboard to see what I am

referrring to. ( F1,2, W ).



The keyboard CPU has no idea what " W " or " 2 ", are, and

doesn't care. It just has a simple program that tells it,

-- IF R3/C1 switch is shorted, send a code on the wire to

the computer, HEXadecimal, 11 ( 0001 0001 in binary ). The keyboard notifies the computer that there is a character on the keyboard being sent, by interupting the Computer's CPU ( 8088 or Pentium, etc.), with IRQ 1 ( Interupt Request 1 ), and the

Computer stops what it is doing to look at the data being sent

to the motherboard's keyboard PPI 8255 chip. The data sent from

the keyboard CPU to the 8255 keyboard reciever chip is sent in

11 data bits. ( 01001001010, 11100100100, etc. ). This code

is sent, simply as zero = NO volts or ground, and " ONE " =

+5 volts -- much like morse code, or ON, OFF, ON, OFF etc,

until all the data is sent. There is one wire on the keyboard

cable that is the CLOCK PULSE, so that the " ONs" and "OFFs "

that are recieved, are at a specific time, and a code of

" Off Off Off Off, is timed into 4 specific characters, and the

8255 receiver knows there are 4 character pulses, not just one

" Off " ) The 8255, has no idea what " W " is, and does not care - it just gives the information to the motherboard CPU to take care

of. In the first PCs, the monitors were Green screen, TTL (

Transistor, Transistor Logic ) screens. All they could do was

SHOW single characters -- the first PC was designed from a WORD Processor used by Office Secretaries, so there was no need of color or graphics on typical " typewriter ".

SO, let's recap. You press a button. The keyboard CPU sees a

row and colums switch is shorted, and sends an 11 bit code for

Row3/ Column1, to the motherboard 8255 chip, and the

motherboard CPU is interuppted, and looks at the data on the

8255.



Now, the CPU has an operating system ( DOS 1, DOS 2, Windows 3.0, Windows 95, WIndows XP, etc. ), that has instructions for the CPU, when it gets keyboard code Hexadecimal 11, to " GOTO " a section of memory, in ram, and look up a set of values. In the 8088, this section of ram is a stack of 8 bit data bits.



The section of 8 bit data bits, that corresponds with code 11,

would look something like :





0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 0 0 1 0 0 1

0 0 1 0 1 0 1 0

0 0 1 1 0 1 1 0

0 0 1 0 0 0 1 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0



If you look at the arrangement of the " 1 "s in the memory

locations, you will see the letter " W ".



The motherboard CPU, takes this memory look up table, and

DUMPS the information on the Green TTL monitor, exactly as

is listed -- a " 0 " ( zero ) is a blank spot on the monitor,

and a " 1 " ( one ), is a dot.



On a blank screen, the CPU would write dots on the screen

like:

( _ is a blank, and @ is a dot )





_____________

_____________

_@___@___@

__@__@__@_

__@@_@@__

___@___@___

____________

____________







And you would see the letter " W " on the screen.

Note that neither the keyboard CPU, nor the Motherboard

keyboard receiver chip, nor the CPU, nor the monitor,

know, or care, what a " W " is. They all just work with

One's and Zero's and move the data around.



The biggest number a computer can work with, is " 1 ", ( one )

and the smallest number it knows is " 0 ", ( zero ).



The operating system tells the computer how to put dots on

the monitor screen, and how to send DOTS to a printer - that

is all. Very simple.





For modern computers, with colour and graphic pictures, the

same thing applies.There are more dots. They can be in color. Instead of using just 8 bits to hold a row of single dots ( like in the W ), each DOT can have 28 or 32 or 64 BITS-- just to say what that one little dot is ! And instead of having only a few thousand

dots on the screen, there are now millions and billions of dots on

the monitors, so that you can create complex pictures and

printing. But the same principle applies. The computer, the

keyboard and the monitor have no idea what a complicated,

colored dot pattern is - they all just move the binary bits

from one to the other.



It is really simple. Computers are simple as well ( can you

count from zero to one ? - that's all they can do ! )



Hope this helps understand how typing in a letter on a keyboard

puts the letter on your monitor in front of you, and how,

if you click on PRINT, the printer types the letter on paper.





robin
EM
2006-11-11 22:11:17 UTC
This is a long long question ..

But a consice answer is that when you press the button of #6 the computer translates it into a Digital number with 8 number , each one will be either( 0 or 1 ) , it will be like that : 00000100 , or something like that , and when you type the letter B it will also translate it to : 01001011 ( this number is not true ) , and go on ..
MJPM
2006-11-11 22:16:31 UTC
When you press a key on the keyboard, it has value attributed to it (known as ASCII code, the code of each alphanumeric and symbol character in binary) and sends it to what is known as a Keyboard Data Register. From there, the computer takes that information and, depending upon the situation, either displays it as a character on the screen (an Echo) or stores it as data where the character is meant to go.



A quick search of the term ASCII (pronounced like Ask-Key) will show you what exactly the data is for each character. For instance, the number "1" in ASCII is x0031 (hexadecimal 0031), or in binary 0000 0000 0011 0001.


This content was originally posted on Y! Answers, a Q&A website that shut down in 2021.
Loading...