文档库 最新最全的文档下载
当前位置:文档库 › 中断处理题

中断处理题

中断处理题
中断处理题

一、单选题:将正确答案的序号填入上。

1.1 在PC/XT微机中,NMI中断的中断向量在中断向量表中的位置是。(C)

A. 由程序指定的

B. 由DOS自动分配的

C. 固定在0008H开始的4个字节中

D. 固定在中断向量表的表首

1.2 如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。若要调整中断事件的响应顺序,可以利用。(B)

A. 中断响应

B. 中断屏蔽

C. 中断向量

D. 中断嵌套

1.3 8086对下列中断优先级响应最高的请求是。(C)

A. NMI

B. INTR

C. 内部软件中断

D. 单步中断

1.4 执行INT n指令或响应中断时,CPU入栈操作保护的次序是。(A)

A. FLAGS ,CS,IP

B. CS,IP, FLAGS

C. FLAGS ,IP,CS

D. IP,CS, FLAGS

1.5中断向量地址是。(C)

A. 子程序入口

B. 中断服务程序入口地址

C. 中断服务程序入口地址的地址

D. 传送数据的起始地址

1.6 8086的中断源来自两个方面,即。(A)

A. 外部中断和内部中断

B. 可屏蔽和非屏蔽中断

C. CPU产生的中断和软件中断

D. 单步和溢出错

1.7下面中断中,只有需要中断类型码。(C)

A. INTO

B. INT n

C. INTR

D. NMI

1.8 当多片8259A级联使用时,对于从8259A,级联信号CAS2~CAS0是。(A)

A. 输入信号

B. 输出信号

C. 双向信号

D. 中断信号

1.9 当用8259A中断控制器时,其中断服务程序执行EOI命令的作用是。(B)

A. 屏蔽正在被服务的中断,使其不再发出中断请求

B. 清除该中断服务寄存器中的对应位,以允许同级或低级的中断能被响应

C. 清除该中断请求寄存器中的对应位,以免重复响应该中断。

D. 判定优先级

1.10 下列8259A的命令字中,必须在正常操作开始前写入的是。(A)

A. 初始化命令字ICW

B. 操作命令字OCW

C. 初始化命令字ICW1

D. 初始化命令字ICW3

1.11 有三片8259级联,从片分别接入主片的IR2和IR5,则主8259的ICW3中的内容

为;两片从片8259的ICW3的内容分别为。(A, D)A. 24H B. 42H C. 00H,01H D. 02H,05H

分析:初始化命令ICW3的功能是设置级联控制方式。对主片,各位对应IR0~IR7的连接情况,此题给定的条件是IR2、IR5接有从片,所以控制字为00100100B=24H。对从片,ICW3的高5位为0,低三位是对应主片IRi的编码,所以接IR2的从片控制字为00000010H=02H,接IR5的从片控制字为00000101B=05H

1.12 当80486工作在实地址方式下时,已知中断类型号为14H,则其中断向量存放在存储器的单元中。(C)

A. 00051H~00054H

B. 00056H~00059H

C. 0000:0050H~0000:0053H

D.0000:0056H~0000:0059H 分析:当80486工作在实地址方式下时,和8086一样,中断向量地址=中断类型号*4

1.13 80X86系统中,用来确定硬件中断服务程序的入口地址的是。(C)

A.主程序中的调用指令

B.主程序中的转移指令

C.中断控制器发出的类型码

D.中断控制器中的中断服务寄存器ISR

1.14 CPU通常在时响应中断。(D)

A. 取指周期结束

B. 外设提出中断申请

C. INTR为高电平

D. 一条指令结束

1.15 80X86系统中,IRET指令执行的出栈恢复操作不包括断点处的。(B)

A. CS

B. SS

C. FLAGS

D. IP

二、判断对错,对的打?°√?±,错的打?°χ?±

2.1 80X86的外部硬件中断包括非屏蔽中断(NMI)和可屏蔽中断(INTR)两类,它们都受CPU内部的中断允许标志(IF)的控制。(×)

2.2 任何一种可编程I/O接口芯片,工作前都必须先向它的控制寄存器写入控制字,以选择所需工作方式和功能。(√)

2.3 一般情况下,无论外部中断还是CPU内部异常,中断处理完后均返回被中断指令的下一条指令开始执行。(√)

2.4 对于可屏蔽中断的嵌套处理原则是允许高级中断打断低级中断,允许同级中断相互打断,而不允许低级中断打断高级中断。(×)

2.5 CPU响应外设的中断请求时,要把标志寄存器的IF和TF清零。(√)

2.6 在80X86系统中,所有中断都要执行两个中断响应周期。(×)(只有可屏蔽中断才是) 2.7 任何内部软件中断都不受IF和TF影响。(×)(单步中断受)

2.8 8259A管理的8路外部中断向量存放在中断向量表中连续的32个字节中。(√)

2.9 8086系统中,软件中断和非屏蔽中断执行两个中断响应总线周期。(×)

2.10 在执行某一级的中断服务程序中,如果有较高优先级的中断源请求中断,则都要立即响应较高优先级的中断。(×)

2.11 中断屏蔽位为程序员提供了控制中断处理顺序的手段。(√)

2.12 8259A可以编程实现某些低优先级中断打断高优先级中断的工作方式。(√)

