原创 我倒塌了~~~给点耐心不成???---俺报恩授课~~~

2007-12-3 02:51 3234 5 5 分类: 模拟

授课地点:  http://21icbbs.com/club/bbs/ShowAnnounce.asp?v=&ID=2778994



我倒塌了~~~给点耐心不成???---俺报恩授课~~~
mood.gif HotPower 发表于 2007-12-3 02:46 PIC 单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖举报该贴



俺胡说几句:

假如电压基准是Vref=5V.输入信号Vi=0~5V.(超过基准电压要分压)
AD转换为10位的,那么就是2*2*.....*2=2^10=1024=0x3ff+1
数字将会等分1024份,即0,1,....1022,1023.
设数字转换后的"电压值"为Vd.

当Vi = 0时, Vd肯定为0,估计人人应该都明白

当Vi = 5V时,Vd应该最大,肯定是0x3ff或1023.

为何不是1024呢???因为1024就成了11位AD了~~~

既然Vi=5V对应Vd=1023

所以有 Vd = (Vi / Vref) * (2 ^ 10 - 1)
          = (Vi / Vref) * 1023

固有Vi=5V   Vd = (5V / 5V) * 1023 = 1023;//哈哈,你会说这些都是废话~~~
再来Vi=2.5V Vd = (2.5V / 5V) * 1023 = 1023 / 2 = 511或512(你看着办~~~)
继续Vi=1V  Vd = (1V / 5V) * 1023 = 1023 / 5

所以我们就把"公式"推出来了~~~(哈哈~~~俺从不记公式,现推现用,锻炼大脑~~~)

所以会有人说俺菜农傻~~~哈哈,不这样傻,脑浆早变成黑色的了~~~

那么已知Vd如何求Vi呢???本不该再讲,为了您那晚的真诚,俺就罗嗦几句,也好报恩~~~

因为: Vd = (Vi / Vref) * (2 ^ N - 1)//其中N为AD转换的为数

那么: Vi = (Vd * Vref) / (2 ^ N - 1)

例如: Vd = 250(俺喜欢这个数字~~~)

那么: Vi = (250 * 5V) / 1023 = 1.222V

千万注意: 为了减小误差,一定要先乘后除!!!!!!!这是ADC/DAC的要领~~~


还要注意: 2N-1=1023.

网上有很多关于到底是1024还是1023对否的问题.

不管争论如何,我个人认为应该取1024.(公式全用2N,而不用2N - 1)

因为1024做乘除只需左右移位10次(N次)即可.

争论无非是为了1/1024或1/1023.这点小毛病就什么好计较的呢???

就像种菜一样,在10米长的菜地里种10棵白菜,间距为10米.

那么应该可以压线种10棵,共有9个空隙(间距).

有人会站在菜数上考虑问题,也有人从间距上考虑问题~~~

课讲完了,俺准备回村吃夜宵去也~~~

菜农  2007.12.3  2:50(哈哈~~~又是1个250)

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /3 下一条