导航:首页 > 操作系统 > 单片机如何接收浮点型数据

单片机如何接收浮点型数据

发布时间:2024-07-10 01:10:12

⑴ C51单片机浮点数运算

因为没有电路,所以程序我就没法给你写,给你个思路.
第一,不知道你的a和b是什么类型的,如果是定义成浮点型,那么,可以这样写:
float f_Div = a/b;
如果两个有一个是整形的,那么,把整型强制转换成浮点型:
float f_Div = (float)a/(float)b;
注意,那个f_Div变量必须是float型,才能有小数产生

第二,你要进行显示,肯定要把各个位都取出来,这里面肯定有一个取模运算,就是"%",
对于浮点型,不运行取模运算的,所以,你必须把浮点型转换成整型,但是,不能强制转换,
比如: unsigned int I_Div = (unsigned int)f_Div;这是不可以的,你的小数部分就没有了.
所以,你必须要放大一定的倍数,根据你的要求,你是要保留三位,那么,这里还有个问题,你的
小数点之前有几位,决定了你小数点后面保留几位.
比如,你得到的结果是 1.2345,那么,你就保留1.23
如果你得到的结果是 12.345,那么,就保留12.3
如果你得到的结果是 123.45,你就只能保留123了
如果得到的结果是 0.123,你就只能保留 0.12

所以可以看出,你的浮点型结果整数部分有多少位,决定了你的小数能保留多少位,所以还要进行如下运算:

unsigned int i_Div = unsigned int)f_Div;;
unsigned char Dot_Bit = 0; //---这个变量用来表示在第几位上显示小数点,因为
//---通过下面的操作,已经把小数变成整数了
if(I_Div >= 100) //---表示前面有3个整数部分位
{
; //---那就没什么可操作的,unsigned int i_Div = unsigned int)f_Div;;就符合要求
}
else if (I_DIV >= 10) //---表示整数部分有2位
{
I_DIV = f_Div *10;
Dot_Bit = 1; //---在右数第2个地方显示小数点,也就是十位后显示小数点
}
else
{
I_DIV = f_Div *10;
Dot_Bit = 2; //---在右数第2个地方显示小数点,也就是最前面那位后面显示
}
void Display(void)
{

unsigned char Hundred = I_Div/100;
unsigned char TenBit = (I_Div/%00)/10;
unsigned char TenBit = I_Div%10;
....... //然后就开始显示了

}

阅读全文

与单片机如何接收浮点型数据相关的资料

热点内容
解压机压什么不烂 浏览:361
大牛盒子插件文件夹 浏览:5
用友t3如何远程连接服务器 浏览:734
保时捷行车记录仪需要什么app 浏览:708
文件服务器中的DFS全名是什么 浏览:453
365小说app现在叫什么 浏览:46
海贝音乐app的独占usb输出是什么 浏览:395
宏观经济学高鸿业pdf 浏览:290
我的荣耀9x有方舟编译器吗 浏览:968
linux父子进程通信 浏览:884
程序员为什么总是用手机 浏览:303
安卓9程序怎么用 浏览:843
如何恢复编译 浏览:846
mybatispdf 浏览:876
plc使用的是单片机吗 浏览:811
如何让安卓平板音量上限 浏览:235
代理服务器请求超时如何设置 浏览:114
pdf批量盖章 浏览:778
珠江宽频网关服务器地址 浏览:710
程序员练打字网站 浏览:575