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

DSP 4 中断处理

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

单片机练习三中断与接口 一.单项选择题 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

习题(中断定时部分)

1、2 填空题 1、单片机计数器最大的计数值为 _____________ 。 2、当把定时器/计数器T0 定义为可自动重新装入初值的8 位定时器/计数器 时,________为8 位计数器,______为常数寄存器。 3、若系统晶振频率是12MHz,利用定时器/计数器T1 定时1ms,在方式1 下定时初值为__________。 4、当计数器产生计数溢出时,把定时器/计数器的TF0(TF1)位置“1”。对计数溢出的处理,在中断方式时,该位作为 _____位使用;在查询方式时,该位作_____位使用。 5、在定时器T0工作方式3下,欲使TH0停止工作,应执行一条______的指令。 6、在定时器工作方式1下,计数器的宽度为16位,如果系统晶振频率为6MHz,则最大定时时间为 _______,若系统晶振频率为12MHz,则最大定时时间为 ______。 7、8051单片机内部设有两个16位定时器/计数器,即_____ 和 _____。 8、T0由两个8位特殊功能寄存器_______和________组成,T1由 ______ 和______组成。 9、定时时间与定时器的______ 及______有关。 10、MCS-51的定时器/计数器T0的门控信号GATE设置为1时,只有______引脚为高电平且由软件使______置1时,才能启动定时器/计数器T0工作。 11、当T0为方式______ ,T1为方式______的时候,8051单片机的定时器可提供3个8位定时器/计数器。 12、定时器/计数器的工作方式3是指的将____________拆成两个独立的8位计数器。而另一个定时器/计数器此时通常只可作为_________________使用。13、8051单片机外部中断请求信号有电平触发方式和__________触发方式两种。在电平触发方式下,当采集到INT0、INT1的有效信号为__________时,激活外部中断。 14、8051单片机的P0~P3口均是______位I/O口,其中的P0口和P2口除了可以进行数据的输入/输出外,通常还用来构建系统的______________和 _____________。当连接输入/输出设备时,常选_________做输入/输出口。 二、选择题 1、在下列寄存器中,与定时/计数控制无关的是() A、TCON B、TMOD C、SCON D、IE 2、在工作方式0下,计数器是由TH的全部8位和TL的5位组成,因此其计数范围是() A、1~8192 B、0~8191 C、0~8192 D、1~4096 3、如果以查询方式进行定时应用,则应用程序中的初始化内容应包括()

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

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

中断习题和参考题参考答案(课后)

中断习题和参考题 1、什么是中断向量?中断向量表是什么?非屏蔽中断的类型为多少?8086 中断系统优先级顺序怎样? ①所谓中断响量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断响量 ②中断向量按照中断类型的顺序在内存0段0单元开始有规则排列的一张表 ③类型02H ④内部中断>非屏蔽中断>可屏蔽中断>单步中断 2、8259的全嵌套和特殊全嵌套方式有何异同?优先级自动循环是什么?什么特殊屏蔽方式?如何设置成该方式? ①全嵌套方式是8259A最常用的工作方式,只有在单片情况下,在全嵌套方式中,中断请求按优先级0-7进行处理,0级中断的优先级最高。特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,还可满足同级中断打断同级中断,从而实现一种对同级中断请求的特殊嵌套,而在全嵌套方式中,只有当更高级的中断到时,才会进行嵌套。 ②优先级自动循环方式一般在系统中多个中断源优先级相等的场合。在这种方式下,优先级队列是在变化的,一个设备受到中断服务以后,它的优先级自动降为最低。 ③仅仅禁止同级中断嵌套,开放高级中断和低级中断④两步:1步设置OCW 3 , 设置成特殊屏蔽方式,2步设置OCW 1 屏蔽某级中断。 3、8259有几种中断结束方式?应用场合如何? 1.中断自动结束方式,不需要设置中断结束命令,在单片系统中且不会出现中断嵌套时用。 2.一般中断结束方式,在全嵌套方式下用。 3.特殊中断结束方式,在任何场合均可使用。 4、8259的ICW 2 与中断类型码有什么关系?说明类型码为30H,36H,38H的异同。 ①高五位相同,低三位不同(中断类型码的低三位和引脚的编码有关,ICW2的低三位无意义) ②30H,36H高五位相同,ICW 2=30H, 30H为8259A IR 对应的中断类型码, 36H为8259A IR 对应的中断类型码。 38H ICW 2=38H 38H为8259A IR 对应的中断类型码

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

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

中断扫描工作方式键盘程序

