收藏 分享(赏)

微机原理第9章.ppt

上传人:天天快乐 文档编号:1462749 上传时间:2018-07-19 格式:PPT 页数:114 大小:1.23MB
下载 相关 举报
微机原理第9章.ppt_第1页
第1页 / 共114页
微机原理第9章.ppt_第2页
第2页 / 共114页
微机原理第9章.ppt_第3页
第3页 / 共114页
微机原理第9章.ppt_第4页
第4页 / 共114页
微机原理第9章.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

1、第 九 章中断系统与 8259A 中断控制器,.1 中断的基本概念,复习CPU与外设信息交换的控制方式种类以查询方式输入为例,当外设数据未准备好时,CPU需要不断查询外设是否准备好的状态,效率低,1.中断方式示意 (以输入中断为例),中断基本概念,2. 什么是中断?,CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回被中断的程序,这一全过程称为中断。,3. 中断源 能够引发CPU中断的信息源,(1)外部中断源(硬件中断源) I/O设备 如键盘、显示器、打印机 数据通道 如磁带、磁盘 时钟 如8254 0#,由此引发的中断 故障源 如掉电、存贮器奇偶校验错(2)内部中断源(软件中断源)

2、执行INT软件中断指令 如执行指令INT 21H CPU指令执行产生的异常 如被0除、单步执行,中断基本概念,选通信号,4. 具有中断请求功能的输入接口示意图,输入设备,锁存器(8),三态缓冲器(8),CPU 数据线,R D Q,+5 V,中断请求触发器,Q D,中断允许触发器,数据线D0位,地址译码器,INTR,地址总线,IOW,IOR,控制口选中,数据口选中,中断基本概念,5. 中断系统 为实现中断而采取的硬件和软件的确集合。,6.中断系统应具备的基本功能,对于硬件中断,接口电路应具备屏蔽和开放的功能,这种功能由程序员通过软件去控制。,能实现中断判优(中断排队),当有多个中断源提出请求时,

3、应能优先响应高级别的中断源。,中断基本概念,能够实现中断嵌套,即高级别的中断源能够中断低级别的中断服务程序。,响应中断后,能自动转入中断处理,处理完毕能自动返回断点。,设“B” 级别高于“A”,中断基本概念,1. 开中断指令 STI 功能:使F寄存器中I标志置1,CPU处于开中断状态。,2. 关中断指令 CLI 功能:使F寄存器中I标志置0,CPU处于关中断状态。,3. 软件中断指令 INT n n为中断类型码,n为0255之间有定义的无符号整数。 功能:无条件转向n型中断服务子程序。,.2 80X86的中断指令,INT n 指令的执行过程CPU响应软件中断的过程, F寄存器栈(保存INT n

4、 之前的F状态) 使F中的T标志置0禁止单步操作 I标志置0CPU处于关中断状态, 断口地址栈先:断口基地址(CS) 栈,后:断口偏移地址(IP)栈, CPU从4n 4n+3单元取出n型服务程序入口地址 IP:CS,从而转入n型中断服务程序。,80X86中断指令,4. 中断返回指令 IRET,功能:依次从栈顶弹出6个元素 IP,CS,F 如果栈顶是INT n 的断口地址,则执行 IRET后,返回断点,否则不能。,执行INT n 栈顶示意图,执行IRET 示意图,sp ,IRET 是中断服务子程序的出口指令,80X86中断指令,.3 中断向量,什么是中断向量? 中断向量是实模式下,中断服务子程序

5、的 入口地址,它由2部分组成: 服务程序所在代码段的段基址 2 个字节 服务程序入口的偏移地址 2 个字节,2. 中断向量表,每个中断都指定了一个类型码,也称为中断号。每一种中断对应有一个中断服务程序(Interrupt Service Program ISP ),中断类型码通过一个地址指针表与中断服务程序的入口地址相联系: 实模式下: 该表称为中断向量表;保护模式下:该表称为中断描述符表。,3. 中断向量表的设置CPU规定:在实模式下,中断向量表需设置在系统的RAM最低端的1K单元(00000H 003FFH),中断向量,4. 中断向量表的表地址与中断类型的关系,如:“21H”型中断向量:存

