- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
控制位含义 高速计数器的当前值寄存器和设定值寄存器 每个高速计数器都有1个32位的当前值寄存器和1个32位的设定值寄存器,当前值和设定值都是有符号的整数。为了向高速计数器装入新的当前值和设定值,必须先将当前值和设定值以双字的数据类型装入如表5-17所示的特殊继电器中。 4. 应用实例 要对一高速事件精确控制,通过对脉冲信号进行增计数,计数当前值达到24产生中断,重新从0计数,对中断次数进行累计。计数方向用一个外部信号控制,并能实现外部复位。所用的主机型号为CPU221。 设计步骤: ①选择高速计数器HSC0,并确定工作方式4。 ②令SM37=16#F8 ③执行HDEF指令,输入端HSC为0,MODE为4。 ④装入当前值,令SMD38=0。 ⑤装入设定值,令SMD42=24。 ⑥执行中断连接ATCH指令,输入端INT为INT0,EVNT为12。 主程序、初始化子程序和中断程序分别如图5.12、图5.13和图5.14所示。 图5.12 主程序 图5.13 初始化子程序 图5.13 初始化子程序 12 12// 图5.14 中断程序 返回本节 * 谢 谢 大 家! * 导言 贸易 对外贸易 国际贸易 货物贸易与服务贸易 贸易差额 中断队列 CPU221 CPU222 CPU224 CPU226 溢出位 通信中断 4个 4个 4个 8个 SM4.0 I/O中断 16个 16个 16个 16个 SM4.1 时基中断 8个 8个 8个 8个 SM4.2 表4.4 中断队列的长度及溢出位 2. 中断调用 即调用中断程序,使系统对特殊的内部或外部事件作出响应。系统响应中断时自动保存逻辑堆栈、累加器和某些特殊标志存储器位,即保护现场。中断处理完成时,又自动恢复这些单元原来的状态,即恢复现场。 (1)中断调用指令 (2)程序实例 (1)中断调用指令 (一)全局中断允许指令ENI、全局中断禁止指令DISI 全局中断允许(ENI)指令,全局地允许所有被连接的中断事件。 全局中断禁止(DISI)指令,全局地禁止处理所有中断事件。执行DISI指令后,出现的中断事件就进入中断队伍排队等候,直到ENI指令重新允许中断。 CPU进入RUN模式时自动禁止了中断。在RUN模式执行ENI指令后,允许所有中断。 全局中断允许指令ENI、全局中断禁止指令DISI以线圈的形式编程,无操作数。 (二)中断连接指令(ATCH)、中断分离指令(DTCH) 中断连接(ATCH)指令,用来建立某个中断事件(EVNT)和某个中断程序(INT)之间的联系。并允许这个中断事件。指令操作数INT、EVNT的数据类型均为BYTE。 在调用一个中断程序前,必须用中断连接指令,建立某中断事件与中断程序的连接,当把某个中断事件和中断程序建立连接后,该中断事件发生时会自动开中断。多个中断事件可调用同一个中断程序,但一个中断事件不能同时与多个中断程序建立连接,否则,在中断允许且某个中断事件发生时,系统默认执行与该事件建立连接的最后一个中断程序。 中断分离(DTCH)指令,用来解除某个中断事件(EVNT)和所有中断程序之间的联系,并禁止该中断事件。指令操作数EVNT的数据类型为BYTE。 可以用DTCH指令截断中断事件和中断程序之间的联系,以单独禁止某中断事件。DTCH指令使中断回到不激活或无效状态。 CPU型号 CPU221 CPU222 CPU224 CPU226 可连接中断事件数 25 31 34 可连接中断事件号 0~12,19~23,27~33 0~23,27~33 0~33 表5.4 可连接的中断事件表 INT:中断服务程序的标号。 EVNT:中断事件号。 (三)中断返回指令(RETI)、(CRETI) 中断返回指令的功能是,当中断结束时,通过中断返回指令退出中断服务程序,返回到主程序。RETI是无条件返回指令,CRETI是有条件返回指令。 (2)程序实例一 控制要求: 程序实现的功能是调用I0.1输入点的上升沿中断,若发现I/O错误,则禁止本中断,用外部条件可以禁止全局中断。 程序实现:本程序如图5.10所示。 图5.10 中断调用程序 程序实例二 定时中断采集模拟量程序例 LD SM0.1 //首次扫描时SM0.1位打 ? //开,用于调用初始化子例行程序 CALL SBR_0 //调用子程序SBR_0 LD SM0.0 //当系统处于RUN模式 //时,SM0.0始终打开(即SM0.0=1) MOVB 100, SMB34 //100毫秒放入特 //殊内存字节SMB34(SMB34和SMB35控制中断0和中断1的时间间隔) ATCH
文档评论(0)