发布于 2011-07-15 02:50:19
10楼
原理很简单。
比如模拟量输入是4000-32000转换为0-100的话,就要把4000到32000等分为100份,每一份就是(32000-4000)/(100-0)=280,那么输入每增加280,输出就增1。比如输入4280输出就是1,输入4420输出就是1.5,输入32000输出就是100。
所以就推出公式(AI-AImin)/[(AINmax-AINmin)/(AOmax-AOmin)]+AOmin,输入值-输入下限得到输入偏移量,输入偏移量再除每份转换的比例值,就得到了转换后的输出值了。优化一下就是6楼的标准公式了。
LD SM0.0
LPS
MOVD +100, AC0
AENO
-D 0, AC0
AENO
DTR AC0, AC0
LRD
ITD AIW0, AC1
AENO
-D 4000, AC1
AENO
DTR AC1, AC1
LRD
MOVD +32000, AC2
AENO
-D +4000, AC2
AENO
DTR AC2, AC2
LPP
*R AC0, AC1
AENO
/R AC2, AC1
AENO
+R 0.0, AC1