2.13 中断向量表是指中断类型编码表。(×)

2.14 8259A的普通全嵌套方式中,各中断源的优先级是固定的,IR0的优先级最高,IR7

的最低。(√)

2.15 当中断允许时,CPU在每条指令的最后一个时钟周期检测中断请求。(√)

2.16 8086CPU响应外部可屏蔽中断INTR时,在第二个中断响应周期,由数据总线读入外设的中断类型码。(√)

2.17 同步串行传送能够得到比异步串行传送更高的传输速率和传输效率。(√)

2.18 异步串行通信中,检测一个新字符的开始是利用极性相反的停止位(空闲位)与起始位之间的负跳变来实现的。(√)

2.19 在微型计算机中,串行输入输出端口与微处理器之间是采用串行方式交换数据的。(×)

2.20 奇偶校验位是根据传送数据中的“1”的个数进行编码的。(√)

2.21 异步通信与同步通信的差别主要表现在字符与字符间的传送一个是异步,一个是同步,至于字符内部的位与位之间,两者都是同步传送的。(√)

三、简答题

3.1 8255A的方式选择控制字和端口C置0/置1控制字都是写入控制端口的,8255A是怎样识别的?

解:通过最高位识别,D7=1,为方式选择控制字;D7=0,为端口C置0/置1控制字。

3.2 分别写出完成将PC2置1和PC4置0的控制字。

解:05H ,08H

3.3 若8255A控制寄存器的端口地址为63H,各端口都工作于方式0,A口和PC7~PC4为输入,B口和PC3~PC0为输出,请写出初始化程序段。

解:MOV AL , 98H

OUT 63H , AL

3.4 8255A的什么引脚完成内部I/O端口地址选择?

解:A1和A0

3.5 在8255A的选通输入操作中用什么信号来置位IBF引脚?

解:STB

3.6 在8255A的选通输入、输出方式操作中,允许中断请求信号何时有效?

解:选通输入:当STB脚、IBF脚和INTE位(中断允许控制位)同时为高时INTR被置为高电平有效。选通输出:当ACK、OBF和INTE位同时为高时INTR被置为高有效。

3.7 在8255A的选通输入方式中如何允许中断请求?

解:由软件通过对C口的PC4或PC2位置/复位来控制。置?°1?±时,允许A口或B口中断,否则相应口的中断请求被

中断部分习题

一、单项选择题 1.8086的中断类型号左移2位是( )。 A.中断服务子程序的入口地址 B.中断向量表的地址指针 C.中断向量表的内容 D.以上三项都不是 2.8259的中断屏蔽字OCW1( )设置。 A.在ICW之前 B.只允许一次 C.可允许多次 D.仅屏蔽其中断源时 3.三片8259可提供( )个中断类型号。 A.24 B.22 C.23 D.25 4.响应NMI请求的必要条件是( )。 A.IF=1 B.IF=O C.一条指令结束 D.无INTR请求 5.当8086 CPU的INTR=“1”,且中断允许位IF=“1”时,则CPU完成( )后,响应该中断请求,进行中断处理。 A.当前时钟周期 B.当前总线周期 C.当前指令周期 D.下一个指令周期 6.“INT n”指令中断是( )。 A.由外部设备请求产生 B.由系统断电引起的 C.通过软件调用的内部中断 D.可用IF标志位屏蔽的 7.8086/8088的中断采用向量中断方式,其中断服务程序的入口地址是由( )提供。 A.外设中断源 B.CPU的中断逻辑电路 C.以中断控制器读回中断类型号左移2位 D.由中断类型号指向的中断向量表中读出 8.8086/8088的中断向量表( )。 A.用于存放中断类型号 B.用于存放中断服务程序入口地址 C.是中断服务程序的入口 D.是中断服务程序的返回地址 9.非屏蔽中断的中断类型号是( )。 A.1 B.2 C.3 D.4 I0.CPU执行中断服务程序时,如果有优先级更高的中断源请求中断,则() A. 若已开中断,则执行完当前指令就响应中断请求 B. 不响应 C. 立即响应中断请求 D. 中断返回后再响应 11.在程序控制传送力式中,哪种传送可提高系统的工作效率() A. 无条件传送 B. 查询传送

计算机组成原理 中断实验

实验五中断实验 实验地点:格致A315 实验日期:2016年12月29日 一、实验目的 学习和掌握中断产生、响应、处理等技术; 二、实验说明及内容 说明: 1.要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须在中断服务程序中执行EI开中断命令。 2.教学机的中断系统共支持三级中断,由三个无锁按键确定从右到左依次为一、二、三级中断,对应的INT2、INT1、INT0的编码分别是01、10、11,优先级也依次升高。这决定了它们的中断向量(即中断响应后,转去执行的程序地址)为XXX4、XXX8、XXXC;可以看到,每级中断实际可用的空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中断服务程序则存放在转移指令所指向的地址。 3.用户需扩展中断隐指令、开中断指令、关中断指令、中断返回指令及其节拍。内容: 1.扩展中断隐指令。 2.扩展开中断指令EI、关中断指令DI、中断返回指令IRET。 3.确定中断向量表地址。中断向量表是以XXX4H为首地址的一段内存区。高12位由用户通过置中断向量用的插针(在三个无锁按键下方)确定。三级中断对应的中断向量为XXX4H、XXX8H、XXXCH。当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。 4.填写中断向量表。在上述的XXX4H、XXX8H、XXXCH地址写入三条JR OFFSET转移指令,OFFSET分别对应三段中断服务程序的相对地址。但在本仿真终端中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。 5.编写中断服务程序。中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符; 6.编写主程序。可编写一死循环程序,等待中断;

