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

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:4738
用程序时有这样的要求:将运算的结果(浮点数)存入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  十八而至担重任 高考拼搏铸…
2  赓续红色血脉,立志技能报国…
3  正久育英才 体艺展风华——…
4  正久健儿展风采 体育赛场创…
5  广西正久职业学校关于非官方…
6  正久育英才 体艺展风华——…
7  广西正久职业学校关于学校领…
8  2025年广西正久职业学校…
9  广西正久职业学校收费公示
10  2025年钦州市职业院校教…
 热门新闻
图片新闻
正久育英才
图片新闻
潜心教研共
  CAD技巧 120个 绝… 39709
  常用英语名词之二 17477
  广西正久职业学校中等职业… 16934
  广西正久职业学校2018… 14375
  广西正久职业学校2017… 14112
  全国计算机等级考试二级笔… 11918
  中等职业学校德育教育 11661
  校园趣事 11302
  广西国际商务职业技术学院… 11209
  电子设备中电路板布局、布… 9953
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
Copyright 2014-2020 © www.gxzjzx.net. All Right Reserved
Design:广西正久职业学校,版权所有
页面执行时间:78.460毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897