目前鍵盤連接介面以PS/2與USB為主，而這2種介面的傳輸方式與內容都不相同。在前一單元有提到，鍵盤控制器（Keyboard Controller）由行列資訊查出是哪顆鍵被觸發後，就將按鍵資訊傳輸到電腦中。這只能算是簡略的說法，其實在這段過程中，鍵盤還做了許多事情。
鍵盤控制器（Keyboard Controller）大部分時間都在掃描鍵盤矩陣，以及監控鍵盤是否有更動按鍵狀態。當按鍵被按下或將按鍵放開時，都會送一組掃描碼（Sacn Code）給電腦。這組掃描依不同情況分為2種：Make Code與Break Code。Make Code是在使用者按下按鍵時立即送出，Break Code是使用者放開按鍵時送出。這2種的內容都是獨一無二，方便給電腦主機能夠準確辨識之用。
送出Mack Code與Break Code訊號，得要先找到使用者是按下哪顆鍵才行。鍵盤無論採用何種鍵位配置，都會針對每一顆按鍵定義一個鍵盤號碼（Key Number）。當使用者壓下按鍵時，鍵盤控制器由行列資訊找出哪顆按鍵被壓下，再從鍵盤表中查出此按鍵位置所代表的是哪一個按鍵訊號。這中間過程無論是在PS/2介面或USB介面下都是相同的，但之後查表送出的訊號就有所不同了。
▲無論是101鍵與102鍵的按鍵配置，每個按鍵都會有1組按鍵號碼。
知道按鍵位置之後，便會從Scan Codes Tables（掃描碼表格）中查詢Scan Codes（掃描碼）並送出訊號。其中Scan Codes Tables有分為Set 1、Set 2、Set 3共3組，一般系統預設是查詢Scan Codes Tables Set 2。
在Scan Codes Tables Set 2中，鍵盤主要鍵位區Make Code每顆按鍵都是由1組8-bit位元碼（1Byte）組成，Break Code為2Bytes，其中Break Code第1個Byte皆為十六進位的F0，第2個Byte則與Mack Code相同。在主要鍵位區中，只有右側Ctrl鍵與右側Alt鍵不同，分別與左側Ctrl鍵與左側Alt鍵相比較，在Make Code部分多十六進位的E0，Break Code多十六進位的E0F0。
擴展功能鍵（Extended Keys）如鍵盤中間九宮格區（Insert、Delete等）、方向鍵區與右側數字鍵區，與Number Lock關閉時的右側數字鍵區功能重複。換句話說，因為擴展功能鍵常會隨著Shift鍵與Number Lock鍵的開啟與關閉而影響輸出結果，所以獨立定義出一組規則，不會與主要鍵位區相同。在Make Code會增加十六進位的E0，Break Code多出十六進位的E0F0。另外數字鍵區「/」、PrintScreen鍵、Pause鍵，這些也是有獨立的Make Code與Break Code表示。
當電腦接收到鍵盤所送出的掃描碼，會再轉成ASCII。最後這部分是由系統中驅動程式來完成，以便套用多國語系的設定。用PS/2介面的鍵盤運作狀況大致是如此，若用USB介面，就又是下面這種情況。
▲IBM技術參考手冊有將每一個按鍵的Make Code與Break Code一一條列出來。