Her tuşa bastığında 1 byte lık veri gönderilir. 12 yazdığında ise art arda 1 ve 2 gönderilir. Seri port onu 12 olarak algılamaz. getchr() da zaten 1 byte lık veri alır.
Çözüm:
1) Ya 1 den sonra 2 yi algılatacaksın ki bu amatörce bir çözüm
2) Ya da her gönderilen sayı ardına 0x0D gibi sadece CR veya CRLF (0x0D ve 0X0A) koyacaksın. 0x0D zaten enter tuşunun hex formatıdır. Yani her sayı girdiğinde entere basacaksın ve karşıya yani pice "12<cr>" => 0x31320D gibi veri gidecek.
Yani burda sayı ayıracın 0x0D (Enter tuşu) olacak.