大众信息网

有51单片机很厉害的大神吗 有个程序的问题想问问

关注:169  答案:6  手机版
解决时间 2021-01-30 13:22
AdVal=ReadCount(); weight=FullScale-AdVal/1000; if (weight>0x8000) weight=0; weight=10000*weight/FullScale; weight=weight*RATIO; 这是电子秤程序的其中一个部分 Adval/1000是得到的采样AD值 为什么要用满量程值减掉这个东西。然后后面为什么要这么计算 求解答。
最佳答案
假设一个弹簧,上面压一个物体,弹簧会被压缩。 若可以读出当前弹簧的长度,那么:弹簧总长度减去当前弹簧长度  就得到弹簧在此重物压力下缩短了多少。
又因弹簧在有效范围内的缩短量与压力成正比关系,由此可以计算得出压力(重物的重力)值。
AdVal=ReadCount();
weight=FullScale-AdVal/1000;  // 计算满量程与当前读数的差值,因AD读数与弹簧长度成正比关系,因此,该式子可以等效看成:计算弹簧被压缩的长度。
if (weight>0x8000) weight=0;   // 可能是对超出量程的读数的处理
weight=10000*weight/FullScale;  // 因满量程对应为10000(比如10000克),则由此式可以计算得weight对应多少
weight=weight*RATIO;  // RATIO是比例因子,它可能是弹性系数、补偿倍数之类的
全部回答
需要帮你做设计吗
单片机资料加Q2736352552
就这么一句啊?前后都没有没法说啊
我想应该是没人会吧!你觉得给你一个函数名能猜到函数内的内容不!!看着那句话的意思就是函数读回来的值赋给前面的变量吧
AD转换的??
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!