打印

请教高手一个C51小程序段

[复制链接]
2034|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arao|  楼主 | 2010-12-23 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
函数功能:将0-255级换算成0.00-5.00的电压数值
入口参数:i
出口参数:
****************************************************************************/
void convdata(unsigned char i)
{
    dis[0] = i/51;       //个位
    dis[1] = (i%51)*10/51;      //小数点后第一位
    dis[2] = ((i%51)*10%51)*10/51;     //小数点后第二位
}

------
为什么除以51?

相关帖子

沙发
CIOneTwo| | 2010-12-23 09:36 | 只看该作者
255/5,每51一个Step,是这样吗?

使用特权

评论回复
板凳
冯冯冯冯| | 2010-12-23 09:41 | 只看该作者
嗯,对应来说,1V电压对应51级,所以是除以51,取整取余

使用特权

评论回复
地板
northerns| | 2010-12-23 09:58 | 只看该作者
是将0~255之间的数值与0.00~5.00之间每个数值对应起来
除以51是以最大值是255对应5.00之间的倍数得出的:255/5=51;
另外:255-->5.00      dis[0]= 255/51=5;dis[1]=(255%51)*10/51=0;
                                 dis[2]=((255%51)*10%51)*10/51=0;
         254-->4.98      dis[0]= 254/51=4;dis[1]=(254%51)*10/51=9;
                                 dis[2]=((254%51)*10%51)*10/51=8;
          ………………………………………………………………

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
原野之狼 + 2 我很赞同
5
arao|  楼主 | 2010-12-23 10:49 | 只看该作者
谢谢大家,有点明白了

使用特权

评论回复
6
liang7143| | 2010-12-23 12:34 | 只看该作者
4L正解

使用特权

评论回复
7
sleaven| | 2010-12-23 16:31 | 只看该作者
嗯  学习了.....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:谢了,正好学学看

27

主题

182

帖子

0

粉丝