//Перевод 2ух байтового числа в 5 цифр для семисегментного индикатора
void int2bcd(char *dst,unsigned int val)
{unsigned char counter,a,b,c;
a=b=c=0; counter = 16;
do {a+=0x33; if (!(a&0x08)) a-=0x03; if (!(a&0x80)) a-=0x30;
if (counter < 8)
{b+=0x33; if (!(b&0x08)) b-=0x03; if (!(b&0x80)) b-=0x30;
}
c<<=1;if (b &0x80 ) c|=0x01;
b<<=1;if (a &0x80 ) b|=0x01;
a<<=1;if (val&0x8000) a|=0x01;
val <<= 1;
} while (--counter);
*dst=c&0x0F;
*(dst+1)=(b&0xF0)>>4;
*(dst+2)=b&0x0F;
*(dst+3)=(a&0xF0)>>4;
*(dst+4)=a&0x0F;
}