广西正久职业学校
 广西正久职业学校欢迎您的到来!域名:http://www.gxzjzx.net 今天是:    | 加入收藏 | 设为首页

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:4874
用程序时有这样的要求:将运算的结果(浮点数)存入EEPROM中。我们知道,浮点数在C语言中是以IEEE格式存储的,一个浮点数占用四个字节,例如浮点数34.526存为(160261066)这四个数。要将一个浮点数存入EEPROM,实际上就是要存这四个数。那么如何在程序中得到一个浮点数的组成数呢?

浮点数在存储时,是存储连续的字节中的,只要设法找到存储位置,就可以得到这些数了。可以定义一个void的指针,将此指针指向需要存储的浮点数,然后将此指针强制转化为char型,这样,利用指针就可以得到组成该浮点数的各个字节的值了。具体程序如下:

#define uchar unsigned char#define uint unsigned intvoid FtoC(void)

{ float a;

uchar i,*px

uchar x[4]; /*定义字符数组,准备存储浮点数的四个字节*、

void *pf;

px=x; /*px指针指向数组x*/

pf=&a; /*void 型指针指向浮点数首地址*/

a=34.526;

for(i=0;i<4;i++)

{ *(px+i)=*((char *)pf+i); /*强制void 型指针转成char型,因为*/

} /*void型指针不能运算*/

}

如果已将数存入EEPROM,要将其取出合并,方法也是一样,可参考下面的程序。

#define uchar unsigned char#define uint unsigned int

void CtoF(void)

{ float a;

uchar i,*px

uchar x[4]={56,180,150,73};

void *pf;

px=x;

pf=&a;

for(i=0;i<4;i++)

{ *((char *)pf+i)=*(px+i);

}

}

以上所用C语言为FRANKLIN C51 VER 3.2

上一页  [1] [2] 


【 字体: 打印本页 | 关闭窗口
 
 本文的地址是: http://gxzjzx.net/onews.asp?id=94  转载请注明出处!
 站内搜索
 最新推荐
图片新闻
正久育英才
图片新闻
潜心教研共
1  广西正久职业学校成功举办“…
2  广西正久职业学校圆满协办钦…
3  青春志愿行 建功新征程——…
4  传承红色基因 争做强国少年
5  十八而至担重任 高考拼搏铸…
6  赓续红色血脉,立志技能报国…
7  正久育英才 体艺展风华——…
8  正久健儿展风采 体育赛场创…
9  广西正久职业学校关于非官方…
10  正久育英才 体艺展风华——…
 热门新闻
图片新闻
正久育英才
图片新闻
潜心教研共
  CAD技巧 120个 绝… 40944
  常用英语名词之二 17768
  广西正久职业学校中等职业… 17445
  广西正久职业学校2018… 14789
  广西正久职业学校2017… 14554
  全国计算机等级考试二级笔… 12218
  中等职业学校德育教育 11959
  校园趣事 11450
  广西国际商务职业技术学院… 11303
  电子设备中电路板布局、布… 10228
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
广西正久职业学校页面执行时间:16.615毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897