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

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:3861
用程序时有这样的要求:将运算的结果(浮点数)存入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  2024年广西正久职业学校…
2  潜心教研共成长,研而有悟共…
3  喜讯:蟾宫折桂,巾帼英姿
4  点滴助力暖人心
5  家校共育鸿鹄志,荔乡少年踏…
6  快讯:正久精神闪耀上海外滩
7  开学典礼展希望 军训汇演强…
8  山映朝阳迎新生,明月楼高共…
9  其利断金,我校全体教职工利…
10  暑假家访,从心出发
 热门新闻
图片新闻
潜心教研共
图片新闻
喜讯:蟾宫
  CAD技巧 120个 绝… 33683
  常用英语名词之二 14688
  广西正久职业学校中等职业… 13096
  广西正久职业学校2018… 11463
  广西正久职业学校2017… 11209
  广西国际商务职业技术学院… 10269
  全国计算机等级考试二级笔… 9840
  中等职业学校德育教育 9529
  校园趣事 8885
  电子设备中电路板布局、布… 8015
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
Copyright 2014-2020 © www.gxzjzx.net. All Right Reserved
Design:广西正久职业学校1
页面执行时间:42.360毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897