Код
if(PINB.2 == 1) //если пришла 1 ка то
{
cod_1=cod_1<<1;//сдвинет
cod_1 |= 1<<0; //запишет 1 в 0 бит
} //if
else
{
cod_1=cod_1<<1;
cod_1 &= ~(1<<0);//запишет 0 в 0 бит
}; //else
Лучше изобразить как
Код
cod_1 <<= 1; // младший бит гарантированно обнуляется. Конечно, если компилятор соответствует стандарту.
if(PINB.2 == 1)
cod_1 |= 1;
Но всё равно медленнее аппаратного SPI будет.