资讯详情

7. 【可编程中断控制器8259A】(下):ICW、OCW、内部寄存器的寻址方法、使用举例

文章目录

  • 命令字的初始化(ICW)
    • 1、ICW1:芯片控制初始化命令,写入偶地址端口。
    • 2、ICW2:中断类型码初始化命令字,写入奇地址端口
    • 3、ICW3:主从片初始化命令字,写入奇地址端口【主片与从片】ICW不同的是,初始化时要分开写
    • 4、ICW4:工作方式命令,写入奇地址端口
    • ICW1~ICW4初始化过程顺序不能颠倒
    • 初始化ICW应注意的问题
  • 操作命令字(OCW)
    • 1、OCW1:中断屏蔽命令,写入奇地址端口
    • 2、OCW2:设置优先循环模式和中断结束模式的操作命令,写入偶尔地址端口
    • 3、OCW三、写入偶地址端口
    • 初始化OCW应注意的问题
  • 8259A内部寄存器的搜索方法
  • ----------------------------------------------------------------
  • 8259A编程举例
    • 例子1:单片8259A
    • 例子2:两片8259A
  • 两片8259A电路连接方法(补充)

分为两类: (1)初始化控制字: ICW1、ICW2、 ICW3、ICW4 (2)操作命令字: OCW1、OCW2、 OCW3

也分为两类: (1)初始化编程: 是对8259A初始化命令字写入工作前,是微机上电时的原始化命令字BIOS在整个系统工作过程中完成并保持不变。 (2)操作命令编程: 它是在应用程序中进行的,8259的工作模式可以在初始化后的任何时候写入。

A0=0 偶地址端口 A0=1 奇地址端口 对8259命令字的初始化操作命令字的写入及对8259工作状态读出是通过这两个端口地址实现的。 由于8259只有两个端口地址,控制字多达7个,因此需要通过写入顺序和特征位区分它们。


命令字的初始化(ICW)

写初始化命令字时,必须按顺序填写,并要求ICW1写入偶地址端口,其他初始命令写入奇地址端口。

1、ICW1:芯片控制初始化命令,写入偶地址端口。

在这里插入图片描述

2、ICW2:中断类型码初始化命令字,写入奇地址端口

3、ICW3:主从片初始化命令字,写入奇地址端口【主片与从片】ICW不同的是,初始化时要分开写

多片8259时只包含在系统中,ICW3才有意义。 当ICW1的SNGL=1时,系统中只有一个8259,ICW3不设。 只有当ICW1的SNGL=0时,说明系统中有多片8259,才设置ICW3。

若8259为主片,ICW3用于指示哪个中断输入引脚有从片连接。 哪一个是1,说明哪一个是从片相连的, 哪一个是0,说明哪一个是无从片连接的。

若8259为从片,ICW用于指示从片INT引脚是连接到主片的中断输入引脚。

4、ICW4:工作方式命令,写入奇地址端口

ICW1~ICW4初始化过程顺序不能颠倒

初始化ICW应注意的问题

①初始化前中断,初始化后中断。 ②系统中的每片8259都要初始化。 ③初始化必须按顺序进行,不能颠倒。 ④确保每个初始化命令字都写入正确的端口。 ⑤级联时,主从片的ICW3要分开写。 ⑥初始化后,如果要改变某一点ICW,必须重新编程初始化,不能单独写入一个ICW。


操作命令字(OCW)

8259有三个操作命令,设置在应用程序中。设置时对顺序没有严格要求,但对端口地址有严格要求。 OCW写入奇地址口,OCW2、OCW写入偶地址口

1、OCW1:中断屏蔽命令,写入奇地址端口

中断屏蔽命令中的每个人和中断请求中的每个人 一对应,要屏蔽哪个上的中断请求,将OCW1中哪位置1。 其实就是写IMR,给IMR各位赋值。 读奇地址端口的内容,得到的是IMR的值。

例子,要禁止IR2及IR如何设置8259命令字,如何取消引脚上的中断请求。(端口地址为60H,61H)

IN  AL,61H  ;奇地址 OR  AL,0001 0100B  OUT  61H,AL  IN  AL, 61H  ;奇地址 AND  AL,1110 1011B OUT  61H,AL 

2、OCW2:用于设置优先级循环方式和中断结束方式的操作命令字,写入偶地址端口

L2~L0有两层含义: ①当OCW2发特别中断结束命令时,L2~L0指出了。 ②当OCW2发循环命令的特殊优先级时,L2~L0指出了

R、SL、EOI配合决定了8259的优先循环和中断结束。fnt> R:设置优先级循环方式的,和SL配合决定优先级自动循环还是特殊循环。 EOI:设置中断结束方式的,和SL配合决定中断结束方式是一般中断结束还是特殊中断结束。

3、OCW3:写入偶地址端口

例子:

初始化OCW应注意的问题

操作命令字有3个,它们可在编程过程中反复设置,每设置一次,8259就按所设置的方式操作,操作完成后,所做的设置就不起作用了,再要进行一种操作时,要重新设置。 操作命令字的设置没有一定的顺序,但OCW1要写入奇地址口,OCW2和OCW3要写入偶地址口。


8259A内部寄存器的寻址方法


----------------------------------------------------------------

8259A编程举例

例子1:单片8259A

按以下要求初始化8259A:

  • 接口地址为20H和21H;
  • 中断为上升沿触发;单片8259A;不写ICW4;
  • 与IR0-IR3对应的中断向量码为08H-0BH;
  • IR4-IR7不使用。

初始化程序如下:


例子2:两片8259A

写出主8259A和从8259A的初始化程序段

  • 2片8259级联,从片的INT接主片的IR2。
  • 端口地址:主片20H、21H,从片A0H、A1H。
  • 主片和从片均采用边沿触发。
  • 主片采用特殊全嵌套方式,从片是一般全嵌套方式。
  • 采用非缓冲方式,主片接+5V,从片接地。
  • 主片的中断类型号为08H~ 0FH,从片的中断类型号为70H~77H。


两片8259A电路连接方法(补充)

标签: 连接器fh52

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台