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

您现在所在的位置:首页 >>教学科研 >> 文章内容
C语言在单片机开发中的应用
双击自动滚屏
文章来源:互联网   发布者:admin   发布时间:2014-5-18 23:18:56   阅读:5133
用程序时有这样的要求:将运算的结果(浮点数)存入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  2025年广西正久职业学校…
9  广西正久职业学校收费公示
10  2025年钦州市职业院校教…
 热门新闻
图片新闻
十八而至担
图片新闻
青春志愿行
  CAD技巧 120个 绝… 42881
  广西正久职业学校中等职业… 18661
  常用英语名词之二 18310
  广西正久职业学校2018… 15692
  广西正久职业学校2017… 15521
  全国计算机等级考试二级笔… 12854
  中等职业学校德育教育 12707
  校园趣事 11660
  广西国际商务职业技术学院… 11542
  电子设备中电路板布局、布… 10935
广西正久职业学校
  |设为首页 | 收藏本站 | 咨询留言 | 联系我们 | 友情链接 |
果博东方福布斯公司客服开户电话✅〖19187099992微信同步〗✅开户-客服-上分-注册网✅(fbs8689.com)✅第一步打开果博东方官网✅第二步点击注册开户后输入账号以及密码进行注册-河南福利来股份有限公司始建于1992年,公司现有员工1800名,固定资产超过亿元,占地面积120万平方米,建筑面积25万平方米。页面执行时间:20.363毫秒    备案号:桂ICP备20002313号-1   技术支持QQ:1759177897