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

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:4326
用程序时有这样的要求:将运算的结果(浮点数)存入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  2025年钦州市职业院校教…
3  2025年钦州市职业院校教…
4  2025年钦州市职业院校教…
5  茶叶审评五步法实操视频
6  茶叶扦样技术规范与实操视频
7  认识评茶用具及使用 微课
8  数学组微课视频
9  微课3从枝头到甜头:一颗荔…
10  微课2一片茶叶的新生——手…
 热门新闻
图片新闻
潜心教研共
图片新闻
喜讯:蟾宫
  CAD技巧 120个 绝… 37399
  常用英语名词之二 16405
  广西正久职业学校中等职业… 15120
  广西正久职业学校2018… 13120
  广西正久职业学校2017… 12864
  全国计算机等级考试二级笔… 11015
  广西国际商务职业技术学院… 10793
  中等职业学校德育教育 10763
  校园趣事 9585
  电子设备中电路板布局、布… 9139
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
Copyright 2014-2020 © www.gxzjzx.net. All Right Reserved
Design:广西正久职业学校
页面执行时间:41.270毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897