6、放在84H 87H单元中问:9CH型中断向量存放在何处?,解: 9CH 4=1001110000=270H 9CH型中断向量存于 270H 273H单元中,中断向量,5. 中断向量的引导作用,CPU响应软件中断的过程,中断向量,6. 中断向量表的初始化,由BIOS设计的中断服务程序(如INT 16H , INT 10H)其中断向量在加电时由BIOS负责写入中断向量表。,由DOS设计的中断服务程序(如 INT 21H)其中断向量是在启动DOS时,由DOS负责写入中断向量表。,用户程序开发的中断服务程序,由用户程序写入其中断向量。,中断向量,问题:用户如何向中断向量表中写入中断向量?,中断向量,方

7、法一、用户自己编写程序填写中断向量CLIPUSH DSMOVAX, 0000HMOVDS, AXMOVBX, 4*nMOVAX, OFFSET SERVICEMOVBX, AXMOVAX, SEG SERVICEMOVBX+2, AXPOP DSSTI,中断向量,方法二、DOS设计2个子程序,专门用于中断向量的读出、写入, INT 21H 的35H子功能 功能:读出n型中断向量入口:AL=中断类型码出口:ES:BX=n型中断向量, INT 21H 的25H子功能 功能:写入n型中断向量入口:DS=中断服务程序所在代码段的段基址 DX=中断服务程序入口的偏移地址 AL=中断类型码出口:无,中断向

8、量,例:把用户程序中以“TIMER”命名的中断服务子程序的入口地址 4 1CH 4 1CH+3单元,中断向量,.4 系统中断的分类,系统中断的分类,1. CPU中断,CPU中断是指:CPU执行某些操作而引发的中断,这类中断使用了0、1、3、4、6、7中断号。,(1) 除法错中断 0型中断,(2) 单步中断 1型中断,(3) 断点中断 3型中断,(4) 溢出中断 4型中断,系统中断的分类,2. 软件中断,执行有定义的INT n指令而引发的中断,称为软件中断。,软件中断使用05H,10HFFH中的若干个中断号。又分为:,(1) BIOS中断 BIOS中断,占用了05H、10H1FH中断号,用户程序

9、执行相关的软中断指令可以调用相应的中断服务程序。,INT 05H 屏幕打印;INT 10H 屏幕显示 I/O;INT 11H 设备配置检测;,系统中断的分类,INT 12H 测试内存容量;INT 13H 磁盘I/O;INT 14H 串行通信I/O;INT 15H BIOS扩展功能;INT 16H 键盘I/O;INT 17H 打印机I/O;INT 18H 启动PC机ROM BASIC(AT机)无;INT 19H 重新装入引导程序;INT 1AH 实时时钟管理。,中断号1DH,1EH,1FH,41H,46H也被BIOS占用了。但是,与这些中断号对应的并不是中断服务程序。,系统中断的分类,(2) D

10、OS中断 DOS中断,又分为DOS专用中断,DOS保留中断,用户可调用的DOS中断以及保留给用户开发的中断。,DOS专用中断, 22H型中断, 23H型中断, 24H型中断, 28H3FH型中断,系统中断的分类,用户可调用的DOS中断, 20H型中断, 21H型中断, 25H型中断, 26H型中断, 27H型中断,用户可开发的DOS中断,DOS保留的中断,系统中断的分类,外部硬件中断是由CPU以外的中断请求而引发的。如果有多个中断请求,怎样连接至CPU呢?,8259A,.5 8259A中断控制器,1. 8259A的内部结构,读/写逻辑,级连/缓冲比较器,SP/EN,A0,控制逻辑,中断服务寄存

11、器(ISR),优先权电路,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),内部总线,CS,(1)中断请求寄存器 ( IRR),寄存引脚IR0IR7的中断请求信号,IRRi位置1,表明IRi引脚上有了中断请求信号,8259A内部结构,2. 中断屏蔽寄存器 (IMR),寄存程序员写入的中断屏蔽字,屏蔽字某位=1(IMRi位=1),则与该位对应的中断请求信号(IRRi位)就不能送到中断优先权电路。,读/写逻辑,级连/缓冲比较器,SP/EN,A0,控制逻辑,中断服务寄存器(ISR),优先权电路,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),内部总线,CS,8259A内部结构,如:MOV AL

