计算机组成原理中断控制器,中断控制器8259-计算机组成原理与汇编语言-电子发烧友网站...

news/2024/5/20 13:55:02/文章来源:https://blog.csdn.net/weixin_39622587/article/details/118774552

5.2.3 中断控制器8259

·弄清芯片外部引线以便将它们连接到系统中;

·了解它们的工作方式和工作特点,以便有选择地应用它们的某些工作方式;

·理解芯片内部的控制字、命令字,以便对它们进行编程;

·了解每块芯片所占的地址,以便具体进行连接;

·在上述基础上实现对芯片的初始化及具体应用。

下面我们就开始具体介绍可编程中断控制器8259。

1. 8259的外部引线

可编程中断控制器8259外部引线图如图5.15所示。

D0-D7为双向数据线,与系统总线的数据线相连接。

WR、RD 为写和读控制信号,与系统总线的读写信号相连接。

CS为片选信号,只有CS 为低电平时,才能实现CPU对8259的写或读操作。

A0是8259内部寄存器的选择信号。

INT为8259的中断请求输出信号,可直接接到CPU的INTR输入端。

INIT为中断响应输入信号。

CAS0~CAS2为级联控制线。

SP/EN 为双功能引线。

IR0~IR7中断请求输入端。

8259的内部有多个寄存器,其中包括:

中断请求寄存器(IRR),其内部保存着所有外部中断源IR0~IR7的中断请求状态。

中断服务寄存器(ISR),用来保存所有正在服务的中断源。当8259收到中断结束命令时,其寄存的状态进行调整。

中断屏蔽寄存器(IMR),保存着被屏蔽的所有中断源。其屏蔽功能可用命令修改。

1295e829bef2e285917a0375cfe26edd.png

a04b223741de7908b20f75d00ea73384.png

2. 8259的工作方式

通过编程,可以设置8259的不同工作方式,以便适应不同环境的需要。这也说明8259工作的灵活性和适应性。

(1) 8080/85与8086/88工作模式

(2) 特殊屏蔽方式

df1d95a8f4225bb4140ddf1130e7e0e2.png

dafe6574b04d87b1182b2033bab74cde.png

在正常情况下,当一个中断请求被响应时,8259将禁止所有同级及更低优先级中断请求,这就称为一般屏蔽方式。

但是,在一特殊情况下,希望也允许较低优先级的中断请求产生中断。这时,可用特殊屏蔽方式。要做到这一点,需要利用后面将要提到的8259初始化命令字。

一个特殊屏蔽方式的示意图如图5.19所示,其中SMM等需要参看后面的命令字的定义。

9699aa30c9248bf6c83dfb3160aba8a1.png

(3) 中断结束

8259中,中断结束是利用复位ISR中的相应位来实现的。

具体有两种方法:

① 自动结束。

② 利用命令结束。

(a)一般中断结束命令(EOI)。

(b)特殊中断结束命令(SEOI)。

(4)优先级循环

根据8259命令字的规定,它有两种优先级规定:循环优先级和固定优先级。

循环优先级有3个结构:自动优先级循环用于中断源具有相等优先级的情况。

(5)查询状态

通过将操作命令字OCW3中的P位置1(后面要提到),可以查询8259的状态。

253615885fd854cfbb8290b8dc0438e6.png

3. 8259的内部控制字

(1)初始化命令字

①初始化命令字ICW1。在A0=0,D4=1时为写入,各位的功能见图5.21。

②初始化命令字ICW2。

③初始化命令字ICW3。

④初始化命令字ICW4。

9ccf1f5b72abd0ce946b8c53559afb0e.png

d869534f647ca06c6c94ed0a36892cc1.png

75b7f724af62a42dc7c820b20ca52e10.png

7d03e63310f35d0aca01967914a638a0.png

(2) 操作命令字OCW

①操作命令字OCW1。

②操作命令字OCW2。