STM32外部中断以及中断优先级

外部中断的初始化过程: 1.初始化IO为输入(可以设置上拉,下拉,浮空) 2.开启IO复用时钟 3.开启与该IO相对的线上(详解下) 4.配置NVIC,使能中断 5.编写中断服务函数 外部中断: Stm32中总共有19个外部中断 包括: 线0-15:IO输入中断(每条线上最多有7个IO,如GPIOA~GPIOG,但是每一条线每次只允许同时连接到一个IO)

线16:PVD 线17:RTC 线18:USB 关于优先级: CM3中内核支持256个中断(16个内核+240外部)和可编程256级中断优先级的设置

Stm32目前支持84个中断(16个内核+68个外部,注:不是指68个外部中断),16级可编程优先级(优先级设置寄存器中使用了4位)

注意:其中外部中断5-9和中断10-15向量存放在一起 优先级: 数值低的优先级要高于数值高的!!!!!! 上电复位后,系统默认使用的是组0; 一个系统只能使用一组优先级组,不可使用多个,优先级的设置不能超过组的范围,否则会产生不可预计的错误 1.高抢先级的中断可以打断低优先级的中断响应,构成中断嵌套 2.相同抢先级的中断不可以构成嵌套,系统会优先响应子优先级高的

3.当2(n)个相同抢先优先级和相同子优先级的中断出现,STM32首先响应中断通道所对应的中断向量地址低的那个中断 4.0号抢先优先级的中断,可以打断任何中断抢先优先级为非0号的中断;1号抢先优先级的中断,可以打断任何中断抢先优先级为2、3、4号的中断;……;构成中断嵌套。 5.所有外部中断通道的优先级控制字PRI_n也都是0,68个外部中断通道的抢先优先级都是0号,没有子优先级的区分。不会发生任何的中断嵌套行为,谁也不能打断当前正在执行的中断服务。当多个中断出现后,则看它们的中断向量地址:地址越低,中断级别越高,STM32优先响应

Atmega128外部中断程序

//static unsigned char tel[11]; static unsigned char zz=1; unsigned char ATma[20]; static unsigned char zz0=1; static unsigned char mmm=0; void exteral_interrupt6()//外部中断服务函数初始化 { CLI(); //关闭中断 // DDRE&=~(1<

习题(中断与接口及答案)

单片机练习三中断与接口 一.单项选择题 1. 已知MCS-51单片机系统晶振频率为12MHZ,SMOD=1,串行口工作于方式2的波特率为( A )。 A. 375K B. 1875K C. 2400K D. 1200K 2. MCS-51单片机T0作为计数器工作于不受外部信号INTO控制,T1作为定时器,T0工作于方式0,T1工作于方式1,其方式控制字的内容为( B )。 A. 00H B. 14H C. 17H D. 80H 3. 控制定时器工作方式的寄存器是( D )。 A. TCON B. PCON C. SCON D. TMOD 4. MCS-51单片机的中断允许触发器内容为83H,CPU将响应的中断请求是( D )。 A. INTO,INT1 B. T0, T1 C. T1, 串行接口 D. INTO,T0 5. 设定时器/计数器T0工作于方式3,则TH0作为一个独立的8位定时器,它的运行由控制位( D )。 A. GATE B. INTO C. TR0 D. TR1 6. 当MCS-51进行多机通信时,串行口的工作方式应选择( C )。 A.方式0 B.方式1 C. 方式2或方式3 D. 方式2 7. 8031单片机的串行口的中断程序入口地址为( B )。 B. 0023H C. 000BH D. 0003H 8. 已知单片机系统的fosc=6MHZ,执行下列延时程序的时间为( C )。 DY2: MOV R6, #2 DLP1: MOV R7, #250 DLP2: DJNZ R7, DLP2 DJNZ R6, DLP1 RET A.1ms B. C. 2ms D. 4ms 9. 串行口中断入口地址是( D )。 A. 0003H B. 000BH C. 0013H D. 0023H 10. 若MCS-51单片机的晶振频率为24MHZ,则其内部的定时器/计数利用计数器对外部输入脉冲的最高计数频率是( A )。 A. 1MHZ B. 6MHZ C. 12MHZ D. 24MHZ 11. MCS-51串行口工作于方式2时,传送的一帧信息为( C )。 A. 8位 B. 16位 C. 11位 D. 12位 12. MCS-51单片机有( B )内部中断源。 A. 2个 B. 3个 C. 4个 D. 5个 13. T1作为计数器,工作于方式2,不需门控位参于控制,其控制字为( A,C )。 A. 60H B. 06H C. 66H D. 00H 14. 已知(60H)=23H,(61H)=61H,运行下列程序62H内容为( A )。 CLR C MOV A, #9AH SUBB A,60H ADD A, 61H DA A MOV 62H, A A. 38H B. D8H C. DBH D. 3EH 15. 设系统的晶振频率为6MHZ,下列子程序DELAY的延时时间约为( B )。 DELAY: MOV R2, #0FAH L2: DJNZ R2, L2

