|
楼主 |
发表于 2015-1-13 16:32:25
|
本帖最后由 江边树 于 2015-1-13 16:38 编辑
huarana 发表于 2015-1-13 15:06
在纠正你下, 10位AD, AD值从 0-1023 共1024个。
应该除以1023
非常感谢你来参与研究!我平时想找个朋友来讨论都找不到!高手认为没必要跟我们这些菜鸟浪费时间,没入门的看了还是一头雾水,所以也没兴趣。
你说的这个问题,我也纠结过:8位ADC,到底是乘255,还是乘256?256不是到第9位的1了吗?10位ADC,到底是乘1023,还是乘1024?1024不是到第11位的1了吗?的确,网上也能搜到8位乘255,10位乘1023的。我特地到宏晶的网站上下载了STC12C5A60S2的详细资料,没料到打不开,说是"加了密"!真是感到好笑,又要推销产品,又怕人家了解产品的性能,什么意思嘛!后经朋友帮助,找到一款PDF密码解除软件,给我解了密。我在几百页的资料里仔细查看,终于找到10位AD转换乘的不是1023,而是1024。当然,关于“位”,有两种解读:一种是位数的位,例如51单片机P0口有8位,我们不能说是7位吧。AD转换的10位,就是指的这种“位”。另一种位是二进制数的“位”,最低位是b0(也有称D0的)最高位是bn-1(也有称Dn-1的),这时8位二进制数最高位是b7而不是b8. 10位二进制数最高位是b9而不是b10.诚如你所说,10位AD转换后的值是从最小的0(不能分辩0.5,也就是所谓分辨率+-一个字)到最大一个值1023,但是,加上0,是1024份,参考电压是被均匀分在这1024份(不是1023份!)里了,所以数字量的1份就是参考量的1024分之一,即模拟量=AD转换结果*(参考电压/1024).程序里参考电压是单片机电源电压5V,因此括号里是5/1024而不是5/1023,不知道我这样解释,你是否同意?如果还有疑问,我看你可以查看有关STC12C5A60S2的datasheet,或者到网上查找有关逐次比较,逼近式AD转换器的工作过程解释资料.
|
|