d5ba444e3b1357613ebe39a16feb7501.png

R为优先级循环控制位,R=1为循环优先级;R=0为固定优先级。 L2、L1、L0为系统最低优先级编码,用它们来指定哪个IR优先级最低。

EOI是中断结束命令。该位为1时,将复位现行中断的中断服务寄存器中的相应位。在非自动EOI的情况下,需要用OCW2来复位当前最高优先级所对应的位。

SL用于选择L2、L1、L0编码。当SL=1时,L2~L0编码有效。SL=0时,L2~L0编码无效。除上述所说的外,R,SL,EOI编码功能见图5.26和表5.1。

813c099507fe3ea6271f97b34a368c95.png

4850989b52cde963dd419248a1ed952d.png

③操作命令字OCW3。OCW3可用以设置查询方式、特殊屏蔽方式以及读8259的中断请求寄存器IRR、

中断服务寄存器ISR、中断屏蔽寄存器IMR的当前状态。OCW3各位功能如图5.27所示。

f941a8afa421192c01f0f269712e333f.png

4. 8259的寻址与连接

为了使8259按照设计者的要求工作,就需要利用软件将初始化命令及操作命令字写入8259;

另一方面为了知道8259的工作状态,又必须将其内部的一些寄存器的内容读出来。对寄存器和命令的访问控制如表5.2所示。

8551e5da59963a85108d57212eaeaa68.png

6b0f1c464d7b1f6e29bfe64b93a9980f.png

5. 8259的初始化使用

下面是8259的初始化程序:

SET59A:MOV DX,0FF00H ;8259A的地址,A0=0

MOVAL,13H; ICW1,LT1M=0,单片,需要ICW4

OUT DX,AL

MOV DX,0FF02H;8259地址,此时A0=1

MOV AL,48H;ICW2,中断向量码

OUT DX,AL

MOV AL,03H ;ICW4,8086/88模式,自动EOI,非缓冲

OUT DX,AL;方式,一般全嵌套

MOV AL,0E0H; OCW1,屏蔽IR5,IR6,IR7

因为未用到这3个中断输入

OUT DX,AL

0a81628c2788e67216634a3f41fdb334.png

MOV DX,0FF02H

MOV AL,0;取OCW1为00H

OUT DX,AL;取00H写入IMR

IN AL,DX;读IMR

OR AL,AL;判断其内容为00H否

JNZ IMERR

MOV AL,0FFH

OUT DX,AL

IN AL,DX

ADD AL,1

JNZ IMERR

在读IMR时,可直接在对应A0=1的地址上读出;但要读IRR或ISR时,则必须先向8259写入一个命令字OCW3。以下是读出ISR内容的一段程序:

MOV DX,0FF00H ;对应A0=0

MOV AL,0BH ;0BH为OCW3

OUT DX,AL ;OCW3写入8259

IN AL,DX ;读出ISR的内容,放在AL中

具体做法如下:

(1) 编写20ms中断服务程序

CLOCK PROC FAR

PUSH AX

PUSH SI

MOV AX,SEGTIMER

MOV DS,AX

MOV SI,OFFSETTIMER

MOV AL,[SI] ;取50次计数

INC AL

MOV[SI],AL

CMP AL,50 ;判1s到否?

JNE TRNED

MOV AL,0

MOV [SI],AL

MOV AL,[SI+1] ;取60s计数

ADD AL,1

DAA

MOV [SI+1],AL

CMP AL,60H ;判1min到否?

JNE TRNED

MOV AL,0

MOV [SI+1],AL

MOVAL, [SI+2] ;取60min计数

ADD AL,1

DAA

MOV [SI+2],AL

CMP AL,60H ;判1h到否?

JNE TRNED

MOV AL,0

MOV [SI+2],AL

MOV AL,[SI+3];取小时计数

ADD AL,1

DAA

MOV [SI+3],AL

CMP AL,24H

JNE TRNED

MOV AL,0

