V vseh naštetih primerih sta matrična tipkovnica in Bascom-8051 idealna za uporabo. Tipkovnici pravimo matrična tipkovnica zato, ker so tipke razporejene v matriko, kar vidimo na sliki 1.
Na sliki 1 vidimo vezavo tipkovnice z 12 tipkami, razporejenih v matrico 3×4. Obstajajo tudi 4×4 matrične tipkovnice, o čemer bo še govora v nadaljevanju. Na sliki 1 vidimo, da vsako tipko definirata dve koordinati, številka vrstice in številak stolpca. Tako se npr. tipke T1, T4, T7 in T10 (ustrezajo karakterjem 1, 4, 7 in *) nahajajo v prvem (levem) stolpcu, tipke T1, T2 in T3 (ustrezajo karakterjem 1, 2 in 3) pa se nahajajo v prvi (zgornji) vrstici. Vse tipke oziroma vsa stikala so odprta oziroma niso sklenjena, dokler nobena tipka ni pritisnjena. Ko pritisnemo tipko, sklenemo stikalo in mikrokontroler prepozna, katero tipko smo pritisnili.
Opis Bascom programa za prepoznavanje 3×4 tipkovnice
Pri programiranju nismo izumljali tople vode. Na domači strani proizvajalca Bascom programskih jezikov je veliko že narejenih primerov programov, med njimi tudi program za 3×4 tipkovnico. Spletno stran najdete na: http://www.mcselec.com/applicat.htm. Program je napisal g. Mike Gill, mi smo ga malce predelali glede na svoje zahteve. Na sliki 2 je prikazan diagram poteka programa.
Na začetku programa najprej definiramo V/I vrata, na katera je spojena tipkovnica. V našem primeru je tipkovnica vezana tako, da so kolone tipkovnice vezane tako, kot je prikazano v izseku programa:
Kolona1 Alias P2.5 ' Definicija kolon
Kolona2 Alias P2.4
Kolona3 Alias P2.3 ' Dodaj se eno kolono za 4x4 tipkovnico
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
In seveda so stoplci vezani takole:
Stolp1 Alias P2.2 ' Definicija stolpcev
Stolp2 Alias P2.1
Stolp3 Alias P2.0
Stolp4 Alias P2.6

Kolona1 = 0 : Kolona2 = 1 : Kolona3 = 1 ' Postavljamo kolone na nic
Vrednost_t = 1 : Debounce Stolp1 , 0 , Sprejeta_t , Sub ' Gremo v subrutino,
ce je tipka pritisnjena
Vrednost_t = 4 : Debounce Stolp2 , 0 , Sprejeta_t , Sub
Vrednost_t = 7 : Debounce Stolp3 , 0 , Sprejeta_t , Sub
Vrednost_t = 11 : Debounce Stolp4 , 0 , Sprejeta_t , Sub ' Tipka *
Ko je na 0 postavljena Kolona1, lahko beremo tipke 1, 4, 7 in *. V našem programu smo postavili vrednost spremenljivke Vrednost_t = 11 zato, da lahko “spoznamo”, kdaj je pritisnjena tipka *. Kot že 
Vrednost_t = 1 : Debounce Stolp1 , 0 , Sprejeta_t , Sub