单片机实验六-中断系统实验

信息工程系实验报告 课程名称:单片微型计算机与接口技术 实验项目名称:实验六 中断系统实验 实验时间:2013-12-02 班级:电信*** 姓名:*** 学号:110706 实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件的使用和单片机外部中断的使用。了解并熟悉51单片机中中断的概念,中断处理系统的工作原理。理解51单片机中断管理系统处理五种中断源,特别是对外部中断的设置与控制方法。熟悉中断处理特别是外部中断处理的过程,掌握中断处理子程序的书写格式和使用方法。 实 验 原 理: 现代的计算机都具有实时处理功能,能对外部发生的事件如人工干预、外部事件及意外故障做出及时的响应或处理,这是依靠计算机的中断系统来实现的。 51单片机内部有一个中断管理系统,它能对内部的定时器事件、串行通信的发送和接收事件及外部事件(如键盘按键动作)等进行自动的检测判断,当有某个事件产生时,中断管理系统会置位相应标志通知CPU ,请求CPU 迅速去处理。CPU 检测到某个标志时,会停止当前正在处理的程序流程,转去处理所发生的事件(针对发生的事件,调用某一特定的函数,称为该事件的中断服务函数),处理完以后,再回到原来被中断的地方,继续执行原来的程序。 外部中断 内部 定时 外部中断 内部 定时内部 T 源允 总允 允许中断寄存中断优先级 中断源 中断源 高优中断 中断 低优中断 中断T —发送 I I 查询 成 绩: 指导教师(签名):

MCS-51单片机最典型的有5个中断源(外部中断0、1,内部定时器中断0、1,串口中断),具有两个中断优先级。两个外部中断:(— INT0、— INT1)上输入的外部中断源,低电平或负跳变有效,置位TCON中的IE0和IE1中断请求标志位。通过外部中断源触发方式控制位IT可以使外部中断为电平触发方式(=0)或边沿触发方式(=1)。另外控制中断允许寄存器IE可以开放中断。 使用MCS-51的中断,要为使用到的中断源编写中断服务程序。C51为中断服务程序的编写提供了方便的方法。C51的中断服务程序是一种特殊的函数,它的说明形式为: void 函数名(void) interrupt n using m { 函数体语句 } 这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。 实验环境: 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus系列仿真调试软件 实验内容及过程: 一、利用外部中断INT1控制数码管显示0到9。 二、利用外部中断INT1控制两个数码管显示00到99。 1、打开Proteus,绘制电路图,如图6-1,6-2所示: 图6-1实验1整体电路图

51单片机独立按键程序查询法和外部中断两种

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 //用//11111111111111111代表第一个程序。//2222222222222222222222222代表第二个程序,以此类推 //1111111111111111111111111111111111111111111111111111111111111111111 //1111111111111111111111111111111111111111111111111111111111111111111 /****************************************************************************** * * 实验名: 左右流水灯实验 * 使用的IO : LED使用P2,键盘使用P3.1 * 实验效果: 按下K1键, * 注意: ******************************************************************************* / #include #include #define GPIO_LED P2 sbit K1=P3^1; void Delay10ms( ); //延时10ms /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main(void) { unsigned int i,j; j=0xfe; //1111_1110 while(1) { GPIO_LED=j; if(K1==0) //检测按键K1是否按下 { Delay10ms(); //消除抖动 if(K1==0) {

第五章习题答案

第五章习题答案 5-1 什么是中断系统?中断系统的功能是什么? 实现中断功能的硬件和软件称为中断系统. 中断系统功能包括进行中断优先排队、实现中断嵌套、自动响应中断和实现中断返回。 5-2 什么是中断嵌套? CPU在响应某一个中断源中断请求而进行中断处理时,若有中断优先级更高的中断源发出中断请求,CPU会暂停正在执行的中断服务程序,转向执行中断优先级更高的中断源的中断服务程序,等处理完后,再返回继续执行被暂停的中断服务程序,这个过程称为中断嵌套。 5-3 什么是中断源?MCS-51有哪些中断源?各有什么特点? ①实现中断功能的硬件和软件称为中断系统,产生中断请求的请求源称为中断源. ②5个中断源中共有两个外部中断、两个定时中断和一个串行中断。 (1)外部中断源 外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的,可以通过两 个固定引脚来输入到单片机内的信号,即外部中断0(INT0)和外部中断1(INT1)。 (2)定时中断类 定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的,即T0和T1 中断。 (3)串行口中断类 串行口中断是为接收或发送一帧串行数据,硬件自动使RI和TI置1,并申请中断 5-4 MCS-51单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应? (1)MCS-51单片机的最短响应时间为3个机器周期,最长响应时间8个机器周期。 (2)有下列任何一种情况存在,则中断响应会受到阻断。 ①CPU正在执行一个同级或高一级的中断服务程序; ②当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令还未完成前,任何中断请求都得不到响应; ③正在执行的指令是返回指令或者对专业寄存器IE、IP进行读/写的指令,此时。在 执行RETI或者读写IE或IP之后,不会马上响应中断请求,至少在执行一条其他之后才会 响应。若存在上述任何一种情况,中断查询结果就被取消,否则,在紧接着的下一个机器周期,就会响应中断。 5-5 MCS-51有哪几种扩展外部中断源的方法?各有什么特点? 扩展外部中断源的方法有定时扩展法和中断加查询扩展法两种。定时扩展法用于外部 中断源个数不太多并且定时器有空余的场合。中断加查询扩展法用于外部中断源个数较多的 场合,但因查询时间较长,在实时控制中要注意能否满足实时控制要求。 5-6 MCS-51单片机各中断源发出的中断请求信号,标记那些寄存器中? 外部中断0(INT0)和外部中断1(INT1)中断请求信号标记在TCON中IE1和IE0。 T0和T1中断中断请求信号标记在TCON中TF1和TF0 串行口中断类中断请求信号标记在SCON中TI和RI 5-7 编写出外部中断1为跳沿触发的中断初始化程序。 SETB EA SETB EX1 SETB IT1

