发表于:2005/8/15 10:48:00
#0楼
大家是不是有时需要将一个INT数存储在EEPROM中,或从EEPROM读取两个数合并为一个INT,或在数据传输中要将一个INT数传给另一块单片机,此时你需将此INT分解为两个CHAR,而另一块单片机又要将分解后的数CHAR合并为一个INT。在这些场合都可用到以下的两个小程序,现在本笨笨提供给大家。本程序只做抛砖引玉之用:)
单片机AT89S52 编译环境,Keil uVision3
/********************************************************************
*----------------------1int-2char函数--------------------------------
********************************************************************/
void int2char(uint aint)
{
uchar x[2];
uchar j,*px;
void *pf;
px=x;
pf=&aint;
for(j=0;j<2;j++)
{*(px+j)=*((char*)pf+j);
}
}
*******************************************************************/
void char2int()
{ uint data a;
void *pf;
uchar data j,*px;
uchar data x[2]={dh,dl};
px=x;
pf=&a;
for(j=0;j<2;j++)
{ *((char *)pf+j)=*(px+j);}
time[i]=a;
}
单片机AT89S52 编译环境,Keil uVision3
/********************************************************************
*----------------------1int-2char函数--------------------------------
********************************************************************/
void int2char(uint aint)
{
uchar x[2];
uchar j,*px;
void *pf;
px=x;
pf=&aint;
for(j=0;j<2;j++)
{*(px+j)=*((char*)pf+j);
}
}
*******************************************************************/
void char2int()
{ uint data a;
void *pf;
uchar data j,*px;
uchar data x[2]={dh,dl};
px=x;
pf=&a;
for(j=0;j<2;j++)
{ *((char *)pf+j)=*(px+j);}
time[i]=a;
}
[此贴子已经被作者于2005-8-15 10:51:27编辑过]
骐骥一跃,不能十步;
驽马十驾,功在不舍
驽马十驾,功在不舍