ctof.c
来自「51单片机浮点数存放到EEPROM中的程序范例」· C语言 代码 · 共 67 行
C
67 行
/********************************************************************************************************
浮点数存放到EEPROM中的程序范例
The Small RTOS Kernel(For Keil c51)
(c) Copyright 2006, Gaojie
All Rights Reserved
V1.00.0
*********************************************************************************************************
备注:
/********************************************************************************************************/
#include <STC89C52GJ.H>
#define uchar unsigned char
#define uint unsigned int
uchar idata c1,c2,c3,c4;
float idata a1=0;
void 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型指针不能运算*/
c1 = x[0]; //通过软件仿真查看存放到数组中的数据
c2 = x[1];
c3 = x[2];
c4 = x[3];
}
//如果已将数存入EEPROM,要将其取出合并,方法也是一样,可参考下面的程序。
void CtoF(void)
{
float a;
uchar i,*px;
uchar x[4]={0xb5,0x00,0x00,0x00};
void *pf;
px=x;
pf=&a;
for(i=0;i<4;i++)
{
*((char *)pf+i)=*(px+i);
}
a1=a;
}
main()
{
CtoF();
FtoC();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?