锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2022-09-20 17:30:00 连接器fh52

文章目录

  • 命令字的初始化(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电路连接方法(补充)

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

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


8259有两个I/O端口地址:
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电路连接方法(补充)

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

相关文章