C language 51 single chip 4x4 matrix keyboard scanner