急求:单片机MS-51,用汇编语言编写程序的问题. 高手的高分,谢谢,

1、最终显示:0-9002、模拟值:0-3V3、采集值:0-FFH(0-255)4、问题:以下A和B哪个正确?A、将0-FFH(0-255)转换成0-3V再乘以300倍。... 1、最终显示:0-900
2、模拟值:0-3V
3、采集值:0-FFH(0-255)
4、问题:以下A和B哪个正确?
A、将0-FFH(0-255)转换成0-3V再乘以300倍。
B、直接将0-FFH(0-255)乘以3.53倍,再用十进显示。

请举例说明精度简便度等事项。
谢谢,二位.
可是用B时.转换精度差多了,0-900的变化为(0,3,6,9....)(0,35,70,....),线性太差了.....
不知二位用A方法有无"转换成0-3V"的例子 ?
展开
 我来答
做而论道
高能答主

2010-10-28 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
用B方法即可。
但是乘以 3.53,还应该研究一下。
实际上,不是255对应900,而是256对应900。
那么:900 / 256 = 3.515
把0.015忽略,由此产生的误差,小于百分之一。

那么,全部使用整数的运算,有:(0~255) * 35 = (0~8925)
显示的时候,只是显示前3位,即可。
---------------------------------
用8位的AD转换器,精度就是这样了,和算法无关。
为了提高精度,应该采用分辨率更高的 AD 转换器。
单水鑫
2010-10-27 · 超过22用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:29.8万
展开全部
A.转换精度好,可是要用到多点小数位。程序可能稍长。
B.转换精度稍差些,可是带小数的乘除位数少。程序短。执行速度可能快些。
以上是指汇编编程。我个人认为B比较好些(如果精度能保正的话)
如果精度不要求,在说考虑A/D线性段的话。我建议用(0-E1)然后乘4.或者用(0D-F3)下边去13,上端去12.也是225。乘4转换。这样编程很方便的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式