я тут прикинул свой вариант для 4х3 клавы написал как подпрограммуи вызываю при необходимости вот так
_get_key();
а сам код я сделал как getkey.h т.е. как хидер
вот пожалуйста пользуися на здаровие!
char cifri;
char _get_key(void)
{
while ((PINA.0)&&(PINA.1)&&(PINA.2)&&(PINA.3))
{
PORTA.4=0;
if ((!PINA.0)&&(!PORTA.4))
{
return cifri='1';
};
if ((!PINA.1)&&(!PORTA.4))
{
return cifri='4';
};
if ((!PINA.2)&&(!PORTA.4))
{
return cifri='7';
};
if ((!PINA.3)&&(!PORTA.4))
{
return cifri='*';
};
PORTA.4=1;
PORTA.5=0;
if ((!PINA.0)&&(!PORTA.5))
{
return cifri='2';
};
if ((!PINA.1)&&(!PORTA.5))
{
return cifri='5';
};
if ((!PINA.2)&&(!PORTA.5))
{
return cifri='8';
};
if ((!PINA.3)&&(!PORTA.5))
{
return cifri='0';
};
PORTA.5=1;
PORTA.6=0;
if ((!PINA.0)&&(!PORTA.6))
{
return cifri='3';
};
if ((!PINA.1)&&(!PORTA.6))
{
return cifri='6';
};
if ((!PINA.2)&&(!PORTA.6))
{
return cifri='9';
};
if ((!PINA.3)&&(!PORTA.6))
{
return cifri=175;
};
PORTA.6=1;
};
};