满意答案
Julykkk
2013.07.25
采纳率:56% 等级:12
已帮助:4804人
union
{
//这个是共用体,定义的这两个成员共用内存中的一块区域
uchar fc[2];
uint fi;
}frecy;//定义了一个共用体变量frecy,定义时要特别注意末尾的分号
//定义测频率的函数,返回数据类型为uint,C语言中无此数据类型,有可能是你用#define自定义的
uint freq(void)
{
ulint f;
TR0=1; //*启动T0
TR1=1;
while(cnt<20);
cnt=0;
TR0=0;
TR1=0;
frecy.fc[0]=TH1;//为共用体变量frecy中的成员数组赋值fc[0]是此数组的第一个元素
frecy.fc[1]=TL1;//同上,fc[1]是此数组的第二个元素
f=frecy.fi;//把frecy.fi的值赋值给f变量,由于这里是共用体,所以frecy.fi的值会是recy.fc[0]、recy.fc[1]的组合,具体是怎样的,得要看uchar、uint数据类型占用内存字节的情况
TH0=-(46802/256);//除法运算后取相反数
TL0=-(46802%256);//未余运算后取相反数
TH1=0x00;//赋值操作,0x00是十六进制数
TL1=0x00;
return f;//返回值
}
//如还有疑问可以给我留言,发详细的完整代码我们来讨论
00分享举报