程序代码如下:(省略了子程序2与方案2. 3的代码,仅列出方案1与其子程序)
主程序:
LD SM0.1 //首次扫描时清除工作缓冲区
MOVD +0, AC0
MOVD +0, AC3
MOVW +0, VW10
MOVW +32000, VW14
MOVW +0, VW16
LD I0.0
TON T33, VW0
CALL SBR_1 //调用子程序1对模拟电位器的值进行换算并加偏移量
LD T33
INCW AC2
MOVB AC2, QB0
R T33, 1 //定时器复位
子程序:
LD T33 //每个定时器周期检查电位器0的变化
MOVW +0, AC1 //清除累加器1
MOVB SMB28, AC1 //送电位器0的值给累加器1
DIV +2, AC1 //累加器除以2,即把电位器0的输出范围从0~255换到0~127
+I +20, AC1 //加200ms偏移量???????????
MOVW AC1, VW0//把累加器1的值拷贝到vw0
ret //自程序结束
以上例子中,该程序认为定时器的值可以从200ms调到1.48s.本人不明白,
1)为什么+i 20,AC1 语句中,20为什么表示200ms
2)定时器怎么能调到1.48s呢?