嵌入式系统实验报告-1-外部中断

《嵌入式系统技术》 实训报告 1、实验目的 z了解S3C2440A 外部中断的工作原理。 z掌握S3C2440A 外部中断的使用方法。 2、实验设备 z PC 机、Multi-ICE 仿真器、2440A 实验箱。 3、实验内容 z通过外部K1、K2、K3、K4、K5、K7 按键触发外部中断E INT1、EINT2、EINT3、EINT4、EINT5、EINT7 4、实验原理 4.1 ARM 的异常中断类型 在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。中断功能可以解决CPU 内部运行速度远远快于外部总线速度而产生的等待延时问题。ARM 提供的FIQ 和IRQ 异常中断用于外部设备向C PU 请求中断服务,一般情况下都是采用I RQ 中断。 七种异常中断

中断过程框图 4.2 异常中断响应过程和返回过程 异常中断的响应过程: 1).保存处理器当前状态寄存器C PSR 的值到备份程序状态寄存器S PSR 中。 2).设置但前程序状态寄存器CPSR 的值,其中包括:设置CPSR 响应位的值,使处理器进入特定的处理器模式;按要求屏蔽中断,通常应该屏蔽I RQ 中断。在F IQ 中断时屏蔽F IQ 中断。 3).设置L r 寄存器。将相应中断模式的L r 寄存器的值设为异常中断的返回地址。 4).处理程序计数器PC,将PC 值设为相应的中断向量的地址,从而实现跳转以执行中断服务程序。 异常中断的返回 当处理器执行完以上流程之后,处理器已经从中断向量进入异常处理的状态。异常中断处理完毕之后,在异常中断程序的末端,处理器进入异常中断的返回状态,其流程如下: 1).恢复状态寄存器。将保存的备份程序状态寄存器SPSR 值赋给当前程序状态寄存器CPSR。 2).将返回地址赋值到程序计数器(PC)。这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。 需要注意的是:对于不同的异常中断,其返回地址的计算方法也是不同的,IRQ 和F IQ 异常中断产生时,程序计数器PC 已经更新,而SWI 中断和未定义指令中断时由当前指令自身产生的,程序计数器P C 尚未更新,所以要计算出下一条指令的地址来执行返回操作;指令预取指中指异常中断和数据访问中断要求,返回到出现异常的执行现场,重新执行操作。

STM32中断

STM32外部中断详解 2012-07-02 21:59:24| 分类:嵌入式相关| 标签:|举报|字号大中小订阅 一、基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器。 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组 第0组:所有4bit用于指定响应优先级; 第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级; 第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级; 第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级; 第4组:所有4位用于指定抢占式优先级。 所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级。 有几点需要注意的是: 1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果; 2)抢占式优先级别相同的中断源之间没有嵌套关系; 3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。 二、 GPIO外部中断 STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组位一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,PD0,PE0,PF0,PG0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能够再使用了,在此情况下,我们智能使用类似于PB1,PC2这种末端序号不同的外部中断源。每一组使用一个中断标志EXTIx。EXTI0 –EXTI4这5个外部中断有着自己的单独的中断响应函数,EXTI5-9共用一个中断响应函数,EXTI10-15共用一个中断响应函数。对于中断的控制,STM32有一个专用的管理机构:NVIC。 三、程序实现

实验四 定时器中断实验

实验四 定时器中断实验 一:实验目的 1.熟悉定时器初始化的步骤; 2.熟悉定时器控制寄存器(TCR )的含义和使用; 3.熟悉定时器的原理和应用。 二:实验内容 本实验要求编写一个简单的定时器中断程序,设置一定的周期控制与XF 引脚相连的LCD 指示灯。当定时器中断产生时可以观察到LCD 周期性闪烁。 三:实验原理 1.定时器 .C54xx 系列的DSP 都具有一个或两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特定的状态位实现停止、重启动、重设置或禁止。定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。应用中可以用定时器来产生周期性的CPU 中断或脉冲输出。定时器的功能方框图如图9.1所示,其中有一个主计数器(TIM )和一个预定标计数器(PSC )。TIM 用于重装载周期寄存器PRD 的值,PSC 用于重装载周期寄存器TDDR 的值。 图5.1信号,是在器件复位时,DSP 向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM 和PRD 装载最大值(0FFFFH );TCR 的所有位清0;结果是分频值为0,定时器启动,TCR 的FREE 和SOFT 为0。