12、 , 11111100B OUT 屏蔽寄存器口地址,AL ;屏蔽IRR7 IRR2的请求开放IRR1,IRR0,如: IN AL,屏蔽寄存器口地址 AND AL,11110111B OUT 屏蔽寄存器口地址,AL ;开放IRR3的请求 ;对其它位的请求不改变屏蔽/开放的状态,8259A内部结构,读/写逻辑,级连/缓冲比较器,SP/EN,A0,控制逻辑,中断服务寄存器(ISR),优先权电路,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),内部总线,CS,3. 优先权电路 (排队电路),8259A内部结构,比较CPU正为之服务的中断源和刚进入优先权电路的中断源,哪一个级别更高。,通过判优选中其

13、中级别最高的中断源,然后通过控制电路,从INT端向CPU提中断请求。,作用: 比较同时送达优先权电路的中断请求,哪一个 级别最高。,8259A内部结构,读/写逻辑,级连/缓冲比较器,SP/EN,A0,控制逻辑,INT,INTA,中断服务寄存器(ISR),优先权电路,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),内部总线,CS,4. 中断控制电路,8259A内部结构,作用: 寄存一组初始化命令字和操作命令字,通过译码产 生内部控制信号当判优电路选中一个中断源时向CPU提中断请求 (INT),8259A内部结构,读/写逻辑,级连/缓冲比较器,SP/EN,A0,控制逻辑,INT,INTA,中断

14、服务寄存器(ISR),优先权电路,中断请求寄存器(IRR),中断屏蔽寄存器(IMR),内部总线,CS,5. 中断服务寄存器 (ISR),8259A内部结构,ISR: 8位寄存器,ISRi位与IRRi位一一对应,作用:记录CPU正为之服务的是哪一个中断源,怎样记录?,反之,如果ISR0位由1 0,表明IR0的中断服务程序执行完了,所以ISR的每一位都是响应中断源的中断服务标志位。,8259A内部结构,6. 数据总线缓冲器,作用:完成与CPU数据线配接,接收初始化命令字,操作命令字,当收到第二个中断响应脉冲时,通过他们向CPU送出被选中的中断源的中断类型码n,在这之后CPU从4n+04n+3单元取

15、出n型中断向量, 从而转入n型服务程序。,8259A内部结构,7. 读/写控制模块功能:接收片选信号CS 、端口选择信号A0和读写控制信 号RD、WR。 一片8259A在系统中占用两个口地址,用末位地址线A0选择端口,其它地址线通过译码产生8259A的片选信号。,8. 级连/缓冲比较器,一位8259A可以管理8级中断,二片8259A“级连”可管理15级中断,级连/缓冲比较器是为完成多片8259A级连设置的模块。,8259A内部结构,8259A的管脚,2. 8259A的中断过程CPU响应硬件中断的过程,首先由中断请求寄存器寄存加到引脚IR0IR7上的中 断请求。,在中断屏蔽寄存器的管理下,没有被

16、屏蔽的中断请求被 送到优先权电路判优。, 经过优先权电路的判别,选中当前级别最高的中断源,然 后从引脚INT向CPU发出中断请求信号。,CPU满足一定条件后,向8259A发出2个中断响应信号(负脉冲)。, 在实模式下,CPU从4n4n3单元取出该中断源 的中断向量IP、CS,从而引导CPU执行该中断源的 中断服务程序。,3. 8259A的中断管理方式,中断触发方式,边沿触发IRi出现上升沿表示有中断请求 电平触发IRi出现高电平表示有中断请求,屏蔽中断源的方式,常规屏蔽方式 MR屏蔽字决定了允许或禁止某位IRi所对应的中断:IMi=1 禁止, IMi=0 允许。特殊屏蔽方式:提供了允许较低优先

17、级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。,中断优先级管理方式 两类优先级控制方式:固定优先级和循环优先级固定优先级方式所有中断请求IRi的中断优先级固定不变加电后8259A的默认方式,默认优先级顺序从高到低为IR0IR7,循环优先级方式 .中断源轮流处于最高优先级,即自动中断优先级循环 .某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级,中断嵌套方式在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259

18、A有两种中断嵌套方式:普通全嵌套方式(默认方式) 一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式 一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。,中断结束处理方式,当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。三种EOI命令自动EOI(AEOI)(自动EOI方式)非指定EOI(NSEOI)(正常EOI方式)指定EOI(SEOI)(特殊EOI方式),AEOI:在第2个INTA#结束时,由8259A使ISR

19、i自动复位;因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式SEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。 用于特殊屏蔽方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式,4. 8259A的编程,8259A的控制命令分为初始化命令字ICWICW1ICW4向8259A写入ICW的过程称为初始化编程操作命令字OCW OCW1OCW3向8259A写入OCW的过程称为操作方式编程,初始化命令字ICW(Initialization Command Word)通常是系统开机时,由 初始

