8个8段led显示浮点型数据

开始不明白,在一个群里讨论的结果: 
 
 
Will(95367158) 21:22:43 
请教大家个问题
Will(95367158) 21:22:49 
请问8位led怎么显示浮点型的数啊,就是小数部分保留3位
Will(95367158) 21:23:34 
最主要小数部分怎么搞
面朝大海(420804633) 21:24:18 
浮点是浮云
往最后的森林(627515898) 21:25:03 
啥是8位LED?8段?
Will(95367158) 21:25:21 
8个8段led
Will(95367158) 21:25:53 
就是有后三个显示小数部分,前5个是整数部分
面朝大海(420804633) 21:26:13 
你做过单片机就知道怎么搞的呀
往最后的森林(627515898) 21:26:39 
看成定点数呗~
Will(95367158) 21:27:10 
这个不解
面朝大海(420804633) 21:27:22 
你不会乘以1000啊
面朝大海(420804633) 21:27:41 
然后让第五位的小数点点亮
面朝大海(420804633) 21:27:47 
不就OK了
Will(95367158) 21:28:38 
对了让第五位小数点点亮是不是|0x80啊
往最后的森林(627515898) 21:28:56 
这个要看电路的吧~~~
往最后的森林(627515898) 21:29:19 
你还要考虑下你显示的数的范围~~
面朝大海(420804633) 21:29:22 
这个看电路,如果电路正常的话应该是
面朝大海(420804633) 21:29:37 
88888.888
Will(95367158) 21:29:46 
恩,有道理
面朝大海(420804633) 21:29:51 
你送过去的是88888888
面朝大海(420804633) 21:30:07 
所以说浮点是浮云
Will(95367158) 21:30:39 
我送过去的事float数据啊
往最后的森林(627515898) 21:31:17 
浮点数其实还是比较玄乎的~~~LS可有考究过
面朝大海(420804633) 21:31:25 
你转成整型
面朝大海(420804633) 21:31:52 
比如是的数是1.5,实际你乘以10再送过去就可以了
面朝大海(420804633) 21:32:05 
只是要把小数点点亮
往最后的森林(627515898) 21:32:12 
这样的缺点就是定点~~~
面朝大海(420804633) 21:32:31 
他说了是定点啊
面朝大海(420804633) 21:32:37 
后三位是小数嘛
往最后的森林(627515898) 21:33:22 
还有如果是纯小数 还要改进下
面朝大海(420804633) 21:33:44 
他懂的
Will(95367158) 21:33:46 
我的是定点
往最后的森林(627515898) 21:34:25 
- -!但愿如此
最后根据大家所说,我可以用这个浮点数据*1000,然后再分别/10000000,1000000,...用长整形变量一位一位得出各个位置,只要第五位我加一个小数点就可以了。
下面是程序:

//***********************************************************
//数码管显示函数:LED()
//***********************************************************

void LED(float ttime)
{
long int t,p;
void Led_init(void);
delay10ms(10);
ttime=ttime*1000;

t=(long)ttime/10000000;
p=(long)ttime%10000000;
Write7279(DECODE1,t);
delay10ms(10);
t=p/1000000;
p=p%1000000;
Write7279(DECODE1+1,t);
delay10ms(10);
t=p/100000;
p=p%100000;
Write7279(DECODE1+2,t);
delay10ms(10);
t=p/10000;
p=p%10000;
Write7279(DECODE1+3,t);
delay10ms(10);
t=p/1000;
p=p%1000;
Write7279(DECODE1+4,t|0x80);
delay10ms(10);
t=p/100;
p=p%100;
Write7279(DECODE1+5,t);
delay10ms(10);
t=p/10;
p=p%10;
Write7279(DECODE1+6,t);
delay10ms(10);
t=p;
Write7279(DECODE1+7,t);
delay10ms(10);
}

你可能感兴趣的:(8个8段led显示浮点型数据)