quote:以下是引用小枫子在2013-03-28 14:15:45的发言:quote:以下是引用hezk在2013-03-19 11:19:23的发言:quote:以下是引用n次看你的背影在2013-03-19 11:02:33的发言:
楼主:首先画个时序图,分析一下,然后的事情就简单了。200里面位间接寻址不太好弄。就用传统的方式来做吧。当按钮启动后,就启动两个脉冲发生源(停止就复位),并对脉冲源的下降沿计数,当计数器等于0时,驱动第一组继电器;当计数器等于1时,驱动第二组继电器····如此下去。当计数器大于等于22时,计数器复位。
和我的思路一模一样,已上机验证过。
如果不考虑那么多继电器,只有一组两个继电器输出的话,就是两个最简单的方波输出,用定时器可以很容易的输出两组方波,一组是9s高位3s低位,一组是6s高位6秒低位,一组启动后延时3s启动二组,就可以得到符合要求的方波输出。
然后就是对输出组的切换,对方波进行计数,然后可以是比较计数值直接驱动输出点,或者根据计数值寻址输出地址输出都可。
前辈们,再问一个问题,关键就是1组,2组之间怎么切换的?是通过寻址Q0.0、Q0.1、Q0.3、Q0.4这些位的地址吗?200不能直接对位进行间接寻址啊,如果按芳季老师说的直接寻址一个字节的话,那我Q口就不够了
两组方波之间不用切换,对于方波1,进行计数,计数1时输出继电器1,计数2时输出继电器3.。。。。。同样方波2也是如此,计数1时输出继电器2,计数2时输出继电器4.。。。。。
寻址的话只能对位寻址,但在赋值的时候可以通过赋不同的值来对位进行操作,比如寻址QB3,给它赋值2#1就是Q3.0,赋值2#10就是Q3.1......