20、化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺 序填写。,(1) ICW1,1 初始化命令字,1需要ICW40不需要ICW4,1单片8259A0级连,86系统不用(通常为0),1电平触发方式0边沿触发方式,86系统不用(通常为0),A0 D7 D6 D5 D4 D3 D2 D1 D0,0,1 LTIM ADI SNGL ICW4,8259A的编程,1 T7 T6 T5 T4 T3 ,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,ICW2设置中断类型码,注: T7T3 中断向量类型码高位, 由编程决定 低三位 自动设置为 IR0 IR7 的类型编码(000 111)

21、,8259A传送的中断类型码,8259A的编程,1 S7 S6 S5 S4 S3 S2 S1 S0,1IR输入带有一个 从控制器 0IR输入不带一个 从控制器,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,1 0 0 0 0 0 ID2 ID1 ID0,从控制器ID,编码000111分别对应该从片的INT往主片的IR0IR7哪个端子输入。,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(3) ICW3 (主控制器),ICW3 (从控制器),8259A的编程,186 / 88模式080 / 85模式,1自动EOI0非自动EOI,0 X 非缓冲方式 1 0 缓冲方式/从控制

22、器 1 1 缓冲方式/主控制器,1特殊完全嵌套方式0非特殊完全嵌套方式,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(4) ICW4,0 0 0 SFNM BUF M / S AEOI PM,8259A的编程,8259A初始化编程流程图,8259A的编程,由CPU向8259A送三个字节的操作命令字OCW(Operation Command Word), 用以规定8259A的工作方式,如: 中断屏蔽 结束中断 优线权旋转 中断状态 等。 操作命令字是在应用程序中设置的,设置时,顺序上没有严格的要求。,2 操作命令字,8259A的编程,(1)OCW1,OCW1是中断屏蔽命令字,命令格

23、式如图。命令字中的M7M0对应IMR的各位。Mi=1表示该中断被屏蔽,Mi=0表示该中断开放。,中断结束命令字,命令格式如图。 R、SL、EOI的不同组合决定了8259A的几种工作方式。 L2L0 这几位确定当SL=1时指定的特殊结束或特殊循环时的中断优先级。最常用的常规EOI命令字为20H。,(2)OCW2,用于控制8259A的运行方式。命令格式如图。,(3)OCW3,8259A编程举例,按以下要求初始化8259A:端口地址为20H和21H;中断为上升沿触发;单片8259A;不写ICW4;与IR0-IR3对应的中断向量码为08H-0BH;IR4-IR7不使用。根据要求,各初始化参数及工作参数

24、如下:ICW1 = 00010010 = 12HICW2 = 08H 中断向量码 OCW1 = 11110000 = 0F0H 中断屏蔽字,初始化程序如下:INIT8259A:MOVDX,20H;A0=0,写ICW1MOVAL,12H;上升沿触发,单片,不写ICW4OUTDX,ALMOVDX,21H;A0=1,写ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL,5. 286以上微机的8259A中断管理方式,系统加电后由BIOS对8259A初始化编程,设定中断管理方式 :, 中断屏蔽方式采用常规屏蔽方式即应用时,向8

25、259A中断屏蔽寄存器写入适当屏蔽字即可屏蔽/开放某一级中断。, 中断源为固定优先级 即IR0中断请求级别最高,IR7中断请求级别最低。,采用常规中断结束方式 即在中断服务子程序结束之前向8259送中断结束命令。,6286以上的微机,对8259A的编程,对8259A编程分二步进行:,对8259A进行初始化编程 系统加电后,由BIOS完成对8259A进行应用编程 编写中断程序时完成,有2项内容:,每一个硬件中断服务程序结束前必须向8259A送中断 命令字,通知8259A本次中断结束,否则8259A不能响 应同一中断源的下次中断。,需要时,向8259A中断屏蔽寄存器写入屏蔽字。,8259A收到中断