中断扫描工作方式键盘程序 #include /*定义0?9,A?F十六个字符的字型码表*/ unsigned char table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; /*10ms延时程序*/ void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } /*键盘扫描子程序*/ unsigned char scan_key(void) { unsigned char n,scan,col,rol,tmp; bit flag=0; //设有键按下标志位 scan=0xef; P0=0x0f; //P0 口低四位做输入口,先输出全1 for(n=0;n<4;n++) //循环扫描 4 列,从0 列开始

P0=scan; //逐列送出低电平 tmp=~P0; //读行值,并取反tmp=tmp&0x0f; col=n; //保存列号到col flag=1; /* 判断哪一行有键按下,并保存行号到rol*/ if(tmp==0x01) { rol=0; break;} else if(tmp==0x02) { rol=1; break;} else if(tmp==0x04) { rol=2; break;} else if(tmp==0x08) { rol=3; break;} else flag=0; scan=(scan<<1)+1; } if(flag==0) return -1; else return(rol*4+col); //第0 行有键按下 //第 1 行有键按下 //第 2 行有键按下

中断传送方式原理

一、中断传送方式的原理 从原理上看,查询式传送比无条件传送可靠,因此使用场合也较多。但在查询方式下,CPU 不断地读取状态字和检测状态字,如果状态字表明外设未准备好,则CPU 须等待。这些过程占用了CPU 的大量工作时间,而CPU 真正用于传输数据的时间却很少。 另外,用查询方式工作时,如果一个系统有多个外设,那么CPU 只能轮流对每个外设进行查询,而这些外设的速度往往不同。这时CPU 显然不能很好满足各个外设随机性的对CPU 提出的输入输出服务要求,所以,不具备实时性。可见,在实时系统以及多个外设的系统中,采用查询方式进行数据传送往往是不相宜的。 为了提高CPU 的效率和使系统有实时性能,可以采用中断传送方式。在中断传送方式下,外设具有申请CPU 服务的主动权,当输入设备将数据准备好或者输出设备可以接收数据时,便可以向CPU 发出中断请求,使CPU 暂时停下目前的工作而和外设进行一次数据传输。等输入或者输出操作完成以后,CPU 继续进行原来的工作。 二、8088的中断类型8088的中断类型如图所示,中断类型共有256种,包括硬件中断和软件中断。它们均通过中断逻辑向CPU 申请中断。硬件中断是由外部设备产生的,在8088的CPU 引脚中设置了非屏蔽NMI 中断及可屏蔽INTR 中断两个引脚。通常NMI 仅一级,而INTR 还受中断标志IF 状态的控制,INTR 通过中断控制器8259A 向外扩展,可达上百个中断。软件中断是CPU 根据软件中某条指令或软件所设置的某个标志而产生的。 三、NMI,INTR 及软件中断的区别 8088中的各种中断的响应和处理过程是不相同的,但主要区别在于如何获取相应的中断类型码。 对于外部中断,CPU 是在当前指令周期的T 状态采样中断请求输入信号,如果有可屏蔽中断请求,且CPU 处在开中断状态,则CPU 转入两个连续的中断响应周期,在第二个中断响应周期的 状态前沿,采样数据线获取由外设输入的中断类型码。若是采样到非屏蔽中断请求,则CPU 不经过上述两个中断响应周期,而在内部自动产生中断向量号2。 对于内部中断,中断类型码也是自动生成的,对于用户自定义的软件中断INT n 指令,则向量号即为指令中给定的n ,而不需要从外部中断设备中得到中断向量号。软件中断有如下特点: 1、可用一条指令进入中断处理程序,由指令提供中断类型码。 2、通过执行指令进入中断,不需要执行中断响应周期,故也无须从总线上获得中断类型码。 3、何时产生中断,只和中断指令设置有关,不受中断允许标志状态的影响。 4、由于软件中断是由程序中的中断指令引发的,中断指令置于程序的何处,何时执行是事 先知道的,因此软件中断没有随机性,不像硬件中断。 5、外部设备随时都可以发出中断申请。由于软件中断的这个特性,使得在软件中断中,主程序和中断处理子程序间可进行参数传递,相互之间独立性较差。而硬件中断的随机性则又决定了主程序和中断处理子程序之间的关系是相互独立的,只能通过I/O 类指令完成CPU 与外设之间的信息传递。 4 T

第5章中断系统课后习题答案

