INT 指令的梯形图符号及可用操作数如图 4.87 所示。
图 4.87 INT 的梯形图符号及操作数数据区

执行条件为 ON 时,INT 用来控制中断,并根据控制码 CC 完成表 4.20 所示的 6 种功能之一。
表 4.20 控制码 CC 的含义

1) 屏蔽/不屏蔽输入中断(CC=000)
此功能对外部中断输入 IR00000~00003 进行屏蔽或解除屏蔽。被屏蔽的输入被记录但不响应;若某输入端被屏蔽,则屏蔽解除后对应的中断程序立即执行(除非预先用 CC=001 的 INT 清除)。通过设置控制数据 D 的 bit00~bit03 分别定义 IR00000~00003 的屏蔽(1)或不屏蔽(0),D 的 bit04~bit15 应为 0。
2) 清除/不清除输入中断(CC=001)
若中断输入端在屏蔽状态下被接通则不能产生中断,但该信息被记忆,待屏蔽解除后立即产生中断。若屏蔽解除时不希望产生先前记忆的中断,可用清除中断记忆的方法。通过 D 的 bit00~bit03 定义各输入的清除(1)或不清除(0),D 的 bit04~bit15 应为 0。
3) 读出当前屏蔽状态(CC=002)
将中断输入 IR00000~00003 的当前屏蔽状态写入通道 D,D 的 bit00~bit03 分别对应 IR00000~00003,输入被屏蔽则对应位为 1,否则为 0。
4) 更新计数器设定值(CC=003)
更新中断输入 IR00000~00003 计数器模式的设定值 SV。计数器模式下,SR244~SR247 为设定值 SV 通道,SR248~SR251 为当前值 PV-1 通道。设定值 SV 范围为 0000~FFFF(十进制 0~65535)。用数据传送指令可将设定值写入 SR244~SR247。计数方式为减 1 计数:中断输入端子接通一次,当前值减 1,直到减为 0000 时产生中断。产生中断后计数器停止计数、中断被屏蔽,若再产生中断需改写设定值。是否改写由 D 的 bit00~bit03 设定(0 为改写)。
5) 所有中断的屏蔽/解除(CC=100/200)
将所有中断(输入中断、间隔定时器中断、高速计数器中断)作为一组屏蔽或解除屏蔽。屏蔽期间发生的中断请求(输入、间隔定时器、高速计数器)被记录但不响应,去掉屏蔽后立即进行中断服务。除非必须暂时屏蔽所有中断,否则不要随便使用 INT 屏蔽;应成对使用 INT 指令,先用 INT 屏蔽所有中断、再用 INT 解除屏蔽。CC=100/200 时 D 固定为 0000。
图 4.88 中,输入中断 0 使用输入中断模式,输入中断 1 采用计数器模式。执行程序前应将 DM6628 设置为 0011(IR00000 和 IR00001 用于中断输入,IR00002 和 IR00003 用于一般输入)。
图 4.88 输入中断的应用实例
