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

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:4660
用程序时有这样的要求:将运算的结果(浮点数)存入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://www.gxzjzx.net/onews.asp?id=94  转载请注明出处!
 站内搜索
 最新推荐
图片新闻
潜心教研共
图片新闻
喜讯:蟾宫
1  广西正久职业学校关于202…
2  广西正久职业学校关于202…
3  广西正久职业学校关于校服选…
4  广西正久职业学校关于校服选…
5  广西正久职业学校关于组建校…
6  广西正久职业学校关于校服采…
7  广西正久职业学校自愿征订校…
8  广西正久职业学校关于选用采…
9  广西正久职业学校关于学校领…
10  2025年广西正久职业学校…
 热门新闻
图片新闻
潜心教研共
图片新闻
喜讯:蟾宫
  CAD技巧 120个 绝… 39285
  常用英语名词之二 17353
  广西正久职业学校中等职业… 16697
  广西正久职业学校2018… 14166
  广西正久职业学校2017… 13892
  全国计算机等级考试二级笔… 11786
  中等职业学校德育教育 11521
  校园趣事 11236
  广西国际商务职业技术学院… 11142
  电子设备中电路板布局、布… 9836
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
Copyright 2014-2020 © www.gxzjzx.net. All Right Reserved
Design:广西正久职业学校,版权所有
页面执行时间:77.972毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897