第5章中断系统 1)作业题 1.8051微控制器中,有几个中断源?几个中断优先级?中断优先级是如何控制的?在出 现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)? 各个中断源的入口地址是多少? 答:8051微控制器中有五个中断源,两个中断优先级。通过IP进行优先级控制。IP为中断优先级寄存器,物理地址为B8H,其中的后五位PS PT1 PX1 PT0 PX0分别控制串行口、定时器/计数器1、外部中断1、定时器/计数器0、外部中断0的优先级。在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串行口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。 2.8051微控制器中,各中断标志是如何产生的,又如何清0的? 答:每个中断源请求中断时会在SFR的某些寄存器中产生响应的标志位,表示该中断源请求了中断。INT0、INT1、T0和T1的中断标志存放在TCON(定时器/计数器控制寄存器)中,占4位;串行口的中断标志存放在SCON(串行口控制寄存器)中,占2位。 TF0:T0溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF0清0;不用中断方式时,要用软件清0。 TF1:T1溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF1清0;不用中断方式时,要用软件清0。 IE0:INT0中断标志,发生INT0中断时,硬件置IE0为1,并向CPU请求中断。 IE1:INT1中断标志,发生INT1中断时,硬件置IE1为1,并向CPU请求中断。SCON:串行口控制寄存器。 TI:串行口发送中断标志,发送完一帧数据时由硬件置位,并请求中断。 RI:串行口接受中断标志,接收到一帧数据时,由硬件置位,并且请求中断。 TI、RI标志,必须用软件清0。 3.简述8051微控制器中中断响应的过程。 答:单片机响应中断的条件:中断源有请求(响应的中断标志位置1),CPU允许所有中断(CPU中断允许位EA=1),中断允许寄存器IE中,相应中断源允许位置1;没有同级或者高级中断正在服务,现行指令已经执行完毕,若执行指令为RETI或者读/写IE或者IP指令时则该指令的下一条指令也执行完毕。 中断响应的过程: 1)CPU在每个机器周期的S5P2检测中断源。在下一个机器周期的S6按照优先次序查询各个中断标志。若查询到有中断标志为1时,按照优先级别进行处理,即响应中断;2)置相应的“优先级状态”触发器为1,即指出CPU当前正在处理的中断优先级,以阻断同级或者低级中断请求; 3)自动保护断点,即将现行PC内容(即断点地址)压入堆栈,并且根据中断源把相应的

中断方式

6.3中断方式 ?查询方式的主要缺点:CPU效率低;响应慢 ?中断方式的引入:提高CPU效率;实时响应 6.3.2中断概念 一、中断和中断源 主程序事件请求 响应中断: CPU中止正在执行的(断点)事件主程序,转去处理中 处理断事件,之后返回继 返回续执行主程序。 继续执行 主程序(中断服务程序、断点) 中断源:引起中断的事件(内部错误、外设请求、时钟等)。 ?外部中断源——外部中断 ?内部中断源——内部中断 (软中断)

二、中断的一般过程 以外部中断为例: ①中断请求:外设 CPU ②中断响应: CPU 外设 ?中断确认主程序①中断请求 ?断点保护 ?中断源识别②中断响应 ③中断处理:中断服务程序ISR③ ④中断返回:断点中断 ?断点恢复处理 ?返回 ④中断返回 三、实现中断的软硬件技术 1.中断请求信号的有效性 ⑴电平类中断请求信号: ?中断请求信号应保持至CPU发现; ?CPU响应后,应及时撤除中断请求信号。 ⑵边沿类中断请求信号: ?中断请求信号的锁存和撤消 2.中断响应的条件 可屏蔽外部中断: ?一条指令执行结束(CPU在每条指令的最后一个时钟周期检测中断请求)特殊指令:STI、IRET 前缀指令,如: REP MOVSB ?CPU允许中断(开中断); ?无更紧迫的事务,如:复位、DMA、更高级中断等。 3.中断源识别: ⑴、软件查询法 CPU ⑵、中断向量法:中断源中断向量码 ISR入口地址CS:IP

4.断点保护及恢复 断点信息——断点地址、断点状态 ?断点保护: PSW、CS、IP压栈(CPU硬件自动完成) 其它寄存器(AX、BX … )压栈(ISR完成) ?断点恢复: IP、CS、PSW弹栈(CPU硬件自动完成) 其它寄存器(AX、BX … )弹栈(ISR完成) 5、中断优先级 当系统中有多个中断源时,需要安排中断优先级。 中断优先级控制应解决2种情况: 1)不同优先级的中断源同时提出中断请求 2)CPU正在进行中断服务时,更高优先级的中断源提出中断请求 情况2)有两种处理方法: (不允许中断)(允许高优先级中断) ?中断优先级控制的实现 软件查询 优先级串行排队(链式)电路 硬件控制优先级并行排队(编码比较)电路 中断控制器 5.中断嵌套 当高优先级中断可以中断低优先级中断时会产生中断嵌套或称多级中断、多重中断。

