导航:首页 > 操作系统 > c51单片机浮点数

c51单片机浮点数

发布时间:2023-02-04 10:37:46

Ⅰ 51单片机怎么实现浮点运算

要先按装浮点库C51FPS.LIB,按装路径为:将 C51FPS.LIB 文件复制到 C:\Keil\C51\LIB\ 文件夹下面。
而后在程序中用浮点型变量float或double进行运算即可。

Ⅱ 51单片机通常如何输入浮点数

单片机处理浮点数效率不高,一般是浮点数乘以10的n次方变成整数进行计算等处理,在输出的时候再次处理小数点。比如,你输入的是1234.567,1234保存到2个unsigned char型变量里面,567保存到2个unsigned char型变量里面,如果是有符号浮点数,可以把符号单独保存到一个unsigned char里面,计算的时候所有的数都乘以1000,输出的时候单独输出整数部分和小数部分。

Ⅲ 单片机C51中将浮点数转成字符用串口发出,有时会出错

仔细看了一下,问题出现在Send_Data(num_ganguo[i]);这里。你去看一下,你是如何处理字符串的,是不是,把数据中的除上位机的数据的数字都处理成了0的ASCII码了。(个人见解,如有不足,请指出)

Ⅳ 在C51中,为什么很少使用长整型和浮点型数据

C51单片机最多16位,无需用长整形,不用浮点么为了节省ram ,减少CPU占用率。

Ⅳ 51单片机long,double,float,int范围是多大,各多少字节

在keilC51或者iar for c8051编译器下:

一、int 占两个字节 范围:-32768~+32767

二、long占四个字节 范围:-2147483648~+2147483647

三、float占四个字节 范围:3.40E+38 ~ +3.40E+38

四、double占8个字节 范围:-1.79E+308 ~ +1.79E+308

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一。

(5)c51单片机浮点数扩展阅读:

51单片机功能特性

1、可以仿真63K程序空间,接近64K 的16位地址空间;

2、可以仿真64Kxdata 空间,全部64K 的16位地址空间;

3、可以真实仿真全部32 条IO脚;

4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;

5、可以使用C51语言或者ASM汇编语言进行调试 ;

6、可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;

7、可选 使用用户晶振,支持0-40MHZ晶振频率;

8、片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;

9、可以仿真双DPTR 指针;

10、可以仿真去除ALE 信号输出. ;

11、自适应300-38400bps 的所有波特率通讯;

12、体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;

13、仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;

14、仿真时监控和用户代码分离,不可能产生不能仿真的软故障;

15、RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。

Ⅵ 单片机C51十六进制浮点型转换为十进制,怎么转

用一个联合体就可以解决你的问题

union temp{
float x;
char table[4];
};
比如上位机发给你一个4字节的浮点数给你,存放在recbuf[4]中
那么你只要执行了
temp.table[0]=recbuf[0];
temp.table[1]=recbuf[1];

temp.table[2]=recbuf[2];

temp.table[3]=recbuf[3];
后,temp.x就是浮点数的结果

Ⅶ 关于C51单片机的小数点四舍五入处理

将你需保留的那一位的低一位加5之后舍掉即可

单片机内一般采用整数计算,如果要保留两位小数,需将原数据扩大100倍,小数点该向左移2位
18754/100=187·54 但单片机只能算整数,因此结果只能是187
因此计算时我们我们将被除数扩大100倍 相当于小数点向右移2位,1875400/ 100=18754
然后我们将计算结果的小数点再向左移回来2 位,即变成了 187.54 这就是定点小数的算法
如果18754/100我们只保留一位小数
我们可以这样处理 (18754*100+500)=1875900
1875900/100=18759
小数点左移2位,结果187.59 最后一位不考虑取187.5
但如果18755/100我们只保留一位小数
(18755*100+500)=1876000
1876000/100=18760

小数点左移2位,结果187.60 最后一位不考虑取187.6
看到了吧,4舍去了 5就入上去了
所以要保留三位小数,需将原来数据扩大1000倍,再除1000
所以要保留4位小数,需将原来数据扩大10000倍,再除10000
.......
扩大100倍或1000倍操作要放在除法之前,因除法才会导致小数丢失
需4舍5 入,将要保留的那一位数的低一位加5即可
当然这是低级算法,用C语言编程直接可以用浮点数,结果输出 时会自动四舍5 入
你所要做的是将浮点数转换为字符(用sprint函数)并控制输出数据的位数,格式控制类似于printf函数

Ⅷ 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;
....... //然后就开始显示了

}

Ⅸ C51中浮点数

单精度浮点数是双字4个字节,浮点数-12.34对应的16进制是0XC14570A3,至于为什么是这个数,你还是去看下16进制数表示浮点数的原理吧,这里就不说了

Ⅹ 51单片机能不能计算浮点数,支不支持浮点运算有人说能,有人说不能。

不能直接硬件计算浮点(就是所谓的FPU),只能通过程序库(调用函数)模拟完成,非常耗时!

阅读全文

与c51单片机浮点数相关的资料

热点内容
python写网页界面的框架 浏览:5
当通过ssh远程连接弹性云服务器时 浏览:654
12306哪个app 浏览:679
免费网站电视剧电影全免费在线观看 浏览:737
如何快速清除app广告 浏览:716
单片机按键外部中断 浏览:560
单片机的usb供电 浏览:256
更改android分辨率 浏览:186
phpstaticfinal 浏览:695
成人伦理风月片电影 浏览:294
禁播爱情片 浏览:21
动漫电影免费版大全 浏览:14
java什么是this 浏览:811
拍摄指南by小说制造机txt下载 浏览:738
豆瓣pdf 浏览:723
春宫妖姬演员表 浏览:112
韩国情爱电影在线 浏览:812
程序员那么可爱顾墨吃醋 浏览:201
服务器未测速怎么办 浏览:15
男主角林晨的都市小说 浏览:899