此帖出自微控制器 MCU论坛
最新回复
给你一个查表的二进制转BCD码算法,根据你的要求可以适当修改,也许有用
static unsigned int adtab[10]={0x256,0x128,0x64,0x32,0x16,0x8,0x4,0x2,0x1};
j=0;
//十位二进制转bcd码hum为百位,ten为十位,rem为个位,采用移位查表法,
for(int i=0;i<9;i++)
{
if(deg&0x0100)
{
unsigned int tr;
tr=adtab[j]&0x0F00;
tr=tr>>8;
hum=hum+tr;
tr=adtab[j]&0x00F0;
tr=tr>>4;
ten=ten+tr;
rem=rem+(adtab[j]&0x000F);
}
if(rem>=0x0A)
{
rem=rem-0x0A;
ten++;
}
if(ten>=0x0A)
{
ten=ten-0x0A;
hum++;
}
deg=deg<<1;
j++;
}
详情
回复
发表于 2009-5-13 16:22
| ||
|
||
| |
|
|
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
| |
|
|
此帖出自微控制器 MCU论坛
| ||
|
||
EEWorld Datasheet 技术支持