中断体系结构

中断体系结构 ARM体系CPU有以下7种工作模式。 .用户模式(usr):ARM处理器正常的程序执行状态。 .快速中断模式(fiq):用于高速数据传输或通道处理。 .中断模式(irq):用于通用的中断处理。 .管理模式(svc):操作系统使用的保护模式。 .数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 .系统模式(sys):运行具有特权的操作系统任务。 .未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式。除用户模式外,其它6种工作模式都属于特权模式。大多数程序运行于用户模式,进入特权模式是为了处理中断、异常,或者访问被保护的系统资源。 ARM920T有31个通用的32位寄存器和6个程序状态寄存器。这37个寄存器分为7组,进入某个工作模式时就使用它那组的寄存器。有些寄存器,不同的工作模式下有自己的副本,当切换到另一个工作模式时,那个工作模式的寄存器副本将被使用:这些寄存器被称为备份寄存器。 在ARM状态下,每种工作模式都有16个通用寄存器和1个(或2个,这取决于工作模式)程序状态寄存器。 图中R0~R15可以直接访问,这些寄存器中除R15外都是通用寄存器,即它

们既可以用于保存数据也可以用于保存地址。另外,R13~R15稍有些特殊。R13又被称为栈指针寄存器,通常被用于保存栈指针。R14又被称为程序连接寄存器或连接寄存器,当执行BL子程序调用指令时,R14得到R15(程序计数器PC)的备份。而当发生中断或异常时,对应的R14_svc、R14_irq、R14_fiq、R14_abt 或R14_und中保存R15返回值。 快速中断模式有7个备份寄存器R8_fiq~R14_fiq,这使得进入快速中断模式执行很大部分程序时,甚至不需要保存任何寄存器(只要它们不改变R0~R7)。 每种工作模式除R0~R15共16个寄存器外,还有第17个寄存器CPSR,即“当前程序状态寄存器”。CPSR中一些位被用于标识各种状态,一些位被用于标识当前处于什么工作模式。 除CPSR外,还有快速中断模式、中断模式、管理模式、数据访问终止模式和未定义指令中止模式等5种工作模式和一个寄存器——SPSR,即“程序状态保存寄存器”。当切换进入这些工作模式时,在SPSR中保存前一个工作模式的CPSR 值,这样,当返回前一个工作模式时,可以将SPSR的值恢复到CPSR中。 综上所述,当一个异常发生时,将切换进入相应的工作模式(为表述方便,下文中将它称为异常模式),这时ARM920T CPU核将自动完成如下事情。 a.在异常工作模式的连接寄存器R14中保存前一个工作模式的下一条,即将执行的指令的地址。对于ARM状态,这个值是当前PC值加4或加8.

cortexm3处理器工作模式及中断过程

cortexm3处理器工作模式及中断过程 1. 工作模式线程模式(Thread mode):处理器复位或异常退出时为此模式。 处理模式(Handler mode):出现异常(包括中断)时进入此模式,此模式下所有代码为特权访问。2. 工作状态Thumb状态(正常执行指令状态)和调试状态 3. 代码限权特权访问:对处理器资源拥有完全访问限权;处理器复位后进入此访问模式;清零CONTROL[0]进入用户模式。 用户访问:禁止访问多数系统寄存器。只能通过进入异常(中断)来返回特权模式。4. M3寄存器 r0-r12:通用寄存器,其中r8-r12只能被32位指令访问。 r13(SP):堆栈指针;线程模式时可以在线程堆栈和主堆栈之间切换,但处理模式只使用主堆栈。两个堆栈同一时刻只有一个可见,进入、退出异常时自动切换堆栈。 r14(LR):链接寄存器,保存子程序或异常的返回

