yangjiejie
朝花夕拾
级别: 网络英雄
精华主题: 0
发帖数量: 308 个
工控威望: 5906 点
下载积分: 13712 分
在线时间: 723(小时)
注册时间: 2010-02-26
最后登录: 2024-11-20
查看yangjiejie的 主题 / 回贴
楼主  发表于: 2011-02-15 13:49
       各位大侠好,小弟看编程手册。自己实习做一个练习题:就是当X1 ON时,把50 ,55,60,65.......100这11个数据,用循环指令传送到D10到D20中去。
编写的程序如下:

   可是,我用模拟软件监控,为什么,循环的V是1,也只能传送50,55,60,小弟很纳闷,不知是什么地方出了问题,请各位同仁大侠,指导指导。
朝花夕拾
detect
小心慎言,莫走邪道
级别: 略有小成
精华主题: 0
发帖数量: 286 个
工控威望: 474 点
下载积分: 1356 分
在线时间: 145(小时)
注册时间: 2009-02-10
最后登录: 2015-03-29
查看detect的 主题 / 回贴
1楼  发表于: 2011-02-15 22:30
我电脑上现在无法模拟,但从程序分析,最初的程序的确是没考虑到v0到10以后的问题,换句话说,也就是x0接通给D10赋值之后的第二第三及至更后扫描周期,原赋值循环程序将继续无限制执行,直到出错
V0是16位寄存器,当V0的赋值数据超过其数据容量时将溢出,
同样,D寄存器的允许使用地址也存在限制,
当V0和D的内容超过其允许值时,出错在所难免啊
因此,在赋值循环程序之前加上跳转完全有必要。
而二楼的程序应该能达到楼主的要求,但是存在无效的反复循环
个人见解,仅供借鉴
如有理解不当之处,请指正
[ 此帖被detect在2011-02-15 22:37重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(dl2006) 热心助人
  • 下载积分:+2(yangjiejie) 热心助人