定时器实际上是有20bit 的周期寄存器。它对CLKOUT 信号计数,先将PSC (TCR 中的D6~D9位)减1,直至PSC 为0,然后把TDDR (TCR 中的低4位)重新装载入PSC ,同时将TIM 减1,直到TIM 减为0。这时CPU 发出TINT 中断,同时在TOUT 引脚输出一个脉冲信号,脉冲宽度与CLKOUT 一致,然后将PRD 重新装入TIM ,重复下去直到系统或定时器复位。 定时器产生中断的计算公式如下: TINT t c 为 CLKOUT 的周期) 定时器由三个寄存器组成:TIM 、PRD 、TCR 。 TIM :定时器寄存器,用于装载周期寄存器值并自减1。 PRD :周期寄存器,用于装载定时器寄存器。 TCR :定时器控制寄存器,包含定时器的控制状态位。 定时器是一个片内减计数器,用于周期地产生发,后者每个CPU 时钟周期减1,当计数器减至0周期计数器被定时周期值重新装载。 在正常操作模式下,当TIM 自减至0时,TIM 将被PRD 内的数值重装载。在硬件复位或定时器单独复位(TCR 中TRB 位置1)的情况下,主定时器模块输出的是定时器中断(TINT )信号。该中断被发送至CPU ,同时由TOUT 引脚输出。TOUT 脉冲的宽度等于CLKOUT 的时钟宽度。 预定标模块由两个类似TIM 和PRD 的单元构成。它们是预定标计数器(PSC )和定时器分频寄存器(TDDR )。PSC 、TDDR 是RCR 寄存器的字段。在正常操作时PSC 自减为0,TDDR 值装入PSC ,同样在硬件复位或定时器单独复位的情况下,TDDR 也被装入PSC 。PSC 被CPU 时钟定时,即每个CPU 时钟使PSC 自减1。PSC 可被TCR 读取,但不能直接写入。 当TSS 置位时,定时器停止工作。若不需要定时器,终止定时操作,可使芯片工作在低功耗模式,并且可以使用与定时器相关的两个寄存器(TIM 和PRD )作为通用的存储器单元,可以在任意周期对它们进行读或写操作。 TIM 的当前值可被读取,PSC 也可以通过TCR 读取。因为读取这两个存储器需要两个指令,而在两次读取之间因为自减,数值可能改变,因此,PSC 两次读的结果可能有差别,不够准确。若要准确测量时序,在读这两个寄存器值之前可先中止定时器,对TSS 置1和清0后,可重新开始定时。 通过TOUT 信号或中断,定时器可以用于产生周边设备的采样时钟,如模拟接口。对于有多个定时器的DSP ,由寄存器GPIOCR 中的第15位控制使用某一个定时器产生的TOUT 信号。 2.定时器初始化 (1)定时器初始化步骤 ●TCR 的TSS 位写1,定时器停止工作; ●装载TRD ;

AVR单片机外部中断0、1、2详解

AVR单片机外部中断0、1、2 详解 中断基本包含: 1.中断源 2.中断向量(中断入口地址) 3.中断优先级 4.中断函数 除此之外,在单片机中,中断的执行或者中断的触发必 须符合以下的规则:中断触发|执行= 全局中断使能位AND 中断源使能位AND 中断源标志位 单片机内部中断的触发必须完成,全局中断使能,中断 源使能,中断源标志位置一等条件。除此之外,如果是 外部中断0,1,2(INT0,1,2),必须设置引脚触发的规则。最后呢,就是需要在程序里建立处理中断的中断 函数。 在编程的时候的步骤大致如下:(无视INT2) 1. 初始化PD2,PD3 为输入状态。DDRD|=BIT(2)|BIT(3); 2. 设置INT0,1 引脚触发的规则,实验中为低电平触发。MCUCR=0xF0; 3. 设置INT0,1 中断源使能位为逻辑1。 GICR|BIT(7)|BIT(6); 4. 清除INT0,1 的中断标志位(软件写入,逻辑1 为清

除)。GIFR|=BIT(7);BIT(6); 5. 全局中断允许位使能。SREG|=BIT(7); 6. 编辑中断处理函数。 /*ATmega16提供3个外部中断,分别由INT0、INT1和INT2引脚触发。 需要注意的是,如果将ATmega16设置为允许外部中断,则即使把INT0、INT1和INT2引脚 设置为输出方式,外部中断仍然会被触发。外部中断可选择采用上升沿触发、下降沿触发和 低电平触发(INT2中断只能采用沿触发方式。 */ #include; #include; #include "smg.h" /*1.状态寄存器SREG bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 I T H S V N Z C I:全局中断使能位。 在I置位后,单独的中断使能由不同的中断寄存器控制。若I为0,则禁止中断。 MCU 控制寄存器- MCUCR MCU 控制寄存器包含中断

微机原理习题7-中断控制器

