手册上有例子的。
首先清楚这些知识:
1.中断允许指令(ENI)全局地允许所有被连接的中断事件。中断禁止指令(DISI)全局地禁止处理所有中断事件。当进入RUN模式时,初始状态为禁止中断。在RUN模式,您可以执行全局中断允许指令(ENI)允许所有中断。
2.中断连接指令(ATCH)将中断事件EVNT与中断程序号INT相关联,并使能该中断事件。
3.中断分离指令(DTCH)将中断事件EVNT与中断程序之间的关联切断,并禁止该中断事件。
4.这是时间中断的事件号。
5.时基中断:
时基中断包括定时中断和定时器T32/T96中断。CPU可以支持定时中断。可以用定时中断指定一个周期性的活动。周期以1 ms为增量单位,周期时间可从1 ms到255 ms。对定时中断0,必须把周期时间写入SMB34;对定时中断1,必须把周期时间写入SMB35。
明白这些后再来做时间中断
这个例子用定时中断来产生闪烁频率脉冲。当连在输入端IO.1的开关接通时,闪烁频率减半;当连在输入端I0.0的开关接通时,又恢复成原有的闪烁频率。
用特殊存储字节SMB34指定第一定时中断的时间基准,由此产生的定时中断称为中断事件10。
用特殊存储字节SMB35指定第二定时中断的时间基准,由此产生的定时中断称为中断事件11。
这两种定时中断的时间基准的设定值只能以1ms(毫秒)为单位增加,允许最小值是5ms,最大值是255ms。本例程序组成如下:
Main 主程序 初始化和指定时间基准
INT0 中断程序0 对输出Q0.0置位(Q0.0=1)
INT1 中断程序1 对输出Q0.0复位(Q0.0=0)
首先主程序中指定 时基 ,事件连接。
最后允许中断。
当输入I0.1有上升沿(从0到1)时,定时中断的时基加倍。
首先用DTCH指令切断中断关系。
再将新的时基传送进去。
最后再用ATCH将中断时间重新连接。
与上段相同
当输入I0.0有上升沿(从0到1)时,定时中断的时基恢复为原来。
首先用DTCH指令切断中断关系。
再将原来的时基传送进去。
最后再用ATCH将中断时间重新连接。
上面这些是主程序,然后再来建立两个中断程序。
执行中断程序时,Q0.0置位。
执行中断程序时,Q0.0复位。中断2时基是中断1的两倍。Q0.0输出实现闪烁。
[此贴子已经被作者于2015/6/5 16:15:07编辑过]
+5