26、结束命令后,把ISR中的置1位清0!,1. 概述,硬件中断分类:可屏蔽中断,非屏蔽中断 CPU有2个接收中断请求信号的引脚。,可屏蔽中断: 输入到INTR引脚的中断请求信号, 引发的中断。,非屏蔽中断: 输入到NMI引脚的中断请求信号, 引发的中断。,.6 PC/AT 可屏蔽中断,有可屏蔽中断请求,没有DMA请求,没有非屏蔽中 断请求,响应非屏蔽中断的条件 有非屏蔽中断请求,没有DMA请求 一条指令执行完,响应可屏蔽中断的条件,CPU一条指令执行完毕,硬件中断的级别 DMA请求级别高于非屏蔽中断高于可屏蔽中断。,CPU处于开中断状态(I标=1),2. 可屏蔽中断的硬件结构,可屏蔽中断硬件结构(

27、1),可屏蔽中断硬件结构(2),使用2片8259级连,管理15级中断,中断源与中断类型,硬件可屏蔽中断的中断级别,系统分配的8259口地址,中断结束命令,命令字=20H,接入从8259的中断源,其服务程序结束应分别向 主、从8259各送一个中断结束命令字 。, 中断的引发方式不同, CPU获取中断类型码的方式不同, CPU响应的条件不同,中断处理程序的结束方式不同,3硬件中断和软件中断的区别,4. 硬件可屏蔽中断例, 中断源: 系统8254 0#计数器,每55ms有一次中断请求, 中断类型: 8型,(1)日时钟中断,CPU转入8型中断后,完成下列工作 开中断,保护现场(DS压栈) 40H DS

28、,对“日时钟计数器”加1 测算软驱马达关闭时间,向主8259送中断结束命令恢复现场,IRET,执行INT 1CH, 日时钟中断处理流程:, 什么是“日时钟计数器”,BIOS系统规定:40H:6CH40H:6FH这4个单元(共32位)为日时钟计数器,每55ms加1次,计数 到:001800B0H,为24小时,其计数值供系统软件使用。,系统启动时CPU执行BIOS中的一段程序,读取CMOS实时时钟电路的时间值计数值40:6CH40:6FH做为日时钟计数器的计数初值。,关于1CH服务程序 8#服务程序,每隔55ms在DS=40H的前提下,调用一次1CH服务程序,之后又返回8型!,所以1CH中断是日时

29、钟的外扩中断,用户可开发新的1CH中断(完成每55ms一次的定时操作)取代原来的中断服务子程序。,(2)用户中断, 中断源: 系统总线插槽B4端引入的用户设计的硬件中断请求信号,用户中断请求的途径,用户中断请求,用户中断请求从ISA总线B4端子(IRQ9)引入,经过主8259,从8259二级中断管理,最后由主8259向CPU提中断。,只有从8259IMR1置0,主8259IMR2置0,其中断请求方能送到CPU。,实现用户中断必须对主、从8259应用编程,保证中断申请由8259中断控制器提向CPU,IN AL,0A1HAND AL,11111101BOUT 0A1H,AL ;开放用户中断IN A

30、L,21HAND AL,11111011BOUT 21H,AL ;开放从8259中断,BIOS为“71H型”设计的服务程序如下: PUSHAXMOVAL,20HOUT 0A0H,ALPOPAXINT0AH,用户中断的中断类型 CPU响应用户中断后,自动转向“71H型”服务程序,用户中断服务程序结束 若用户中断定义为0AH型, 服务程序结束前只向主8259送结束命令, 若用户中断定义为71H 服务程序结束前,向主从8259各送一中断结束命令,用户定义的中断服务程序有两个设计方法:, 定义用户中断服务程序为“71H型” 中断程序的准备工作:置换71H型中断向量,即把用户 中断的中断向量471H 4

31、71 H+3单元, 定义用户中断服务程序为“0AH型” 中断程序的准备工作:置换0AH型中断向量,即把 用户中断的中断向量40AH 40AH+3单元,(3) 键盘中断,中断源 : 主板键盘接口电路中断类型: 9 键盘中断全过程:,键盘接口分2部分: 一部分装在键盘盒内键盘电路 另一部分装在主机板键盘接口电路,2 部分之间通过5芯电 源连接。,键盘电路以单片机为核心,加电后固化在单片机 内部的键盘扫描程序,不断扫描每一个按健,一旦有键闭合,就把闭合键的扫描码(位置码) 键盘接口电路。,键盘接口电路:, 把串行扫描码通过移位寄存器转换成并行扫描码口地址为60H的端口寄存器,串并转换完毕,向主825

