Az IBM PC-k billentyűzete egy önálló mikroprocesszorral rendelkező "intelligens" egység, mely a COM portokhoz hasonló soros átvitellel kapcsolódik a géphez.
A billentyűzet gombjai három nagy csoportra oszthatók. Az első - egyben legnagyobb - csoportot az alfanumerikus blokk alkotja. Ez tartalmazza a betűknek, számoknak és egyéb írásjeleknek megfelelő billentyűket. Általában ebbe a csoportba szokták sorolni a speciális ún. shift (SHIFT, CTRL, ALT) módosító-billentyűket is, valamint az ENTER, BackSpace, TAB és Caps Lock gombokat is. A második csoportot a billentyűzet jobb oldalán elhelyezkedő, a pénztárgépek és számológép billentyűzetének mintájára kialakított numerikus blokk alkotja. A harmadik blokk az XT billentyűzet esetében 10, míg AT kategóriájú gépeken 12 gombot tartalmazó funkció-billentyűk csoportja (F1-F12). Ezek AT billentyűzeteken általában azok tetején egy sorban, míg XT gépeken a numerikus blokk melett két oszlopban helyezkednek el. A negyedik csoportot a kurzorvezérlő gombok alkotják melyek csak AT billentyűzeteken kerülnek kialakításra a fő és a numerikus blokk között.
Az eredeti XT billentyűzet így összen 84 gombból áll, melyből a numerikus blokknak kettős funkciója van, hiszen ennek segítségével lehet a kurzormozgató funkciókat is elérni. Az AT gépekhez alkalmazott billentyűzeteknek kettővel több funkció-gombja és különálló kurzormozgató billenytűi is vannak, melyek az összes gombok számát 101-re növelik. A 102 gombbal szerelt billentyűzetekenk egy speciális, az Alt gombéhoz hasonló funkciót ellátó ún. Macro billentyű is található. A legújabb - a Microsoft Natural Keyboard - mintájára kialakított 106 gombos billentyűzetek plusz gombjai csak a Windows 95 és Windows NT 4.0 operációs rendszerekben használhatók ki.
A beépített mikroprocesszor feladata a billentyűzet-mátrix elemeinek lenyomásakor és felengedésekor a megfelelő scan-kódok generálása, valamint azok pufferlése és továbbítása a számítógépben elhelyezett billentyűzet-illesztő felé. Az AT típusú billentyűzetekben elhelyezett mikroprocesszor ezenkívül bizonyos elemi parancsok fogadására és azok végrehajtására is képes.

A billentyűzet működése

A billentyűzet gombjai kábelezés szempontjából egy ún. billentyűzet-mátrixban vannak elhelyezve. Egy meghatározott billentyű lenyomásának vagy felengedésének észlelésekor a belső mikroprocesszor egy, az adott billentyűt egyértelműen azonosító ún. scan-kódot küld a számítógép felé. Ugyanezen billentyű felengedésekor a mikroprocesszor egy másik, felengedési scan-kódot továbbít a billentyűzet-illesztő áramkör felé. Ezáltal részint kiküszöbölhető a több billentyű közel egyidejű lenyomásából adódó jelenség, a karakterek "elvesztése", másrészt rendkívül leegyszerűsödik a módosító-billentyűk (Ctrl,Alt,Shift) kezelése is. A megfelelő gomb vagy kombinációk értelmezése és feldolgozása így teljesen a számítógép billentyűzet-kezelő rutinjának feladata.
Hagyományos rendszerekben a billentyűzet minden egyes gombjához a lehetséges módósító-kombinációknak (pl. Ctrl+billentyű, Shift+billentyű, stb.) megfelelő számú billentyűzet-kód tartozik, melyeket - kialakítástól függően - azok lenyomásakor vagy felengedésekor továbbít a billentyűzet a gép felé. Ezzel szemben a PC-k billentyűzetében egy jóval fejletteb technikát alkalmaztak kifejlesztői a lenyomási és felengedési kódok bevezetésekor.
Ha az egyik billentyű (pl. Alt) lenyomva tartása mellett megnyomunk egy másik gombot is, akkor a számítógép az első billentyű lenyomási, valamint a második billentyű lenyomási és felengedési kódját fogja megkapni. A gép nyilvántartja a módosító billentyűk állapotát és mivel a második billentyű lenyomásának pillanatáig még nem kapta meg az első gomb felengedési kódját, így tudni fogja, hogy a két billentyűt "egyszerre" nyomtuk meg és egy ennek megfelelő billentyű-kódot fog az alkalmazás felé továbbítani. Bár a rendszer-szoftverek (BIOS) csak a Ctrl, Shift és Alt (esetleg Macro) gombokat kezelik külön, a fenti elv alapján gyakorlatilag bármelyik billentyű működhetne módosítóként, hiszen pontosan úgy viselkednek mint az összes többi billentyű.
A módosító-billentyűkhöz hasonlóan tartja nyilván a BIOS a Caps, Num és Scroll Lock valamint az Insert gombok állapotát is. Ugyanakkor sajnos a standard billentyűzet-kezelő rutin meglehetősen sok - főleg a Ctrl gomb lenyomva tartása mellett kiváltható - kódot egyszerűen "lenyel", azaz a megfelelő kombinációk leütésekor semmilyen, vagy a Ctrl állapotától független kódot továbbít az alkalmazások felé. Érdekes módon a BIOS nem nyújt lehetőséget a numerikus és a fő-blokkban elhelyezett két perjel (/) megkülönböztetésére sem, amikor az ugyanezen blokkokban szintén két példányban elhelyezkedő csillag(*), plusz(+) és minusz (-) gombok lenyomásakor különböző kódokat generál.

Kommunikáció a bilentyűzet és a gép között

A számítógép billentyűzet-kezelő rutinjának minden gomb lenyomását hibátlan átvitel esetén egy FAh, paritás-hiba fellépésekor pedig FEh kóddal kell nyugtáznia. Ez utóbbi hatására a billentyűzet az utolsó bájtot újra elküldi.
A billentyűzet reset után folyamatosan hibás paritással AAh bájtokat továbbít a számítógép felé. Amikor a számítógép a POST rutin során elér a billentyűzet teszteléséhez észleli a hibát és egy FEh bájtot küld a billentyűzetnek kérvén az utolsó bájt újraküldését. A billentyűzet ekkor abbahagyja a hibás AAh bájtok küldését és az öntesztnek megfelelően AAh (OK), FCh  vagy FDh (hiba) kódot küld vissza az illesztőnek. Erre, az első látásra bonyolultnak tűnő inicializálásra a számítógép és a billentyűzet resetjének aszinkronitása miatt van szükség, ugyanis egy lassabb POST rutin könnyen "lemaradhatna" a "csak úgy", közvetlenül a belső reset után elküldött önteszt-kódról .