习题七中断控制器 参考答案 7.2.8086 CPU响应中断的条件?简述8086CPU响应中断处理过程。 【答】CPU响应中断的条件:(1)有中断源发出的中断请求信号,并保存在中断请求触发器中,直至CPU响应此中断请求之后才清除。(2)开放总中断。(3)在现行指令结束后响应中断。 8086CPU的中断处理过程: (1)CPU自动完成如下工作: 关中断,断点保护,形成中断入口地址。即获得中断服务程序的入口地址,从而进入中断服务程序。 (2)CPU中断服务。包括保护现场、CPU开放中断、中断处理、CPU关中断、恢复现场。 (3)中断返回。 7.3 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么 不同之处? 【答】(1)是由CPU内部事件引起的中断,是确定的;与硬件无关,不执行中断响应周期; 除单步中断外,软件中断(内部中断)不可屏蔽;优先级高于硬件中断(外部中断)。 (2)硬件中断由外部事件引起,是随机的,需要执行总线周期,中断类型码由中断控制器提供。 7.4 什么叫中断向量?它放在哪里?对应于1CH的中断向量在哪里?如1CH中断程序从 5110H :2030H开始,则中断向量应怎样存放? 【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中。 由1ch*4=70H知中断向量存放在0000:0070处。 由于中断处理入口地址为5110H:2030H,所以2030H应放在0070H,0071H两个存储单元,5110H应放在0072H、0073H这2个单元。 7.5 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元 中是什么内容? 【答】当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU就会在当前指令执行完后开始响应外部的中断请求,具体如下: 1)从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中; 2)将标志寄存器的值入栈,清IF 和TF,将断点保护到堆栈中; 3)根据中断类型获取中断向量; 4)转入中断处理子程序; 5)处理完后恢复现场 6)中断返回。 可屏蔽中断或者非屏蔽中断响应后堆栈的顶部6个单元是断点处的IP、CS、FLAG内容。 7.6 从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范 围? 【答】从8086/8088的中断向量表中可以看出,如果一个用户想定义一个中断,应该选择中 断类型60H-6FH,其中断向量在中断向量表的0180H-01BFH。 7.7 类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片断。【答】中断向量的地址:20H×4=10000000=80H 中断向量的装入参考程序: CLI PUSH DS XOR AX,AX MOV DS,AX MOV AX,OFFSET INT-5 MOV WORD PTR [080H],AX MOV AX,SEG INT-5

操作系统实验一中断处理

实习一中断处理 一、实习内容 模拟中断事件的处理。 二、实习目的 现代计算机系统的硬件部分都设有中断机构,它是实现多道程序设计的基础。中断机 构能发现中断事件,且当发现中断事件后迫使正在处理器上执行的进程暂时停止执行,而让操作系统的中断处理程序占有处理器去处理出现的中断事件。对不同的中断事件,由于它们的性质不同,所以操作系统应采用不同的处理。通过实习了解中断及中断处理程序的作用。本实习模拟“时钟中断事件”的处理,对其它中断事件的模拟处理,可根据各中断事件的性质确定处理原则,制定算法,然后依照本实习,自行设计。 三、实习题目 模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序。 [提示]: (1) 计算机系统工作过程中,若出现中断事件,硬件就把它记录在中断寄存器中。中 断寄存器的每一位可与一个中断事件对应,当出现某中断事件后,对应的中断寄存器的某一位就被置成―1‖。 处理器每执行一条指令后,必须查中断寄存器,当中断寄存器内容不为―0‖时,说明有中断事件发生。硬件把中断寄存器内容以及现行程序的断点存在主存的固定单元,且让操作系统的中断处理程序占用处理器来处理出现的中断事件。操作系统分析保存在主存固定单元中的中断寄存器内容就可知道出现的中断事件的性质,从而作出相应的处理。 本实习中,用从键盘读入信息来模拟中断寄存器的作用,用计数器加1 来模拟处理器 执行了一条指令。每模拟一条指令执行后,从键盘读入信息且分析,当读入信息=0 时,表示无中断事件发生,继续执行指令;当读入信息=1 时,表示发生了时钟中断事件,转时钟中断处理程序。 (2)假定计算机系统有一时钟,它按电源频率(50Hz)产生中断请求信号,即每隔20 毫秒产生一次中断请求信号,称时钟中断信号,时钟中断的间隔时间(20 毫秒)称时钟单

51单片机中断系统详解

的定时器中断后便认为是1s,这样便可精确控制定时时间啦。要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。 以上就是定时器初值的计算法,总结后得出如下结论:当用定时器的方式1时,设机器周期为T CY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/T CY ,装入THX和TLX中的数分别为: THX=(65536-N)/256 , TLX=(65536-N)%256 中断服务程序的写法 void 函数名()interrupt 中断号using 工作组 { 中断服务程序内容 } 在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下: (1)对TMOD赋值,以确定T0和 T1的工作方式。 (2)计算初值,并将初值写入TH0、TL0或TH1、TL1。 (3)中断方式时,则对IE赋值,开放中断。 (4)使TR0和TR1置位,启动定时器/计数器定时或计数。 例:利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。 程序代码如下: #include #define uchar unsigned char #define uint unsigned int sbit led1=P1^0; uchar num; void main() { TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1) TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms数为45872 TL0=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 while(1) { if(num==20) //如果到了20次,说明1秒时间 { led1=~led1; //让发光管状态取反 num=0; } } } void T0_time()interrupt 1

中断系统习题带答案

