理论教育 无符号比较指令CMP的使用方法

无符号比较指令CMP的使用方法

时间:2023-06-17 理论教育 版权反馈
【摘要】:无符号比较指令CMP是将两个通道值或两个4位十六进制数进行比较,并将结果反映到状态标志位上,参与比较的两个数值不变。CMP具有即时刷新型指令的特性。表3-9 CMP指令相关状态标志位表 CMP指令梯形图及助记符示例如图3-55所示。图3-56 CMP指令的应用示例上例中,两个CMP监视TIM0000的当前值。第一个CMP的常数为20s,第二个CMP的常数为10s。在0.00为ON时,当TIM0000当前值大于20s而小于30s时,第一个大于标志P_GT为ON,100.03为ON,则100.04和100.05为OFF。

无符号比较指令CMP的使用方法

无符号比较指令CMP是将两个通道值或两个4位十六进制数进行比较,并将结果反映到状态标志位上,参与比较的两个数值不变。CMP具有即时刷新型指令的特性。其梯形图符号如下:

978-7-111-48236-9-Chapter03-138.jpg

操作数区域:

S1:CIO,W,H,A,T,C,D,*D,@D,#或DR。

S2:CIO,W,H,A,T,C,D,*D,@D,#或IR。

与CMP指令相关的各状态标志位见表3-9。CMP指令的使用示例见例3-33和例3-34。

表3-9 CMP指令相关状态标志位表

978-7-111-48236-9-Chapter03-139.jpg

【例3-33】 CMP指令梯形图及助记符示例如图3-55所示。

978-7-111-48236-9-Chapter03-140.jpg

图3-55 CMP梯形图及助记符示例

【例3-34】 利用CMP指令监视TIM0000的当前值,如图3-56所示。当TIM0000的当前值大于某值时,则产生相应的动作。(www.daowen.com)

978-7-111-48236-9-Chapter03-141.jpg

图3-56 CMP指令的应用示例

上例中,两个CMP监视TIM0000的当前值。第一个CMP的常数为20s,第二个CMP的常数为10s。在0.00为ON时,当TIM0000当前值大于20s而小于30s时,第一个大于标志P_GT为ON,100.03为ON,则100.04和100.05为OFF。

当TIM0000当前值大于10s而小于20s时,第一个大于标志P_GT为OFF,100.03为OFF,而第二个大于标志P_GT为ON,则100.04为ON。

当TIM0000当前值大于0而小于10s时,两个P_GT均为OFF,100.03和100.04为OFF,100.05为ON。

当TIM0000为ON时,TIM0000复位,此比较过程重新开始。

注意:状态标志位必须紧跟CMP指令,二者共用一个执行条件且中间不能插入其他指令,如图3-57所示。

978-7-111-48236-9-Chapter03-142.jpg

图3-57 状态标志位用法示例

a)状态标志位不正确用法 b)状态标志位的正确用法

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