大综合课件微机原理基础_第1页
大综合课件微机原理基础_第2页
大综合课件微机原理基础_第3页
大综合课件微机原理基础_第4页
大综合课件微机原理基础_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章中断技术教学重点中断的概念及中断的实现中断响应过程8088CPU的中断系统中断类型码和中断向量表中断控制器8259A

外部中断服务程序的编写2.中断源引起CPU中断的事件——中断源。例如:外设——请求输入输出数据,报告故障等事件——掉电、硬件故障、软件错误、非法操作、定时时间到等中断源分为:外部中断、内部中断内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断

8086/8088的外部中断信号:INTR、NMIINTR——可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。2)中断处理(中断服务)中断服务子程序特点为“远”过程(类型为FAR)要用IRET指令返回中断服务子程序要做的工作保护现场(PUSH

reg’s)

开中断(STI)

进行中断处理

恢复现场(POP

reg’s)

中断返回(IRET)

7.3中断控制器8259AIntel8259A是可编程中断控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断8259A的基本功能一片8259A可以管理8级中断,可扩展至64级每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择7.3.18259A的内部结构和引脚D7~D0INTAINT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路中断服务寄存器控制逻辑1.中断控制中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态Di位为1表示IRi引脚有中断请求;为0表示无请求中断服务寄存器ISR保存正在被8259A服务着的中断状态Di位为1表示IRi中断正在服务中;为0表示没有被服务中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态Di位为1表示IRi中断被屏蔽(禁止);为0表示允许2.与处理器接口A0RD*WR*CS*功能0100110000101010×110×××1写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态3.中断级连一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)示例7.3.28259A的工作方式普通全嵌套方式特殊全嵌套方式自动循环方式特殊循环方式优先权固定方式优先权循环方式设置优先权方式普通中断结束方式特殊中断结束方式自动中断结束方式非自动中断结束方式结束中断处理方式屏蔽中断源方式普通屏蔽方式特殊屏蔽方式中断触发方式边沿触发方式电平触发方式数据线连接方式缓冲方式非缓冲方式7.3.38259A的编程初始化编程8259A开始工作前,必须进行初始化编程给8259A写入初始化命令字ICW中断操作编程在8259A工作期间可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作还可以读取8259A的信息,以便了解他的工作状态1.初始化命令字ICW初始化命令字ICW最多有4个8259A在开始工作前必须写入必须按照ICW1~ICW4顺序写入ICW1和ICW2是必须送的ICW3和ICW4由工作方式决定流程D7D6D5D4D3D2D1D0ICW1×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意为1为0都可以(建议为0)1——只能为1,作为标志中断触发方式:LTIM=1,电平触发方式LTIM=0,边沿触发方式规定单片或级连方式:SNGL=1,单片方式SNGL=0,级连方式是否写入ICW4IC4=1,要写入ICW4IC4=0,不写入ICW4,即ICW4规定的位全为0ICW2T7T6T5T4T3×××D7D6D5D4D3D2D1D0设置中断向量号T7~T3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、……、IR7为111ICW3S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字主片8259A:Si=1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0~ID2编码说明从片INT引脚接到主片哪个IR引脚ICW4000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)数据线的缓冲方式:缓冲方式(BUF=1)非缓冲方式(BUF=0)主片/从片选择:主片(M/S=1)从片(M/S=0)中断结束方式:自动中断结束(AEOI=1)非自动中断结束(AEOI=0)微处理器类型:16位80x86(

PM=1)8位8080/8085(

PM=0)例1、试按照如下要求对8259A设置初始化命令字:系统中仅用一片8259A,中断请求信号采用边沿触发方式;中断类型码为08H~0FH;用全嵌套、缓冲、非自动结束中断方式。8259A的端口地址为20H和21H。

MOVAL,13HOUT20H,ALMOVAL,8OUT21H,ALMOVAL,0DHOUT21H,AL

该片8259A的初始化设置的程序段如下:2.操作命令字OCW8259A工作期间,可以随时接受操作命令字OCWOCW共有3个:OCW1~OCW3写入时没有顺序要求,需要哪个OCW就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字内容写入中断屏蔽寄存器IMRDi=Mi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用产生中断结束EOI命令和改变优先权顺序L2~L0的3位编码指定IR引脚OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式P、RR和RIS规定随后读取的状态字含义3.读取状态字CPU可读出IRR、ISR、IMR和查询字A0为低,由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字而A0引脚为高电平时读取的都是IMR查询字反映8259A是否有中断请求D7D6D5D4D3D2D1D07.48088中断系统8088的中断系统采用向量中断机制能够处理256个中断用中断向量号0~255区别可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理7.4.18088的中断类型非屏蔽中断源中断逻辑INTO指令单步中断除法错误INTN指令CPUINTRNMI可屏蔽中断源8259A中断控制器IR0IR1IR2IR3IR4IR5IR6IR7外设中断源

INTA内部中断除法错中断指令中断溢出中断单步中断外部中断非屏蔽中断可屏蔽中断7.4.38088的中断向量表中断向量:中断服务程序的入口地址(首地址)逻辑地址含有段地址CS和偏移地址IP(32位)每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始256个中断占用1KB区域,就形成中断向量表向量号为N的中断向量的物理地址=N×4例3、若80x86系统采用的8259A的中断类型码为88H,试问这个中断源的中断请求信号应连向8259A的哪个中断输人端?中断服务程序的段地址和偏移地址应分别填人哪两个字单元?

88H的低3位为000,故中断源的中断请求信号连接到8259A的IR0输入端;中断服务程序的偏移地址和段地址分别填人4n和4n+2两个字单元,而4*88H=220H,故段地址填入00222H字单元(即00222H和00223H两个字节单元),偏移地址填人00220H字单元(即00220H和00221H两个字节单元)。

中断向量和中断向量表例4:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址1E000H+0A00H1EA00H中断类型号3×4=000CH…….00(IPL)0A(IPH)00(CSL)1E(CSH)…....中断服务程序7.5.3中断服务程序设计举例由PCXT机外部产生中断请求的简单中断程序。

系统将8259A的中断输入线IR0—IR7初始化为由低变高的边沿触发,通过一开关(单稳、防抖)将中断请求信号接到PCXT总线的引脚B4,即IRQ2上。该开关先输出低电平,运行程序显示提示信息“WAITINTERRUPT”后再将开关输出高电平,使IRQ2的电平由低变高,于是向8259A的中断输入线发出了中断请求信号。成功后再将开关返回到低电平。该程序可以用到任何可以产生中断请求信号的外设接口的电路上。分析:8259A的端口地址为20H和21H,要完成两项工作:一、中断服务程序入口地址装入;二、使用的命令字有屏蔽字OCWl和中断结束命令字OCW2,进行中断屏蔽和中断结束处理。stacksegmentstack'stack'dw32dup(?)stackendsdatasegmentDA1DB'WAITINTERRUPT',0AH,0DH,'$'DA2DB'INTERRUPTPROCESSING',0AH,0DH,'$'DA3DB'PROGRAMTERMINATEDNORMALLY',DB0AH,0DH,'$'dataends

codesegmentbeginprocfarassumess:stack,cs:code,ds:datapushdssunax,axpushaxMOVAX,SEGIRQ2ISMOVDS,AXMOVDX,OFFSETIRQ2ISMOVAX,250AHINT21Hmovax,datamovds,a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论