MOV [SI+3],AL

TRNED:POP SI

POP AX

STI

IRET

ENDP

(2)确定中断向量,初始化8259

(3)初始化中断向量表

(a)直接编程初始化中断向量表

INTITB:MOV AX,0000H

MOV DS,AX

MOV SI,0120H

MOV DX,OFFSETCLOCK

MOV [SI],DX

MOV DX,SEGCLOCK

MOV [SI+2],DX

(b) DOS系统调用

若在DOS下工作,则可采用DOS系统调用:

INT 21H的功能25H

25H→AH

中断向量码→AL

中断服务程序段:偏移量→DS:DX

程序如下:

MOV AH,25H ;功能号

MOV AL,48H ;中断向量码

MOV DX,SEGCLOCK

MOV DS,DX

MOV DX,OFFSETCLOCK

INT21H

6. 8259的级联

当微型机系统中的中断源较多,一片8259不能解决问题时,可以采用级联工作方式。这时指定一片8259为主控芯片,它的INT接到CPU上而其余的8259芯片均作为

从属芯片,其INT输出接到主控芯片的IR输入端。由于主控8259有8个IR输入端,故一个主控8259可以连接8片从属8259,最多允许有64个IR输入。

9d2e1e66c1296c1fad281090ea4770d4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_751681.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python编程:socket实现简单的网站服务器

通过:127.0.0.1:8000 来访问 发送字符串 # 用socket实现一个简单的服务器,可以通过浏览器来访问import socketdef handle(conn): # 请求处理函数data conn.recv(1024)print(data)conn.send(bytes("HTTP/1.1 200 OK\r\n\r\n",encoding"…

整合营销系统推荐乐云seo_整合营销是什么意思 整合营销的特点

【整合营销】整合营销是什么意思 整合营销的特点整合营销的特点①在整合营销传播中,消费者处于核心地位。②对消费者深刻全面地了解,是以建立资料库为基础的。③整合营销传播的核心工作是培养真正的"消费者价值"观,与那些最有价值的…

服务器知识网站,分享5个服务器的知识点

企业常常在租用服务器时面对一堆的服务器配置数据感到无所适从,配置中的数据是什么意思,能够为我的需求提供何种帮助,这都是企业在租用服务器时考虑的问题。今天以问答的方式为大家解读一下:1 双路等于双核么?答案:不是无论服务器…

我的家乡html网页设计,创作一个以“我的家乡”为主题的网站

任务流程第一步明确任务目标第二步明确任务内容第三步根据辅导资料完成相应学习第四步完成任务第五步复习(任务/课程)任务目标创作一个以“我的家乡”为主题的网站,首页命名为“index.html”,保存到网站根目录下,其他子页(至少5个)以对应内容拼音命名&am…

支持html5的视频网站吗,检测浏览器是否支持html5视频的代码

在http://www.w3school.com.cn学习html5的时候,看到一个检测您的浏览器是否支持 html5 视频的方法:运行效果:1.在editplus中运行2.在chrome浏览器中运行代码部分:复制代码代码如下:function checkvideo(){if(!!document.createele…

18个常用的网站性能测试工具

网站的加载速度是决定网站等级的重要因素,值得站长特别关注。原因很简单,没有人愿意为了打开一个网页而等老半天,换句话说,如果你的网站打开速度 很慢,将流失大量的访客,甚至出现多米诺效应的不良影响。在埋…

18个常用的网站性能测试工具

网站的加载速度是决定网站等级的重要因素,值得站长特别关注。原因很简单,没有人愿意为了打开一个网页而等老半天,换句话说,如果你的网站打开速度 很慢,将流失大量的访客,甚至出现多米诺效应的不良影响。在埋…

分享:ThinkPHP和Webpack前后端结合构建SEO多页应用的一个思路

