只用cpu上的一个中断lpc1788 引脚中断怎样检测到5个

2013年12月 VB大版内专家分月排行榜第二2013年3月 VB大版内专家分月排行榜第二2013年1月 VB大版内专家分月排行榜第二2012年9月 VB大版内专家分月排行榜第二2012年8月 VB大版内专家分月排行榜第二2012年7月 VB大版内专家分月排行榜第二2006年7月 VB大版内专家分月排行榜第二2006年5月 VB大版内专家分月排行榜第二
2014年9月 VB大版内专家分月排行榜第三2013年7月 VB大版内专家分月排行榜第三2013年6月 VB大版内专家分月排行榜第三2013年4月 VB大版内专家分月排行榜第三2012年11月 VB大版内专家分月排行榜第三2006年6月 VB大版内专家分月排行榜第三2006年4月 VB大版内专家分月排行榜第三2002年12月 VB大版内专家分月排行榜第三2002年11月 VB大版内专家分月排行榜第三
匿名用户不能发表回复!|单片机的5个中断源_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机的5个中断源
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢据counterpoint发布的数据,2017年全球前六大手机芯片企……
2018年才刚过没多久,区块链概念股一片火热。沉寂已久的……
近日三星电子宣布开发出核心电池技术,其研究机构三星先……
近年来汽车电子的发展迅猛,各种LED大灯、辅助驾驶、主动……
前不久,罗德与施瓦茨公司(R&S)召开新品发布会,推出了一……
演讲人:徐济炜时间: 10:00:00
演讲人:沈剑安时间: 10:00:00
演讲人:孙彬时间: 10:00:00
预算:¥30000预算:¥250000
广东省广东省
单片机外中断使用方面的问题及其解决方法
[导读] 摘要 通过分析51单片机外中断I/O入口的内部结构,解释了外中断不能被正常响应的原因,并提出了解决该问题的方法。关键词:单片机,外中断,干扰在长期使用51单片机的过程中,我们发现单片机在工业生产现场等干扰较
&摘要 通过分析51单片机外中断I/O入口的内部结构,解释了外中断不能被正常响应的原因,并提出了解决该问题的方法。本文引用地址:
关键词:单片机,外中断,干扰
在长期使用51单片机的过程中,我们发现单片机在工业生产现场等干扰较强的环境工作时,有时确已产生定义为下降沿触发方式的外中断,然而用仪器测量已经送入单片机的INTX引脚时,单片机却不能够正常响应中断。在排除了可能由程序导致的问题之后,再检查CPU的当前状态,发现中断级别、中断允许、中断触发方式也都表明应该响应中断。后经分析及测试,发现是单片机INTX引脚内部端口锁存器被置为零所致。当端口被封锁为零时,从该引脚引入的下降沿表示的中断申请将丢失,中断当然不被响应。由于程序中并未使用可将端口锁存器置为零的指令,且这种情况的产生具有一定的随机性,并非经常发生,所以认为这种现象可能是因电路干扰或噪声造成锁存器误动作导致的。同时我们还认为这种误动作和P3口的内部结构及操作方式有一定关系。
单片机外中断输入端的P3口是具有第二变异功能的准双向口,其每一位的内部结构如图1所示。当变异功能输出为高电平时,位口是普通I/O口。此时如对I/O口进行写操作,数据由内部总线写入锁存器,经与非门和MOS管两次反相后送出引脚;如对I/O口进行读操作,则必须先将锁存器置为1,使MOS管截止,引脚被片内负载MOS管(图中标为上拉电阻)上拉为高电平,然后可进行输入操作,当输入为低电平时它能被拉成低电平,引脚信息经两个缓冲器进入内总线;如果使用第二功能(变异功能),输入锁存器同样也必须先被置为1,这时引脚受变异功能输出控制,若需使用变异功能输入,则锁存器和变异输出必须同时置为1,使MOS管截止,变异功能输入随引脚的变化而变化。估计在第二功能时只能用于输入中断的P3.2和P3.3口,内部可能没有变异功能输出线,即使有,也只能上拉为固定的高电平。可见,单片机P3口不管是通用I/O口还是变异功能输入,其锁存器都必须先置为1。单片机复位后所有I/O口的状态都是1,一般在系统的初始化程序中定义过中断优先级,并在开中断之后单片机即可响应中断,此后若关掉相应中断允许位(置为0),则需从引脚进入单片机的中断有效信号(低电平或下降沿)虽然仍可进入并使IE0(或IE1)置为1,但不能引起中断,当然程序可查寻IE了解中断源是否产生了中断申请。
笔者注意到单片机I/O口有两类指令隐含着对I/O口锁存器的写入。
第一类是读I/O引脚指令,在执行了读I/O引脚指令后,I/O口锁存器状态将变得和引脚相同,如果在中断引脚为低电平期间正巧执行了这种指令,锁存器将变为0态,中断从此将不能进入。
第二类是读-修改-写锁存器指令,例如SETB PX.Y和JBC PX.Y,LABEL等,这些指令被执行时总是先读入I/O口全部8位数据,作一定修改或判断后再回写到锁存器中。
在笔者的程序中没有使用第一类指令,第二类指令倒是有,不过,不是对P3.2(或P3.3)进行操作,而是对P3.4和P3.5进行操作(因为系统中使用了P3.4和P3.5作为普通I/O位口)。但是,我们认为有可能在执行这一类指令修改P3.4和P3.5锁存器位时,由于受到较强的干扰而误将P3.2(或P3.3)写成了0,从而出现上述情况。为了验证这一点,我们去掉了程序中对P3.4和P3.5进行操作的指令,发现中断不能进入的现象基本消失,但在极个别情况下,中断仍不能进入,这种极个别的现象纯粹是随机干扰所致。
为彻底解决中断不能进入的问题,采用了如下两种措施:
(1)放弃P3口剩余的位口,不将其作为普通I/O位口用,而用单片机外部扩充的接口取而代之;
(2)在中断服务程序即将退出之前,往P3.2(或P3.3)口写1,以使P3.2(或P3.3)位的锁存器状态在下一次中断到来之前为1,从而保证不漏掉任何一次中断申请。
英特尔于日宣布了4004处理器及其芯片集,它是芯片巨人第一个完整的单片机和第一个商业微处理器。4004处理器有2300个晶体管,手指甲大小,计算性能与第一代电子计算机相当,但第一代计算机需要占据整间房......关键字:
在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......关键字:
我 要 评 论
热门关键词单片机原理及应用课后习题答案第5章作业_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机原理及应用课后习题答案第5章作业
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
第5章 中断技术
第5章中断技术 5.1 中断的基本概念 一。什么是中断 CPU在正常运行时候,由于内部/外部 事件或程序员预先安排的事件,引起CPU 暂停正在运行的程序,而转到为内部/外 部事件或为预先安排的事件服务的程序中 去。服务完毕,再返回去继续执行被暂停 的程序。 主中断申请 程 序 返回 中断服 务程序 二。中断源与中断识别1.中断源:发出中断请求的外部设备或引 起中断的内部原因称为中断源。 ? 外设请求的中断? 中断指令引起的中断? 程序差错引起的中断 ? 硬件故障引起的中断 2.中断识别 CPU寻找中断源的过程称为中断识别 中断识别的目的:获得该中断源的服务程 序的入口地址。 中断识别的方法:向量中断或查询中断 三。中断向量、向量表 中断向量:中断服务程序的入口地址 中断向量表:把系统中所有中断向量集中 起来放到存储器的某一区域,这个存储 区叫中断向量表。 四。中断类型号、向量指针 ? 中断类型号:系统给每个中断源分 配一个唯一的编号,称为中断类型 号。? 中断向量指针:中断向量在存储器 中的地址。 以下是8088CPU计算机(如IBMPC)中断向量、向量表、指针关系 参看下图 中断类型号类型255中断向量中断向量指针CS255 IP2550 000:03 FFH 0000:03FCH供用户定义的中断 (共224个)中 断向量 (中 断服务程序 入口地址) 在表中的地溢出中断?类型32 类型31?CS31 IP310000: 007 FH 0000: 007 CH保留的中断 (共27个)类型5??0000: 0014 H CS IP CS3
H 断点中断 0000: 000C H 非屏蔽中断
H 单步中断
H 除数为 0 中断 0000: 0000 H址(中断向类型4类型3IP3CS2 IP2 CS1 IP1量指针) =中断类型号专用的中断 (共5个)类型2类型1类型0× 4CS0IP0 8088CPU 转入中断服务程序的过程 (INTCPU (3) IP 1800H F000H21H指令导致软中断)MEM 0H 中 断 向 量 表…(2)00H 18H 00H F0H00087H…CS003FFH…例:执行 INT 21H 向量地址= 21H ? 4 =84H (1)(4)PUSH??F000 : 1800HIRET…… (1)CPU执行INT 21H指令,CPU内部电路产生 一次中断请求,类型号为21H。 CPU内部电 路自动计算出中断向量的指针84H(21H*4)(2)CPU自动读内存(84H)字单元,读出数据送 入(IP); (3)CPU自动读内存(86H)字单元,读出数据送 入(CS); (4)CPU到(CS,IP)所指向的内存单元(中 断服务程序起始地址)取指令并执行。 五。中断向量的装入与修改(以CPU 为例) 1.中断向量的装入方法一:用MOV指令 例:假设中断类型号为60H,中断服务程序在 内存的地址为D,写出把中断向量 装入程序 MOV AX,0 ;用3条指令把中断向量指针放入DS : DI寄存器中MOV DS,AX;Mov AX,006DH;用2条指令把中断向量的偏移地址部分装入向量表 MOV DI,4*60H;MOV AX,006DH ;MOV [di],AX Mov [DI],AXINC DI;用4条指令把中断向量的断地址部分装入向 量表 INC DI Mov Mov AX ,2000H [DI], AX 方法二:用INT 指令)21H 指令(DOS功能调用例:假设中断类型号为60H,中断服务程序 在内存的地址为D,写出把中断向 量装入程序 MOV AH,25H ;设置INT 21指令的第1个参数 --DOS功能号MOV AL,60H;设置INT 21指令的第2个参数-- 中断类型号 MOV BX,2000H;设置INT 21指令的第3个参数- -中断向量段 Mov DS,BX MOV DX,006DH设置INT 21指令的第4个参数-- 中断向量偏移INT21H;DOS 功能调用 思考:课本P82例3,修改中断向量的过程,你能 六。优先级排队方式 理解吗?当系统中有多个中断源存在时,若有几个中断源同时提出申请,那么就存在CPU先响应谁 的问题。为此提出了中断优先权的概念。按优先级排队?循环轮流排队 七。中断嵌套当CPU处理一个中断源,正 在执行中断服务程序时, 又遇到优先级更高的中断 源中断请求。CPU暂停正在 执行的中断程序,去处理 这个级别更高的中断源请 求,执行它的中断服务程 序。待执行完毕,再返回 被暂停的原来的中断服务 程序。把这个过程称为中 断嵌套。主程序 中断服务1 中断服务2 (高优先级) 5.2 IBM-PC中断系统(具体一款计算机 的中断技术)8088能处理 256种中断, 分为两大类: 外部中断(又 称为硬件中断) 和内部中断又 称为软件中 断) 。其中 断分类如图INT n 指令 非屏蔽中断请求NMI中断逻辑INTR中断 控制系统 (8259A)可屏蔽 中断请求INT 3 指令INTO 指令单步 中断除数为 0中断… 硬件中断软件中断8086的中断分类 一. 外部中断 (硬件中断) ? 非屏蔽中断 NMI (类型号为2)上跳沿触发请求,不受FR(状态标志寄 存器FLAG REG) 中IF(中断标志位) 的影响,常用于处理系统的重大故障。? 可屏蔽的中断INTR (类型号由中断接口8259 芯片提供)高电平有效,CPU 是否响应,取决于 FR 中IF 的状态。常用于各种外设的中断。 二. 内部中断 (软件中断)通常由三种情况引起: (1) INT n 指令中断 (n 为中断类型号) 设置断点实际上是把指令“ INT 3” 插入 到程序中,CPU 每执行到断点处的“INT 3” 指令,便产生类型号为3 的中断。 (3) 为调试程序设置的中断(2) 处理CPU 某些错误的中断? 除法错中断 (中断类型号为0) (中断类型号为4) ? 溢出中断 (INTO)(3)单步中断 ? 断点中断 当FR 中TF = 1时,每执行一条指令, CPU 产生类型号为1 的单步中断。 三、硬件中断与软件中断的比较 1.硬件中断的特点: ?是CPU外部事件而引起的中断,具有随 机性和突发性 ?在中断响应总线周期,CPU需要发出中 断应答信号/INTA(NMI硬件中断没有)。 ?中断类型号由中断控制器芯片8259提 供(NMI硬件中断类型号由CPU固定设为2) ?是可以屏蔽的( NMI硬件中断除外) 2.软件中断的特点 ?是执行中断指令或普通指令执行出现某种故 障而引起的 ?中断响应周期,CPU没有INTA信号产生。 ?中断类型号由中断指令给出或CPU固定设置 ?是不可屏蔽的。 四。软件中断的应用 自学P89 五、中断处理过程(以硬件中断为例)总线接口H H H8088CPU主程序 old_cs:old_ipXINT8259INT IR0 IR1INTR /INTA/INTA /XINTA某 外 设H类型60H 中断服务 程序 XXXX XXXX XXXX XXXX XXXXCS=old_cs IP=old_IP FLAG=old_flagIR6 IR7H 。。。DS=0000 SS=3000 SP=0100H 总线接口H H HXINT 主程序old_cs:old_ip H8259INT IR0 IR18088CPU INTRCS=1240/INTA /XINTA某 外 设类型60H 中断服务 程序H 3000:00FA XXXX old_ip old_cs old_flag XXXX XXXX/INTAIP=0200 FLAG=old_flagIR6 IR7DS=0000SP=00FA SS=3000H中断响应之后 总线接口H H HXINT 主程序old_cs:old_ip8259INT IR0 IR18088CPU INTRCS=1240/INTA /XINTAH 类型60H 中断服务 程序H H 3000:00FA XXXX old_ip old_cs old_flag XXXX XXXX IP=0256某 外 设/INTAIR6 IR7FLAG=××××DS=0000SP=00FA SS=3000H中断返回之前 总线接口H H H8088CPU主程序old_cs:old_ipXINT8259INT IR0 IR1INTR /INTA/INTA /XINTA某 外 设H类型60H 中断服务 程序XXXX XXXX XXXX XXXX XXXXCS=old_csIP=old_IP FLAG=old_flagIR6 IR7H 。。。DS=0000 SS=3000 SP=0100H中断返回之后 五、中断处理过程(以硬件中断为例) 1.中断请求: (课本P85 图5.3①)外 设发中断请求。CPU在每条指令的最后 一个 时钟节拍,查看INT信号线。如 果FLAG寄存器的IF标志为 1(允许中断 标志),则响应中断。(既CPU产生中 断响应总线周期)。 2.中断响应: (课本P85 图5.3②③④ ⑤⑥⑦)共8拍,发2次INTA有效信号。 第一次通知中断控制器8259,已经响应 中断,请8259准备好中断类型号;第二 次从8259中读出中断类型号。 CPU自动 将当前的old_flag,old_cs,old_ip寄 存器压入堆栈。根据中断类型号,CPU 自动生成中断向量指针,自动从中断向 量表中取出中断向量,装入CS,IP寄存 器,从而跳入中断服务程序。 五、中断处理过程(以硬件中断为例) 3.中断服务程序: (课本P85 图5.3 ⑧ ) 4.中断返回: (课本P85 图5.3 ⑨⑩ ) 在中断服务程序的最后,应该放一条 IRET指令(中断返回指令)。该指令执 行时会把堆栈的原来的CS\IP\FLAG内容 弹回。 六。中断响应周期外设中断请求信号线IRi(i=0-7):?中断接口芯片8259内部中断请求寄存器 (IRR)的第IRi位硬件设置1,进一步使得 8259通过INT引脚向CPU提出中断请求。?CPU在当前指令周期的最后一个节拍硬件 检测INTR引脚,如果满足响应中断条件, CPU就硬件自动发出中断响应总线周期信号。 1.8086中断响应周期的时序图第一中断响应周期 T1 CLK 第二中断响应周期T2T3T4T1T2T3T4ALE/INTA/INTA1 /INTA2AD7-AD0类型号/LOCK 2.8086中断响应周期的说明(1)/INTA1的作用?使8259将IRR(中断请求寄存器)中当前中 断请求对应的位置清除 ?使8259将ISR(正在服务寄存器)中当前中 断请求对应的位置1。 (2) /INTA2的作用?硬件自动读出8259中断类型号 ?如果8259工作在自动结束方式,硬件自动 清除ISR中当前中断请求对应的位. 说明: 只要设置8259工作方式就能实现让8259清除 该中断的ISR中对应的位。共有2中方式可以 设定 ?自动结束方式:这种方式下,8259接到 /INTA2上什沿就清除对应的位。 ?非自动结束方式:这种方式下,8259接到 思考:中断结束后,8259必须要清除该中断的ISR中对 /INTA2不会清除对应的位,需要程序员在中 应的位。想一想,如果不清除,会导致什么不良后果? 断服务程序中写一条指令,CPU执行该指令, 会向8259发一个中断结束命令(EOI命令) (3)/LOCK的作用有效期间:/INTA1下跳沿有效, /INTA2下跳 沿无效。 作用:送到总线仲裁机构,禁止总线仲裁设 备工作,防止其它DMA控制器获得系统总线。 即CPU锁定系统总线注意:CPU有一条LOCK指令,该指 令使得下一条指令周期,/LOCK有效,供程序 员锁定系统总线用。 小结:整个中断过程是硬件和软件共同配合完 成的。中断请求,中断相应是硬件自动 完成的。中断服务处理,中断返回是程 序员用软件实现的。 二。8259A 的内部结构与引脚信号?D0-7:数据线?A0-1地址输入线,用于选择 内部端口?/CS:芯片选择,输入,低电 平8259工作 ?IR0-7,外设中断请求输入线CS RD WRD7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND?/SP| /EN,主从片设定。缓 冲控制?CAS0-2,8259主、从片专用 总线1 2 3 4 5 6 7 8 9 10 11 12 13 1428 27 26 25 24 23 22 21 20 19 18 17 16 15Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP EN CAS2图7-13 8259A 引脚图 单片8259与系统总线的连接/IOY1 VCC /CS /SP|/ENXA0XD7 - 0 /XIOR /XIOWA0 D0 - 7 /RD /WRIR0-7/XINTA/XINT/INTA/INT INTAD0~D7INT数据总线 缓冲器控制逻辑RDWRA0读写控制 逻辑 中断服务 寄存器 ISR 级联缓冲 比较器 中断屏蔽寄存器IMR 优先权 电路 PR 中断请求 寄存器 IRRCSCAS0 CAS1 CAS2IR0 IR1…IR7SP EN8259A内部逻辑框图 1. 数据总线缓冲器 8位、双向、三态,是8259A与 CPU 之间的数据接口。D0~D7直接与CPU 数据总线的 低8位连结。 2. 读/写控制逻辑CS : 接高位地址的译码输出。 8259A的两A0:常常与地址信号线XA0相连。 RD、 与CPU的RD、 相连。 WR WR 个端口地址WR与CS, A0配合写入有关的控制字。 CPU 通常利用:OUT 指令,IN 指令,RD与CS, A0配合读出 8259 A内部 有关寄存器的内容。 3. 中断请求寄存器 IRR8 位,若IRi线 有效(高电平或上跳 变),对应位置“1”,直到IRi 得到响应。 4. 中断服务寄存器 ISR8位,当IRi线的请求得到响应时,ISR对应 位置“1”。记录正在处理的IRi,当中断嵌 套时,可能多位置“1”。 5. 中断屏蔽寄存器 IMR 8位,某位置“ 1”,对应IRi位 禁止产生中断。 6. 优先权判断电路实现优先权的判断与处理,采用编码 器和比较器电路,如下图所示(了解 即可)。- 中断服务寄存器ISRISR 编 码 器?1&中 断 屏 蔽 寄 存 器 IMRIR 0 IR 1 IR 2 IR 3 IR 4 IR 5 中 断 请 求 寄 存 器比 较 器 比 较 器 比 较 器 B0 B0 B0 & A &B A0 A1 A2中 断 请 求 优 先 级 编 码 器 中 断 请 求 优 先 级 编 码 器INTIRR IR 6&IR 78259A中的中断优先权电路 具有优先级别的8输入编码器。编码器输入(D7..D0)IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0编码器输出OUT2 OUT1 OUT00 X X X X X X X 10 X X X X X X 1 00 X X X X X 1 0 00 X X X X 1 0 0 00 X X X 1 0 0 0 00 X X 1 0 0 0 0 00 X 1 0 0 0 0 0 00 1 0 0 0 0 0 0 01 0 0 0 0 1 1 1 11 0 0 1 1 0 0 1 11 0 1 0 1 0 1 0 1 7. 级联缓冲/比较器 可以实现8259A的级联,扩展外中断。 (1) CAS2、CAS1、CAS0 引脚? 主8259A:CAS2~CAS0 输出,输出被响应的从片的标志码。? 从8259A:CAS2~CAS0 输入,/INTA1有 效期接收主片发出的标志码,与自己的 标志码比较。若相等,在/INTA2有效期 间,将中断向量送至数据总线。 XD0-7 XA0 /XINTA/IOYa /IOYb /IOYcXINTCS A 0INTAINT CAS 0 CAS 1 CAS 2 IR0CS A 0INTA 8259AINTCAS 0 CAS 1CS A 0 CAS0 CAS1 CAS2INTAINT8259A 从片 A SP/EN IR78259A 主片 IR3 IR0从片 B SP/ENCAS2IR0SP/EN IR7 IR6GNDGNDVcc6 3 (2)SP / EN引脚? 当8259A工作于非缓冲方式(直接与系统数据总线XD 相连) SP 为输入,是主从芯片定义引脚。 SPSP ? 1, 主片SP ? 0, 从片 ? 当8259A工作于缓冲方式 (通过总线缓冲器与 CPU 的数据线相连)时,EN为输出,用于启动数据总线驱动器。CPUDB数据总线 驱动器OEDB8259AEN此时,主从芯片的定义由ICW4中的M/S位来设定。 三、8259A 的工作方式 8259A有多种工作方式,这些工作方 式可以通过初始化命令字(ICW1?ICW4) 和操作命令字(OCW1?OCW4)来设置。 1. 引入中断请求的方式? 边沿触发方式。以上跳沿向8259A 请求中断,上跳沿后可一直维持高电平, 不会再产生中断。 ?电平触发方式。以高电平申请中断, 但在响应中断后必须及时清除高电平, 以免引起第二次误中断。 1. 引入中断请求的方式?中断查询方式。外设通过8259A申 请 中 断 , 但 8259A 却 不 使 用 INT 信 号 向 CPU申请中断,CPU用软件查询确定中断 源,并为其服务。 2. 连接系统总线的方式?缓冲器方式在最大模式总线系统中,要求数据 总线有总线缓冲器。8259A与这种带总 线缓冲器的系统总线连接的方式称缓 冲器方式。 2. 连接系统总线的方式 ?非缓冲器方式 在最小模式总线系统中,则8259A不 需要总线缓冲器而是将其直接接至数据 总线。8259A与这种不需总线缓冲器而 直接连到系统总线的方式称非缓冲器方 式。 3. 屏蔽中断源的方式 ? 普通屏蔽方式。 ? 利用操作命令字OCW1,使屏蔽寄存器 IMR中的一位或几位置1来屏蔽一个或几 个中断源的中断请求。若要开放某一个 中断源的中断请求,则将IMR中相应的位 置0。 3. 屏蔽中断源的方式?特殊屏蔽方式。在某些场合,在执行某 一个中断服务程序时,要求允许另一个优先 级比它低的中断请求被响应,此时可采用特 殊屏蔽方式。它可通过OCW3的D6D5=11来设 定。 4. 优先级排队的方式?全嵌套方式。 在此种方式下中断优先级按0 ? 7顺序 进行排队,只允许中断级别高的中断源 去中断中断级别低的中断服务程序。 4. 优先级排队的方式?特殊全嵌套方式。 它和全嵌套方式基本相同,所不同的是在 特殊全嵌套方式下,当执行某一级中断服务 程序时,可响应同级的中断请求,从而实现 对同级中断请求的特殊嵌套(8259A级联使 用时,某从片的8个中断源对主片来说,可 以认为是同级的)。特殊全嵌套方式用于多 片级联。 ?优先级自动循环方式。 在这种方式下,优先级顺序不是固 定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,…,IR7。该方式用在系统中多个中断源优先级相等的场合。 ?优先级特殊循环方式。这种方 式与优先级自动循环方式唯一的区 别是,其初始的优先级顺序不是固 定IR0为最高,然后开始循环,而 是由程序指定IR0 ? IR7中任意一 个为最高优先级,然后再按顺序自动循环,决定优先级。 5. 结束中断的处理方式?自动中断结束方式。在中断服 务程序中,中断返回之前,不需发 中断结束命令就会自动清除该中断 源所对应的ISR位(实际上在CPU发 第二个信号(/INTA2)时,8259即自 ?非自动中断结束方式。在中断服务程序 动消除ISR中的对应位)。这种方 返回之前,必须发中断结束命令才能使ISR中 式用在多个中断不会嵌套的系统中。的当前服务位清除。 四、8259A 对ICW、OCW的识别8259A 只占两个端口,但ICW 有4个,OCW有3个。 1. A0 = 0 (偶地址端口) 8259识别的方 ICW1, OCW2, OCW3? D3 ? 0 ? ? ? ? D4 ? 0 ? ? D3 ? 1 ? ? ? ? D4 ? 0 ?(D4=1)用标志位识别 2. A0 = 1(奇地址端口) 8259识别的方法:ICW2,ICW3, ICW4OCW1按特定的写入流程识别 ? CPU写ICW1后,就启动了初始化。 ? 启动初始化后,8259就按照特定的流程 顺序识别偶地址端口,此时开发人员一 定要按照8259设定的流程顺序写ICW2、 ICW3、ICW4。 ?CPU在8259初始化程序段(写ICW1-&ICW4 部分)以外任何时候写偶地址,都被8259装 入OCW13.8259A 的初始化编程逻辑(写ICW1,就启 动初始化,程序员必须按下面流程完成初始 化,否则8259不能正常工作!) 8259A的初始化流程用ICW1设置:是否级联? 请求信号的触发方式 后面是否用ICW4 用ICW2设中断类型码 是否为级联方式? Y 本片为主片吗? 设ICW3各位对应 IR0~IR 7 的连接状况 N NN 设ICW3 高5位为0; 低3位为标识码用ICW4 吗?Y 用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为系统? END 五、8259A 的初始化命令字 8259A 初始化编程时,有四个初始化 命令字ICW ( Initialiation Command Word),即ICW1?ICW4 ;三个操作命令字 OCW(Opeiation Command Word),即 OCW1~OCW3)。 8259A 只有两个端口地址 A0=端口地址 因此,要注意 写入的顺序0 偶地址端口 1 奇地址端口有关的标志位 1. ICW1(IRi 触发方式,是否单片使用,是 否写入ICW4)A00D7 D6 D5 D4? ? ?D3D2 D1D01 LTIM ? SNGL IC4标志位 ? LTIM:规定IRi的触发方式1= 0 触发高电平触发 ? SNGL:是否单片使用1= 0单片使用级联使用 ? IC4:是否写入ICW41=后面写入ICW4 不写入ICW40 例:某8086微机系统中,使用单片 8259A,中断请求信号为上升沿触发, 需要设置ICW4,端口地址为20H,21H, 则 其 初 始 化 命 令 字 ICW1 应 为 : H,设置ICW1的指令为: MOV OUT AL,13H 20H,AL 2. ICW2(中断类型号的高5位)A01D7 D6 D5 D4 D3 D2 D1 D0T7 T6 T5 T4 T3 ? ? ?IRi 对应中断类型号的高5位(中断类型号的低3位由8259A 自动 编码产生) T7T6T5T4T3T2T1T0由ICW2规定0 0 0 0 0 1IR0 IR10 1 0? 1 1 1IR2? IR7 例 : 某 PC 机 中 8 个 可 屏 蔽 中 断 ( IR0 ? IR7 ) 的 类 型 号 为 08H ?0FH,A0=1,端口地址为21H,则ICW2为:08H,设置ICW2的指令为: MOV AL,08HOUT21H,AL 3. ICW3(级联时,主从芯片的级联引脚)1 不写入ICW3写入ICW3若ICW1 中SNGL=0 (1) 写给主片的ICW3A01D7 D6 D5 D4 D3 D2 D1 D0S7 S6 S5 S4 S3 S2 S1 S0Si = 1,表示主片IRi上接有从片。 (2) 写给从片的ICW3A01D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 ID2 ID1 ID0 从片的标志码ID2 ID1 ID0 0 0 1 0 0 ? 1 1 0 1该从片 接入主片的IR0接入主片的IR1 ?接入主片的IR7 例:某8086微机系统中,主片8259A的IR2, IR6 引脚上分别接有从片8259A,则主、从片 的ICW3初始化命令字设置如下:主片初始化命令字:(口地址设为20H, 21H) MOV OUT AL,44H 21H,AL ;44H为主片的ICW3,表 示其IR6,IR2上接有从 片 ;将ICW3写入奇地址端口从片1的初始化命令: MOV AL,02H OUT 21H,AL 从片2的初始化命令: MOV OUT AL,06H 21H,AL 4. ICW4A01D7 D6 D50 0D4D3D2D1D00 SFNM BUFM/S AEOI 1标志位用于系统 (1) SFNM: 规定8259A中断的嵌套方式=0正常的完全嵌套方式=1特殊的完全嵌套方式(单片使用时,两种方式一样。) ? 正常的完全嵌套方式高级的中断 ? 特殊的完全嵌套方式同级的或高 级的中断级联使用时,某一从片的IRi对主片来 说是同级的。 XINTA(from CPU)XINTXA5-9译码器1 020H-03FHINTAINTA(to CPU) INT 主8259A从8259AXA5-9译码器2 0A0H-0BFH/CS A0 D0-7CAS0 CAS1 CAS2 INTCAS0 CAS1 CAS2 /CS A0 D0-7XA0 XD0-7IR7 IR6 … IR0…IR7 … IR2 IR0 (2) BUF1 缓冲方式 非缓冲方式=0 (3) M/S? 当8259A 工作于缓冲方式时 (BUF=1), 1 M/S = 主8259A0从8259A ? 当8259A工作于非缓冲方式时 (BUF = 0),SP 引脚为输入,定义主从芯片,此时 M/S 不起作用。 (4) AEOI:规定中断的结束方式(如何使ISR中对应位置0)? AEOI = 1自动中断结束方式INTA 当CPU 发出第二个后,ISR 中的相应位复位,此时, 不能实现中断嵌套。 ? AEOI = 0非自动中断结束方式由程序发出EOI 命 令 (由8259A 的OCW 实现),使ISR 中相应位复位。 六、8259A 的操作命令字 对 8259A 进 行 初 始 化 编 程 后 ,8259A作好了接收中断请求输入的准备,在8259A 工作期间可由操作命令字 OCW1~OCW3 规定其各种工作方式。 1. OCW1(中断屏蔽操作命令字) 设置或清除IMR 的各个位。 A0 1 D7 ………… D0M7 Mi=1………… 表示IRi被屏蔽M0 例:设OCW1 =06H,则表示IR1 ,IR2 两 个引脚上的中断申请被屏蔽,其他 的中断申请 (IR0 ,IR3?IR7)则得到允 许。8259A编程指令为:MOVOUTAL , B ; OCW1 屏 蔽 字21H,AL ;屏蔽字写入奇地 址口的OCW1寄存器 2. OCW2 (优先取循环方式和中断 结束方式操作命令字)A0 0D7 D6 D5 D4 D3 D2 D1 D0 R SL EOI 0 0 L2 L1 L0 标志位 有两个作用:(1) 8259A 工作于非自动中断结束方式时,如何复位ISR 中的对应位? ? 正常方法:令SL = 0, EOI =1 将OCW2写入8259A后,将刚刚被服务的IRi对应位复位。 ? 特殊方法:令 SL = 1, EOI = 1 写入OCW2后,使L2L1L0指定的位复位。L2 0 0 L1 0 0 L0ISR中的Di 0 D0 1 D1 对应的IRi IR0 IR1? 1 1? 1 D7? IR7 5.48259A在PC微机系统中的应用例1.IBM-PC兼容机中系统中断接口的应用(一)、IBM-PC机中8259的硬件连接 (主板上,今集成在芯片组内部) XINTA(from CPU)XINTXA5-9译码器1 020H-03FHINTAINTA(to CPU) INT 主8259A从8259AXA5-9译码器2 0A0H-0BFH/CS A0 D0-7CAS0 CAS1 CAS2 INTCAS0 CAS1 CAS2XA0 XD0-7IR7 IR6 … IR0 …/CS A0 D0-7 IR7 … IR2 IR0 (二)、IBM-PC机中8259的初始化程序 (在BIOS中,PC机上电时得到执行)主片8259: 20H、21H为8259A的端口地址 MOV AL, 13H ; ICW1=B, 边沿触发,多片使用, 要 ICW4. OUT 20H, AL MOV AL, 08H ; ICW2=08H, IR0~IR7对应的中断类型号为08H~0FHOUT 21H, AL MOV AL,04H;44H为主片的ICW3,表示其IR2上接有从片 OUT 21H,AL MOV AL, 11H ; ICW4=11H, 特殊的嵌套方式,非自动中断结束方式OUT 21H,AL 从片8259: A0H、A1H为8259A的端口地址MOV AL, 13H ; ICW1=B, 边沿触发,多片使用, 要 ICW4. OUT 0A0H, AL MOV AL, 70H ; ICW2=08H, IR0~IR7对应的中断类型号为70H-77H OUT 0A1H, AL MOV AL,02H;表示其接在主片的IR2上(010) OUT 0A1H,ALMOV AL, 01H ; ICW4=01H, 一般的嵌套方式,非自动中断结束方式OUT 0A1H,AL 例2(来自第3章例1):设某应用系统 中,系统提供一个频率为 10KHZ 的时钟信 号,要求每隔10ms完成一次扫描键盘的工 作。为了提高CPU的工作效率,采用定时中 断的方式进行键盘的扫描。(一)硬件设计:在第3章例1的8253 定时器T0的输出OUT0连接到主片8259某 中断请求线(如IR5)上。 8253 CLK 0 10KH ZXD0-7 /XIOR /XIOW XA1 XA0译码器 10H-13HDB/RD /WRGATE 0OUT 0+5VIR5A1 A0 CSOUT 0 10ms8253 用于定时中断 10ms XINTA(from CPU)XINTXA5-9译码器1 020H-03FHINTAINTA(to CPU) INT 主8259A从8259AXA5-9译码器2 0A0H-0BFH/CS A0 D0-7CAS0 CAS1 CAS2 INTCAS0 CAS1 CAS2XA0 XD0-7IR7 IR6 … IR0 …/CS A0 D0-7 IR5 … IR2 IR0来自8253的OUT0 (二)软件设计:1.8253初始化程序(同于第3章例1软件设 计): MOV AL,14H ;通道0,写入初值位,高 8位置0, ;方式2,二进制计数。OUT 13H, AL ;写入方式到控制字寄存器 MOV AL,64H OUT 10H,AL ;写入计数初值低8位到通道0 2. 8259主片初始化程序(同于本章5.4节):MOVAL, 13H ; ICW1=B, 边沿触发,单片使用, 要 ICW4. OUT 20H, AL MOVAL, 08H ; ICW2=08H, IR0~IR7对应的中断类型号为 08H~0FH OUT 21H, AL MOVAL,04H;44H为主片的ICW3,其IR2上接有从片OUT 21H,ALMOVAL, 11H ; ICW4=09H, 特殊嵌套方式,非自动结束方式 OUT 21H,AL 3. 中断向量装入中断向量表。中断线IR5对应的中 断类型号是13,中断向量指针是13*4,即H MOV DS,0MOV AX,OFFSET int_procMOV [0034H],AXMOV AX, SEGint_procMOV [0036H],AX 4. 中断服务程序Int_proc PROC NEAR……;此处写上键盘扫描程序MOV AL, 00100XXXH ; 写OCW2,手工清除 8259ISR寄存器中的IS5位,手工结束中断方式 OUT 20H,AL IRET ;中断返回Int_procENDP
更多搜索:
赞助商链接
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 引脚电平变化中断 的文章

 

随机推荐