t b i o 一、选择题 1、下列()符合CPU响应中断的过程 ①开中断②保护现场③判断中断来源④执行中断服务程序⑤恢复现场 ⑥关中断 A、1234567 B、263451 C、623451 D、632451 2、8086/8088响应中断的优先级次序为() A、软件中断——NMI中断——INTR端中断——单步中断 B、NMI端中断——软件中断——INTR中断——单步中断 C、软件中断——NMI中断——单步中断——INTR中断 D、软件中断——INTR中断——NMI中断——单步中断 3、8086/8088CPU中以下中断源需要通过中断响应周期读取中断向量号的是() A、除法错中断 B、单步中断 C、INTR中断 D、NMI中断 4、下列关于8259A可编程中断控制器的叙述,不正确的是() A、多片8259A能够级联使用,最多可以扩展至128级优先权控制 B、8259A具有辨认中断源的功能 C、8259A具有向CPU提供中断向量的功能 D、8259A具有将中断源按优先级排队的功能 5、8259A特殊全嵌套方式要解决的主要问题是() A、屏蔽所有中断 B、设置最低优先级 C、开放低级中断 D、响应同级中断 6、采用4片可编程中断控制器8259A级联工作,可以使CPU的可屏蔽中断扩大到() A、29级 B、64级 C、32级 D、16级 7、当多片8259A级联使用时,对于从8259A,级联信号CAS2~CSA0是() A、输入信号 B、输出信号 C、全部信号 D、中断信号 8、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的中断请求。若要调整中断事件的响应次序,可以利用……………………() A、中断响应 B、中断屏蔽 C、中断向量 D、中断嵌套 9、有三片8259级联,从片分别接入主片的IR2和IR5,则主8259的ICW3中的内容为();两片从片8259的ICW3的内容分别为()

计算机组成原理中断实验报告

北京建筑大学 2015/2016 学年第二学期 课程设计 课程名称计算机组成原理综合实验 设计题目微程序控制器设计与实现 系别电信学院计算机系 班级计141 学生姓名艾尼瓦尔·阿布力米提 学号 完成日期二〇一六年七月八日星期五 成绩 指导教师 (签名) 计算机组成综合实验任务书

指令执行流程图; ?5、利用上端软件,把所编写的微程序控制器内容写入实验台中控制器中。 ?6、利用单拍测试控制器与编程的要求是否一致。如果有错误重新修改后再写入控制器中。 7、编写一段测试程序,测试控制器运行是否正确。 实验目的 1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。 2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。 实验电路 1. 微指令格式与微程序控制器电路 2.微程序控制器组成 仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。

中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。其ABEL语言表达式如下: INTR1 := INTR; INTR1.CLK = CLK1; IE := CLR & INTS # CLR & IE & !INTC; IE.CLK= MF; INTQ = IE & INTR1; 其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0 时,禁止中断。当INTS = 1时,在下一个MF的上升沿IE变1,当INTC = 1时,在下一个MF的上升沿IE变0。CLR信号实际是控制台产生的复位信号CLR#。当CLR = 0时,在下一个CLK1的上升沿IE变0。当 CLR=1 且INTS = 0 且 INTC = 0时,IE保持不变。 INTR是外部中断源,接控制台按钮INTR。按一次INTR按钮,产生一个中断请求正脉冲INTR。INTR1是INTR经时钟CLK1同步后产生的,目的是保持INTR1与实验台的时序信号同步。INTR脉冲信号的上升沿代表有外部中断请求到达中断控制器。INTQ是中断屏蔽控制逻辑传递给CPU的中断信号,接到微程序控制器上。当收到INTR脉冲信号时,若中断允许位INTE=0,则中断被屏蔽,INTQ仍然为0;若INTE =1,则INTQ =1。

单片机外部中断实验(附C语言程序)

单片机外部中断实验(附c程序) 一、实验目的 掌握外部中断的C语言和汇编语言编程方法,会用外部中断解决实际应用问题。 。 二、实验内容 8051C51单片机P2.0接一个发光二极管LED1、P2.1接一个发光二极管LED2,P3.2接一个开关、P3.3接一个开关要求实现以下功能: (1)合上、P3.3断开时LED1闪烁 (2)P3.2断开、P3.3合上时LED2闪烁 (3)P3.2合上后(不断开)再合上P3.3,LED1闪烁LED2不闪烁 (4)P3.3合上后(不断开)再合上P3.2,LED2不闪烁LED1闪烁 试编写C语言和汇编语言程序 使用自然优先级就可以 也可 XO 高级X1低级PX0=1 PX1=0 四、实验电路 五、参考程序(自己完成) C程序: Include Sbit P2_0=P2^0; Sbit P2_1=P2^1; Sbit P3_2=P3^2; Sbit P3_3=P3^3; void delay02s(void) //延时0.2秒子程序 { unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--); }

Void main { EA=1; EX0=1; EX1=1; ITO=1; IT1=1; PX0=1; PX1=0; While(1); } Void int0(void) interrupt 0 { if(!P3_2) { While(1) { P2_0=1; delay02s(); P2_0=0; delay02s(); } } } Void int1(void) interrupt 2 { if(!P3_3) { While(1) { P2_1=1; delay02s(); P2_1=0; delay02s(); } } }

相关文档
相关文档 最新文档