32、9接中断请求, CPU响应后,转9型服务程序, 键盘中断处理流程,开中断,保护现场(DS压栈),40H DS,从60H口地址寄存器取并行扫描码分析,处理转 换成2字节键代码存入键盘缓冲区,向8259发中断结束命令,恢复现场 IRET,键盘缓冲区,BIOS规定:系统RAM 40:1EH 40:3DH为键盘缓冲区共32个单元,实际使用30个单元,存放15个键的键代码。键盘缓冲区是以“先进先出”的规则存取。,由9型服务程序写入键代码,用户用INT 16H访问键盘缓冲区,键盘缓冲区是9型硬中断和INT 16H软中断之间交换信息的缓冲区 。,.7 实模式下的定时中断程序设计,应用背景 在许多应用中,需要

33、每隔一定时间完成一次预定的操作定时操作。如定时数据采集、定时显示、定时键盘扫描等,而采用定时中断技术实现这种操作具有实时性好、占用CPU资源较少的特点。,一、定时中断程序的设计方法 1.定时中断源的选择 系统8254 0#计数器, 外扩8254作为定时中断源,2.确定中断服务程序的类型 中断类型由定时中断源接入8259A的中断引脚IRx有关。 如果中断源是外扩定时器,由从8259A的IR1引脚引入,则服务程序应定义为0AH或71H型。如果中断源是系统8254的0#计数器,并且定时周期是55ms的整数倍,则定义用户服务程序为1CH型,取代系统的1CH型服务程序。如果中断源是系统8254的0计数器

34、,但定时周期55ms的整数倍,则应重新对8254 0计数器进行初始化。,定时周期不等于55ms整数倍的处理框图,3.置换中断向量 服务程序的类型确定之后,应置换相应的中断向量(使用INT21H的25H和35H子功能)。4.开放8259A中断,从系统硬件中断的结构图可知:用户中断要经过从8259A、主8259A两级中断控制器的管理,为了使用户中断请求送到CPU,应将从8259A的IMR的D1位置0,主8259A的IMR的D2位置0,从而打通用户中断请求的通道。,一般说,各种型号的主机板对日时钟中断都是开放 的,用户不必再采取措施。,5 .避免“DOS重入”,“DOS 重入”示意图,: : :IN

35、T21H,现行程序,21H型服务程序:IRET,有中断请求,: :INT 21H,DOS不允许重入,6中断服务程序的执行时间 必须远远小于定时中断的时间间隔,7. 中断结束向8259A发中断结束命令,定时中断周期T1,服务程序执行时间,IRX,T2a;D1-b;D6-g;D7-h 。显示字符“8”的段选码是7FH。 位选码:选择被点亮的LED(仅D5-D0有效)。点亮右边第1个LED,位选码为00100000B点亮右边第2个LED,位选码为00010000B:点亮左边第1个LED,位选码为00000001B,设计思路 主要解决四个问题: (1)字符“8”的显示控制问题,包括段选码和位选码; (

36、2)定时时间间隔1秒钟如何实现; (3)每隔一秒钟“8”如何左移一位显示; (4)显示过程如何结束,MOV DX,201HMOV AL,7FH ;“8”段码OUT DX, ALMOV DX,200HMOV AL,Origin ;位码OUT DX, AL,SHR Origin,1:,SCAN:MOV AL,1 INT 16H JZ SCAN 结束准备,定时程序由主程序和1CH型中断程序组成,主程序,图9-18 【例9.8.1】程序框图,关中断转移系统的1CH型中断向量写入用户的1CH型中断向量第6位数码管显示“8”字符开中断,有键入?,N,恢复系统的1CH型中断向量返回DOS,Y,SCAN:MO

37、V AH,1 INT 16H JZ SCAN,CALL RESETMOV AH,4CHINT 21H,1CH型中断服务程序,保护现场重新定义用户数据段 中断计数,满18次?,18中断计数单元”8”字左移一位,Y,N,恢复现场中断返回,【程序清单】 ;FILENAME:891.ASM .486DATA SEGMENT USE16 ;数据段定义 OLD1C DD ? ICOUNT DB 18 ;中断计数初值 ORIGIN DB 20H ;数码管位选初值DATA ENDSCODE SEGMENT USE16 ;代码段 ASSUME CS:CODE,DS:DATASTART: MOV AX, DATA ;DS段赋值 MOV DS, AX CLI ;关中断 CALL READ1C CALL WRITE1C MOV DX,201H MOV AL,7FH OUT DX, AL ;输出“8”的字型码 MOV DX,200H MOV AL,ORIGIN OUT DX, AL ;定位显示 STI ;开中断,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报