本帖最后由 sos9616 于 2015-1-21 10:39 编辑
论坛里关于如何实现在数码管上显示小数点的方法和资料很少,
琢磨好几天了,不知道怎么实现根据数值用数码管显示出小数。
比如测得温度值是:1.234。
当到了十位时就是:10.23。
到了百位就是 :123.4。
希望坛友帮帮忙。
我在这里把写的“数码管显示小数点”的方法总结一下吧,
希望能帮到还在纠结的你
void display_SMG(float a)
{
if((a<10)&&(a>=0)) //0.000
{
a=a*1000;
num1=(uint)a/1000;
num2=(uint)a%1000/100;
num3=(uint)a%1000%100/10;
num4=(uint)a%1000%100%10;
.......
.....num1加小数点的处理
}
if((a<100)&&(a>=10)) //00.00
{
a=a*1000;
num1=(uint)a/1000;
num2=(uint)a%1000/100;
num3=(uint)a%1000%100/10;
num4=(uint)a%1000%100%10;
.......
.....//num2加小数点的处理
}
if((a<1000)&&(a>=100)) //000.0
{
a=a*1000;
num1=(uint)a/1000;
num2=(uint)a%1000/100;
num3=(uint)a%1000%100/10;
num4=(uint)a%1000%100%10;
.......
.....//num3加小数点的处理
}
}
0~9带小数点定义10个段码表
显示时如果带小数,则个位用带小数点的段码表,其余用基本数字段码表。
一周热门 更多>