1、中断源中断源中断中断请求请求 当当 前前 程程 序序中断中断服务服务程序程序程序断点程序断点中断返回中断返回中断响应中断响应中断:处理器暂停执行当前程序,转而处理随机发生的事中断:处理器暂停执行当前程序,转而处理随机发生的事件,处理完毕后再返回到断点处继续执行原来程序的过程件,处理完毕后再返回到断点处继续执行原来程序的过程8686系列微机最多可以支持系列微机最多可以支持256256种中断,它们被种中断,它们被分为四种类型:分为四种类型:内部中断和异常内部中断和异常软件中断软件中断外部可屏蔽中断外部可屏蔽中断外部非屏蔽中断外部非屏蔽中断通常一个系统有多个中断源,而通常一个系统有多个中断源,而CP
2、UCPU同一时刻只能响同一时刻只能响应一个中断源的请求,按中断源的轻重缓急程度确定的优应一个中断源的请求,按中断源的轻重缓急程度确定的优先级别,称为优先级。先级别,称为优先级。当当CPUCPU正在响应某一中断源的请求,执行为其服务的正在响应某一中断源的请求,执行为其服务的中断服务程序时,如果有优先级更高的中断源发出请求,中断服务程序时,如果有优先级更高的中断源发出请求,CPUCPU将中止正在执行的中断服务程序而转入为新的中断源将中止正在执行的中断服务程序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被中止的服务,等新的中断服务程序执行完后,再返回到被中止的中断服务程序,这一过程称
3、为中断嵌套。中断服务程序,这一过程称为中断嵌套。1#中断请求中断请求响应响应返回返回1#中断中断服务程序服务程序2#中断请求中断请求响应响应返回返回2#中断中断服务程序服务程序3#中断请求中断请求响应响应返回返回3#中断中断服务程序服务程序原主程序原主程序中断优先级中断优先级3#2#1#00000H00003H00008H0000BH00004H00007H0000CH0000FH00010H00013H00014H0007FH00080H003FCHIP内容CS内容类型0中断入口地址(除法出错)专用中断(5个)用户自定义中断(224个)系统保留中断(27个)类型1中断入口地址(单步中断)类型
4、2中断入口地址(NMI)类型3中断入口地址(断点中断)类型4中断入口地址(溢出中断)类型5中断入口地址类型31中断入口地址类型32中断入口地址类型255中断入口地址内部总线CAS0D7D0数据总线缓冲器控制电路INT读/写控制逻辑RDWRA0CS级联缓冲/比较器CAS1CAS2EN/SPINTA中断服务寄存器(ISR)优先权判别器(PR)中断请求寄存器(IRR)中断屏蔽寄存器(IMR)IR7IR1IR0功能:功能:能接收外部的中断请求,并进行判断,选中当前优能接收外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到先级最高的中断请求,再将此请求送到CPUCPU的的INTRI
5、NTR端。端。1)1)电平触发方式电平触发方式 该方式以该方式以IRIR端上出现的高电平作为中断请求信号。端上出现的高电平作为中断请求信号。请求一旦被响应,该高电平信号应及时撤除。请求一旦被响应,该高电平信号应及时撤除。2)2)边沿触发方式边沿触发方式 该方式以该方式以IRIR端上出现由低电平向高电平的跳变作为端上出现由低电平向高电平的跳变作为中断请求信号,跳变后高电平一直保持,直到被响应。中断请求信号,跳变后高电平一直保持,直到被响应。1)1)完全嵌套方式完全嵌套方式 完全嵌套方式也称固定优先级方式。在这种完全嵌套方式也称固定优先级方式。在这种方式下,由方式下,由IRIR端引入的中断请求具有
6、固定的优先级,端引入的中断请求具有固定的优先级,IRIR0 0最高,最高,IRIR7 7最低。只有当更高的中断请求到来时,最低。只有当更高的中断请求到来时,才会给予响应。才会给予响应。在初始化程序中设定,在初始化程序中设定,且在整个工作过程中保持不变。且在整个工作过程中保持不变。在应用程序中设置,且可在应用程序中设置,且可设置多次。设置多次。每片每片8259A8259A有有2 2个片内地址个片内地址A A0 0=0=0和和A A0 0=1=1,所,所有的命令字都是通过这两个端口来发送的。有的命令字都是通过这两个端口来发送的。1初始化命令字初始化命令字 1)ICW1 ICW1主要用于设置工作方式
7、,其格式及各位的定义如图所示。主要用于设置工作方式,其格式及各位的定义如图所示。D7 D6 D5 D4 D3 D2 D1 D0 A0=0 2)ICW2 ICW2用于设置中断类型号,写入用于设置中断类型号,写入A0=1的端口,其格式如图的端口,其格式如图所示。所示。例如:若例如:若ICW2为为00001000B,则对于从,则对于从IR0、IR1、IR2、IR3、IR4、IR5、IR6和和IR7上引入的各中断请求,其相应的上引入的各中断请求,其相应的中断类型号为中断类型号为08H、09H、0AH、0BH、0CH、0DH、0EH和和0FH。3)ICW3 ICW3用于设置级联,写入用于设置级联,写入A
8、0=1的端口,格式如图所示。的端口,格式如图所示。例如:某片从例如:某片从8259A的的ID2ID1ID0=100,则表示该从,则表示该从8259A接接在主在主8259A的的IR4 4)ICW4 ICW4用于设置用于设置8259A的工作方式,写入的工作方式,写入A0=1的端口,格的端口,格式如图所示。式如图所示。ICW1的的IC4位为位为1时,才写入时,才写入ICW4。0 8080/8085系统A0D01 自动EOI1特殊嵌套0一般嵌套1BUFM/SAEOIPMD1D2D3SFNM000D4D5D6D71 8086/8088系统0 正常EOI非缓冲方式缓冲/从片缓冲/主片0X1011NYNY写
9、ICW1单片?写ICW2写ICW3需ICW4?写ICW4例如:例如:PC机中机中8259A的主片定义为:上升沿触发、在的主片定义为:上升沿触发、在IR2级级联从片、有联从片、有ICW4、非、非AEOI方式、中断类型号方式、中断类型号08H 0FH、一般的中断嵌套方式、端口地址是一般的中断嵌套方式、端口地址是20H、21H;从片定义;从片定义为:上升沿触发、级联到主片的为:上升沿触发、级联到主片的IR2、有、有ICW4、非、非AEOI方式、中断类型号为方式、中断类型号为70H 78H、一般的中断嵌套方式、一般的中断嵌套方式、端口地址是端口地址是A0H、A1H。初始化过程如下:。初始化过程如下:初
10、始化主片初始化主片 初始化从片初始化从片MOV AL,11H MOV AL,11HOUT 20H,AL OUT 0A0H,ALMOV AL,08H MOV AL,70HOUT 21H,AL OUT 0A1H,AL MOV AL,04H MOV AL,02HOUT 21H,AL OUT 0A1H,ALMOV AL,01H MOV AL,01HOUT 21H,AL OUT 0A1H,AL 1)OCW1 OCW1的功能是设置和清除中断屏蔽寄存器的相应的功能是设置和清除中断屏蔽寄存器的相应位,写入位,写入A0=1的端口,格式如图所示。的端口,格式如图所示。1 屏蔽1M7M6M5M4M3M2M1M00
11、允许中断屏蔽A0D7D6D5D4D3D2D1D02)OCW2 OCW2用于设置优先级循环方式和中断结束方式,写入用于设置优先级循环方式和中断结束方式,写入A0=0的端口,格式如图所示。的端口,格式如图所示。3)OCW3 OCW3的功能有三个方面:设置和撤消特殊屏蔽方式、的功能有三个方面:设置和撤消特殊屏蔽方式、设置中断查询方式以及设置对设置中断查询方式以及设置对8259A内部寄存器的读出。内部寄存器的读出。OCW3写入写入A0=0的端口,格式如图所示。的端口,格式如图所示。1查询命令随后读ISR清除特殊屏蔽设置特殊屏蔽无用0ESMMSMM 01PRR RIS00011011特征位0001101
12、1无用0非查询随后读IRRD7D6D5D4D3D2D1D0A0对外部事件发生次数进行计数对外部事件发生次数进行计数软件定时软件定时计算机系统经常用到定时信号计算机系统经常用到定时信号如如DRAMDRAM刷新定时刷新定时硬件定时硬件定时A1CLK0OUT0数据总线缓冲器读/写逻辑控制字寄存器计数器2 号计数器1 号计数器0 号8888内部总线CLK1GATE1OUT1GATE0D7D0CSA0RDWR8CLK2GATE2OUT2计数器0控制寄存器计数初值寄存器(CR)减1计数器(CE)输出锁存寄存器(OL)CRHCEHOLHCRLCELOLL0 二进制计数1十进制计数00 将减1计数器CE中的数
13、据 锁存到OL中(锁存功能)000 方式0D7D6计数器选择 读写格式工作方式数制00 选择计数器001 选择计数器110 选择计数器211 非法01 对计数器的低8位读或写10 对计数器的高8位读或写11 计数器16位操作(先低8 位,后高8位读或写)001 方式110 方式211 方式3100 方式4101 方式5D5D4D3D1D2D0工作方式决定以下内容:工作方式决定以下内容:1 1)门控信号的影响)门控信号的影响2 2)OUTOUT信号的状态信号的状态3 3)计数操作可否重复)计数操作可否重复CLKGATE543201OUTCWWRN5方式方式0输出波形输出波形322201CLKGA
14、TEOUTWRCWN3方式方式0 0时时GATEGATE信号的作用信号的作用 计数过程中,计数过程中,GATEGATE必须保持为高电平,必须保持为高电平,为低电平时计数停止。为低电平时计数停止。12120CLKGATEOUTWRCWN2单脉冲宽度单脉冲宽度T=NTCLKCLKGATEOUTWRCWN3TOUTN*TCLK1321233自动重新装入计数初值,实现循环计数自动重新装入计数初值,实现循环计数4242244CLKGATEOUTWRCWN4TOUTN*TCLK自动重新装入计数初值,实现循环计数自动重新装入计数初值,实现循环计数N N为偶数:占空比为为偶数:占空比为1 1:1 1N N为奇
15、数:占空比为为奇数:占空比为(N+1)/2:(N-1)/221034CLKGATEOUTWRCWN404312CLKGATEOUTWRCW N4例:设三个计数器的端口地址为例:设三个计数器的端口地址为70H70H、71H71H、72H72H,控制寄存,控制寄存器端口地址器端口地址73H73H。计数器。计数器0 0,工作模式,工作模式2 2,仅读写计数器低字,仅读写计数器低字节,初值为节,初值为100100,采用二进制计数。,采用二进制计数。MOV AL,14HOUT 73H,ALMOV AL,100OUT 70H,AL例:设三个计数器的端口地址为例:设三个计数器的端口地址为70H70H、71H
16、71H、72H72H,控,控制寄存器端口地址制寄存器端口地址73H73H。计数器。计数器1 1,工作模式,工作模式1 1,初值,初值为为12341234,计数值使用,计数值使用BCDBCDMOV AL,73HOUT 73H,ALMOV AX,1234HOUT 71H,ALMOV AL,AHOUT 71H,AL2 2)读出命令)读出命令发出锁存命令,使当前计数值锁存在发出锁存命令,使当前计数值锁存在OLOL中中读读OLOL,获得当前计数值,获得当前计数值例:设三个计数器的端口地址为例:设三个计数器的端口地址为70H70H、71H71H、72H72H,控制寄存,控制寄存器端口地址器端口地址73H7
17、3H。读出计数器。读出计数器0 0的当前计数值,放在的当前计数值,放在BXBX中中MOV AL,00HOUT 73H,ALIN AL,70HMOV BL,ALIN AL,70HMOV BH,AL方式方式0 0,计数初值为,计数初值为100=64H100=64H控制字:控制字:00010000B00010000BMOV AL,10HMOV DX,307HOUTDX,ALMOV AL,64HMOV DX,301HOUTDX,AL定义工作方式:定义工作方式:送计数初值:送计数初值:方式方式3 3,计数初值为,计数初值为 N=fCLK1/fOUT=2500=09C4H控制字:控制字:01110110B01110110B定义工作方式:定义工作方式:送计数初值:送计数初值:MOV AL,76HMOV DX,307HOUTDX,ALMOV DX,303HMOV AL,C4HOUTDX,ALMOV AL,09HOUTDX,AL方式方式0 0,计数初值为,计数初值为 N=1000=3E8H控制字:控制字:10110000B10110000B定义工作方式:定义工作方式:送计数初值:送计数初值:MOV AL,B0HMOV DX,307HOUTDX,ALMOV DX,305HMOV AL,E8HOUTDX,ALMOV AL,03HOUTDX,AL