利用四位共阳数码管显示小数

本文分享了如何利用TMS320F2335控制器完善四位共阳数码管显示小数的功能。通过拆分整数和纯小数部分,处理小数点位置,并使用'乘10变整'的思想展示纯小数,最终实现数码管对小数的正确显示。
摘要由CSDN通过智能技术生成

前言

前段时间利用TMS320F2335实现了对四位共阳数码管的控制(链接在这),不过当时只实现了利用数码管显示整数,对于含有纯小数部分的小数无法处理,因此打算对之前的代码进行完善,使得数码管能够显示小数。

实现过程

思路

小数和整数的区别在于小数除了整数部分之后还有纯小数部分,这一方面要求我们需要对纯小数部分进行处理;另一方面也要求我们对小数点进行处理。下面我们分别解决这两个问题。
首先解决小数点的问题,小数点这一块主要是小数点位置的问题,也就是说应该在哪一位上显示小数点。为此,我们先确立优先显示整数部分的规则,也就是说小数点的位置会随着整数部分的变化而变化。具体来说就是:如果整数部分在0到9,那么用一位显示整数部分,后面三位显示小数部分,而小数点就显示在第一位的位置上,如此类推。
接着,我们需要对纯小数部分进行处理,也就是将纯小数部分显示出来,这需要我们将纯小数部分各位上的数字提取出来。这里我们采用“乘10变整”的思想,也就是将纯小数部分不断乘以10来将各位上的数字移到整数部分。比如对于纯小数0.234,我们先乘以10得到2.34,就可以将十分位上的2移到个位上,然后就可以利用处理整数的方法来处理这一个2。接着不断乘10,就可以将纯小数部分上的各位依次移到整数部分来。

具体方法

根据上述思路,我们首先要将小数拆分为整数部分和纯小数部分。整数部分的提取可以通过强制类型转换实现,而将小数减去整数部分就可得到纯小数部分,代码如下:

Uint16 int_part;
float dec_part;
int_part = (Uint16)num;
dec_part = num - int_part;

其中,int_part和dec_part分别为整数部分和纯小数部分,而num为待显示的小数。
拆分之后,我们就可以对整数部分进行初步判断并对表征小数点位置的变量进行赋值,代码如下:

if (int_part <= 9)
{
   
	Point_Pos = 1;
}
else if (int_part >= 10 && int_part <= 99)
{
   
	Point_Pos = 2;
}
else if (int_part >= 100 && int_part <= 999)
{
   
	Point_Pos = 3;
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值