55问答网
所有问题
单片机C语言显示小数
我用ADC0808采集电压信号51单片机读取电压数据,请问我如何换算这个数据,比如我要测量4.87V电压,如何计算出这个值,如何显示在数码管上。程序算法上应该怎么算,主要是计算跟分离各个数位上的数
举报该问题
推荐答案 2011-08-04
给你个流程思路吧。ad采集电压信号,转换的数据是根据参考电压比较得到的。如果你的参考电压是5V,用的是12位AD,现在转换的结果为0x00ff,那么当前的电压就是0xo0ff*5000/4096 (mv)=311mv=0.311V, 至于怎么显示,那要看你的数码管位数以及要显示的数据范围。 可以用定小数点显示,也可以用动态小数点显示。思路都是把当前小数换成需要的整数,保留固定的有效数字。然后去显示小数点。思路就是这样。希望能帮到你。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/e4F4IcG4L.html
其他回答
第1个回答 2011-08-04
你放大100被 , 计算出的 值就是487了 ,然后显示在数码管上,小数点显示在固定的位置
第2个回答 2011-08-04
单片机c 语言有浮点运算,但建议不要用,一般在可控位长下,放大x倍(精度),转成10进制后可显示,
第3个回答 2011-08-05
单片机里的数据最好都用整数来运算,是小数的就放大成整数,显示只是在对应的数码管上将点显示出来就行。
相似回答
单片机C语言显示小数
答:
ad采集电压信号,转换的数据是根据参考电压比较得到的。如果你的参考电压是5V,用的是12位AD,现在转换的结果为0x00ff,那么当前的电压就是0xo0ff*5000/4096 (mv)=311mv=0.311V, 至于怎么
显示
,那要看你的数码管位数以及要显示的数据范围。 可以用定
小数
点显示,也可以用动态小数点显示。思路都是...
单片机c语言小数
点后两位需要
显示
,怎么编程?
答:
(y>=50)x++;//x中为结果,因为没有浮点又要保留两位
小数
,所以用大100倍的整数表示。
单片机 C语言
从AD得到一个8位二进制数 0x00~0xff 想把它换算成
小数显示
...
答:
计算时,需要乘以100,8位的变量,就不够用了。unsigned int j;unsigned char k, l, m, n = P1; //从P1口读到的8位二进制数 n = 168; // 168 / 255 = 0.65 j = 100 * n; //0 ~ 25500,需要用16位数的变量 k = j / 25500; //整数0~1 j = j % 2550...
C51
单片机
的简单
显示
程序(有
小数
点)
C语言
程序
答:
h>unsigned char code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9unsigned char time,sec=30,scanled;unsigned char disdat[6]={1,2,3,4,5,6};sbit keys=P1^0;sbit key
c
=P1^1;sbit fmq=P3^0;void t1isr() interrupt 3 //
显示
{ TH1...
STC89C52 的
单片机C语言
实现数码管
显示
任意的一个四位数包括
小数
点
答:
{ dx(zm[a[q]]);} else { dx(zm[a[q]]&0x7f);//
小数
点;} wx(w);w=w<<1|0x01;if(++q==8){ q=0;w=0xfe;} } void main(){ TH0=(65536-1835)/256;TL0=(65536-1835)%256;EA=1;ET0=1;TR0=1;while(1){ a[0]=8;a[1]=7;a[2]=6;a[3]=5;} } ...
大家正在搜
单片机C语言程序设计
c语言和单片机
c语言51单片机
c语言和单片机的关系
单片机汇编语言
c语言版单片机教程
单片机用什么语言编程
单片机c语言必背代码
51单片机编程语言
相关问题
C51单片机的简单显示程序(有小数点)C语言程序
单片机C语言显示小数
单片机C语言中小数的十六进制数怎么表示
单片机 LCD1602 C语言小数怎么表示
单片机c语言小数点后两位需要显示,怎么编程?
单片机C语言中如何将浮点型变量转换成字符串输出
STC89C52 的单片机C语言实现数码管显示任意的一个四位...
51单片机 c语言六位数码管小数点