有时候遇到的需求是这样的: 部分页面,如详情页,需要做SEO优化,而部分页面需要实现复杂的交互,如用户后台,可发布信息。 之前采用过一次,Nuxt.js 等前后端同构的方案。 优点就是一套js代码&…

最好用的临时邮箱网站

做为一个经常在网上瞎逛的人,就避免不了需要注册一些账号,有些小网站总是令人不放心的,所以我们总是会陷入纠结,注册吧,怕泄露个人隐私,不注册吧还总好奇里面的东西。现在不用纠结了!一次性邮箱…

推荐一个临时邮箱生成网站,专门用于各种注册用途

很多时候我们访问某些论坛或者网站,需要注册一个用户才能使用完整功能,而现在用户注册除了手机外,大多数还是需要一个电子邮箱才行。 而我们注册这些论坛,可能注册完使用了网站的功能之后,以后就不会再用到了。如果使…

大型网站的灵魂——性能

前言 在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我…

那些你可能需要的音乐聚合网站

我平常用网易云来听音乐 http://music.163.com/ ,网易云除了歌好听,评论更有故事。之前已经写过网易云音乐了,有兴趣看看之前的文章那些你可能不知道的网易云音乐奇技淫巧可惜周杰伦的大部分歌曲网易没有版权,还好我保存了一份杰伦…

那些有意思的网站

最近微博上发现一个狗屁不通文章生成器,试了下,有点意思,接着又发现了不少类似有意思的网站,正好做个整理分享下。狗屁不通文章生成器写文章没有思路,来教你一本正经的胡说八道https://suulnnka.github.io/BullshitGen…

那些有趣的网站

之前分享过那些有意思的网站 ,这里继续分享一波,也许你用得上。福利单词一边背单词一边看妹子的网站,用电脑打开,配合ctrlw 关闭新窗口,不知不觉就背了百来个词了 https://easychen.gitee.io/foxdict/工资计算器简单、…

那些好玩的生成器网站

2019 年时间不多了,还有6天就彻底告别2019进入2020了。这张图片通过网站 https://c.yonghuigj.com/cx3/2088/ 生成的,是不很应景,下面整理几个好玩的生成器网站。Logo 生成器一个简单的 Logo 生成器,可以让你快速制作 Pornhub、Yo…

那些有意思的网站彩蛋

苏生不惑第 88 篇原创文章很多电影会在结尾留下彩蛋,比如电影《无问西东》片尾的一段七分钟读懂中国大师的彩蛋,还有去年周杰伦新歌《说好不哭》,知乎网友挖出的一系列彩蛋 。在一些网站和app里也会隐藏一些彩蛋,第一次见的时候还…

那些有意思的网站(二)

苏生不惑第 98 篇原创文章之前写过 那些有意思的网站 和 那些有趣的网站 ,这里继续分享那些有意思的网站。苹果档案这是一个苹果公司档案网站(非官方),收集了苹果公司从成立以来的所有广告、海报和宣传材料 https://www.applearch…

分析你的浏览器历史记录,看看你喜欢访问哪些网站

苏生不惑第 103 篇原创文章,将本公众号设为星标,及时看最新文章。浏览器都有访问历史记录,Chrome 浏览器点击右上角。进入 chrome://history/ 可以看到你访问过的所有网页。除了本地记录,谷歌还帮你保存在云端,前提是你…

那些好玩的生成器网站(二)

苏生不惑第105 篇原创文章,将本公众号设为星标,第一时间看最新文章。之前写过 那些好玩的生成器网站 ,这里继续整理些好玩的生成器网站。生成小瓶子最近微博上的话题 #小瓶子涂鸦大赛#很火。小瓶子的状态代表你对事物喜好的程度,喜…

如何搞定某些网站不让复制文字

苏生不惑第121 篇原创文章,将本公众号设为星标,第一时间看最新文章。浏览某些网站的时候,看到一段不错的话想复制下来,结果竟然要登录,甚至你都选择不了文字,因为被禁用了,下面就分享几种解决方…