地址(要实现嵌套,必须入栈)。 r15(PC):程序计数器 xPSR:特殊用途的程序状态寄存器5. 异常 进入异常步骤: 1.处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。 2.读取向量表(如果是复位中断,更新SP值) 3.根据向量表更新PC值 4.加载新PC处的指令(2、3、4步与1步同时进行)5.更新LR为EXC_RETURN(EXC_RETURN表示退出异常后返回的模式及使用的堆栈)。退出异常步骤: 1. 根据EXC_RETURN指示的堆栈,弹出进入中断时被压栈的8个寄存器。 2. 从刚出栈的IPSR寄存器[8:0]位检测恢复到那个异常(此时为嵌套中断中),若为0则恢复到线程模式。 3. 根据EXC_RETURN,选择使用相应SP。 末尾连锁(Tail-chaining):当前正在执行中断,又有一个中断到来且这个中断优先级比正在执行的中断优先级低(如果有其他被压栈的低优先级中断则要比这些中断优先级高),这个中断暂时被挂起,等到当前中断执行完后不再执行堆栈操作,而直接进入挂起的中断。

中断程序写法

第三部分定时器中断培训(09.17) 关于定时器中断,我们简单介绍一下原理就可以了,因为具体介绍已经有很多资料都已经提供了。 80C51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1 构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式; TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0 (P3.4)和T1(P3.5)输入。定时计数器的原理: 当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为: T=1/(12×106)Hz×1/12=1μs 这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。 当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然

第7章 中断方式

第七章 中断技术 基本内容: 中断常用的概念如:中断、断点、断点保护、中断返回、中断服务程序、保 护现场;中断的用途;中断源及分类;中断的一般过程;中断源识别;中断优先权的确定。 基本要求:理解中断的概念、分类;掌握中断的处理过程,会编写中断服务程序;掌握 中断的优先权排队方法;了解中断嵌套的概念。 重点内容: 中断的一般过程;中断源识别;现场保护;中断向量表与中断类型号关系。 难点内容: 中断优先权的确定、现场保护。 第一节 中断的基础知识 一、 中断的概念 1. 什么是中断 所谓中断,是指处理器在执行正常程序过程中,当出现某些异常情况或某个外部设备请求时,处理器暂时中止正在执行的程序,转而去执行其特定的服务程序,并在执行完服务程序后返回原来被中止的程序处继续执行的过程。 中断最初用于解决高速CPU 与低速外设之间的速度矛盾。目前己经广泛地应用在分时操作、实时处理、人机交互、多机系统等方面。 2. 什么是断点 所谓断点,就是指响应中断时,主程序中当前指令下面的一条指令地址,包括代码段寄存器CS 和指令指针寄存器IP 的值。只有保存了断点,才能在中断处理子程序完成以后,正确返回到主程序继续执行。 3. 中断返回 (举例说明) 使CPU 返回到中断前的程序,并从断点处继续执行。 4. 中断服务程序 一般地,每一个中断源都有其相应的服务程序,即中断程序。当CPU 识别中断源后,就会取得其中断程序的入口地址,并转入该中断程序,进行相应的中断服务。中断服务是整个中断处理的核心。 5. 中断现场和中断保护 状态寄存器状态(硬件保存)、内部寄存器内容(程序保存) 原程序 中断请求 中断处理程序

中断方式

中断方式: 中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢? 举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于是慌慌张张的冲向水管,三下两下关了龙头,声音又传到耳边,“怎么干什么都是这么马虎?”。伸伸舌头,这件小事就这么过去了,我落寞的眼神又落在了水壶上。门外忽然又传来了铿锵有力的歌声,我最喜欢的古装剧要开演了,真想夺门而出,然而,听着水壶发出“咕嘟咕嘟”的声音,我清楚:除非等到水开,否则没有我享受人生的时候。 这个场景跟中断有什么关系呢? 如果说我专心致志等待水开是一个过程的话,那么叫声、电视里传出的音乐不都让这个过程“半中间发生阻隔、停顿或故障而断开”了吗?这不就是活生生的“中断”吗? 在这个场景中,我是唯一具有处理能力的主体,不管是烧水、关水龙头还是看电视,同一个时间点上我只能干一件事情。但是,在我专心致志干一件事情时,总有许多或紧迫或不紧迫的事情突然出现在面前,都需要去关注,有些还需要我停下手头的工作马上去处理。只有在处理完之后,方能回头完成先前的任务,“把一壶水彻底烧开!” 中断机制不仅赋予了我处理意外情况的能力,如果我能充分发挥这个机制的妙用,就可以“同时”完成多个任务了。回到烧水的例子,实际上,无论我在不在厨房,煤气灶总是会把水烧开的,我要做的,只不过是及时关掉煤气灶而已,为了这么一个一秒钟就能完成的动作,却让我死死地守候在厨房里,在10分钟的时间里不停地看壶嘴是不是冒蒸气,怎么说都不划算。我决定安下心来看电视。当然,在有生之年,我都不希望

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