中断程序的作用,plc中断程序的作用?

#头条群星9月榜#

8086中断中断控制器芯片8259A控制,其内部结构如下图:

中断程序的作用,plc中断程序的作用?

图1

CPU与8259的连接如下图:

中断程序的作用,plc中断程序的作用?

图2

要特别注意,8259由引脚INT向CPU发出中断请求,CPU则通过INTA引脚响应这个请求。

下面是一个中断程序,这个程序是显示10遍字符串‘A 8259A Interrupt’:

中断程序的作用,plc中断程序的作用?

图3

上图是定义字符串

中断程序的作用,plc中断程序的作用?

图4

上图是保存原中断向量表中的8号中断源的地址,调用了INT 21H的35H号功能。

中断程序的作用,plc中断程序的作用?

图5

上图是将自己编写的中断程序new08的入口地址放入中断向量表类型8的存储单元中,调用了INT 21H的25H号功能。

中断程序的作用,plc中断程序的作用?

图6

由于上图的中断向量表是系统设定的,只能临时更改,所以要把类型8中断的向量地址保存下来。

中断程序的作用,plc中断程序的作用?

图7

注意图1和图2中8259有8个中断采集引脚IR0-IR8,但在某个具体的程序中,不一定要全部用到,所以可以通过中断屏蔽寄存器IMR设定哪些引脚生效。上图是保证IR0引脚有效,用于接收定时器8253的中断请求。

中断程序的作用,plc中断程序的作用?

图8

主程序运行到这里以后,就在这里循环等待中断程序的中断请求。

中断程序的作用,plc中断程序的作用?

从上图开始进入中断程序。

中断程序的作用,plc中断程序的作用?

注意counter是中断程序和主程序进行交流的变量。

中断程序的作用,plc中断程序的作用?

中断程序的作用,plc中断程序的作用?

上面两个图是从字符串‘A 8259A Interrupt’逐个取出字符,并调用int10h进行显示,其中的BX表示字符显示的位置和颜色,AH是INT10h的功能号。

中断程序的作用,plc中断程序的作用?

中断程序每调用一次,就显示一次字符串,每次运行完以后都要恢复图3中保存的原中断向量表中的8号中断源的地址。

中断程序的作用,plc中断程序的作用?

最后要恢复图4中保存的原中断类型8在向量表中的地址和图7中保存的原中断屏蔽寄存器IMR中的内容。

上面程序这个编程思路可以概括如下:

1:开始编写程序的时候,我们要有图2的大概印象,即8259和8086是通过中断引脚INT和INTR连接的,我们编写的这个程序,是要响应8259通过INT引脚向CPU发出的中断请求的,这个中断请求可以是一个5V的高电平。

2:8259每隔一段时间(比如1秒钟)才发出一次请求。

3:8086响应一次中断请求就执行一次中断程序new08。

4:由于8259A1秒钟才发出一次请求,而CPU执行指令的时间则非常快(纳秒级),那么,CPU多余的时间怎么办呢?因此,主程序中必须有一个循环等待指定(图8),也就是说,当CPU响应一次中断即执行完一次中断程序以后,多余的时间就执行循环指令,等待下一次中断请求的到来。

5:必须把主程序和中断程序区分开来,主程序肯定会被CPU执行,中断程序则只有当INT引脚出现8259的中断请求以后才会被执行。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.summeng.com/44187.html