- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 出栈操作 (包括两种情况) ① C=9000~9999 ——先入先出的出栈操作 以SBS为堆栈指针,按先入先出的原则,将堆栈中的数据传送到D中,堆栈指针减1。 ② C=8000~8999 —— 后入先出的出栈操作 以SBS为堆栈指针,按后入先出的原则,将堆栈中的数据复制到D中(堆栈中的内容不变),堆栈指针减1。 @ COLL(81) SBS C D 先入先出的出栈过程 @ COOL(81) DM0000 #9007 200 分析:当SBs=DM0000、 C=#9007 、D=200时,指令COLL执行的结果。 执行一次 执行前 0156 0007 1101 0001 EEEE 568C 9D6F 0000 DM0000 DM0001 DM0002 DM0003 DM0004 DM0005 DM0006 DM0007 568C 0006 0156 1101 EEEE 0000 EEEE 9D6F DM0000 DM0001 DM0002 DM0003 DM0004 DM0005 DM0006 DM0007 IR200 0001 C=#9007 栈区 DM0001~DM0007 先入先出 堆栈指针 指针减1 栈区 执行二次 IR200 1101 后入先出的出栈过程 @ COOL(81) DM0000 #9007 200 分析:当SBs=DM0000、 C=#8007 、D=200时,指令COLL执行的结果。 执行一次 执行前 0156 0007 1101 0001 1234 568C 9D6F 0000 DM0000 DM0001 DM0002 DM0003 DM0004 DM0005 DM0006 DM0007 IR200 1234 C=#8007 栈区为 DM0001~DM0007 后入先出 堆栈指针 指针减1 栈区 0156 0006 1101 0001 1234 568C 9D6F 0000 DM0000 DM0001 DM0002 DM0003 DM0004 DM0005 DM0006 DM0007 执行二次 9D6F 不变 单字比较指令CMP 表比较指令TCMP 双字比较指令CMPL 块比较指令BCMP 二、 数据比较指令 1. 单字比较指令CMP CMP(20) C1 C2 CMP(20) C1 C2 C1 :比较数1 C2 : 比较数2 在执行条件为ON时,将C1 和C2进行比较。 当 C1 C2时,标志位25505 ON 当 C1 = C2时,标志位25506 ON 当 C1 C2时,标志位25507 ON 功能 使用CMP指令举例(1) 写语句表、分析程序功能 LD 00000 TIM 000 #0030 CMP(20) TIM000 #0200 AND 25505 OUT 20000 AND 25506 OUT 20001 AND 25507 OUT 20002 LD TIM000 OUT 20003 25506 20001 TIM000 25507 20003 20002 CMP(20) TIM 000 # 0200 TIM000 #0030 00000 25505 20000 分析程序功能 执行指令CMP时,将TIM000的当前值与 #0200进行比较。 25506 20001 TIM000 25507 20003 20002 CMP(20) TIM 000 # 0200 TIM000 #0300 00000 25505 20000 当00000为ON时,TIM000开始定时、且开始执行CMP指令。 TIM000的当前值由0300每隔0.1秒减1。 可见:配合指令CMP,用一个定时器可以控制 多个输出位。 若TIM000当前值大于#0200时,25505 ON →20000 ON。 若TIM000的当前值等于# 0200时,25506 ON → 20001 ON。 若TIM000的当前值小
文档评论(0)