预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

51单片机中断原理5.1中断的概述采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。 “中断”与“查询”相比: 执行效率↑ 实时性↑2.中断源 中断源是指在计算机系统中可以向CPU发出中断请求的来源。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。3.中断优先级 中断优先级越高,则响应优先权就越高。当CPU正在执行中断服务程序时,又有中断优先级更高的中断申请产生,这时CPU就会暂停当前的中断服务转而处理高级中断申请,待高级中断处理程序完毕再返回原中断程序断点处继续执行,这一过程称为“中断嵌套”。4.中断响应的一般过程 (1)在每条指令结束后,系统都自动检测中断请求信号,如果有中断请求,且CPU处于开中断状态下,则响应中断。 (2)保护现场,在保护现场前,一般要关中断,以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 (3)中断服务,即为相应的中断源服务。 (4)恢复现场,用堆栈指令将保护在堆栈中的数据弹出来,在恢复现场前要关中断,以防止现场被破坏。在恢复现场后应及时开中断。 (5)返回,此时CPU将推入到堆栈的断点地址弹回到程序计数器,从而使CPU继续执行刚才被中断的程序。 5.2MCS-51中断系统5.2.1中断源中断标志(Flag) IE0:外部中断0中断标志 TF0:定时器/计数器0中断标志 IE1:外部中断1中断标志 TF1:定时器/计数器1中断标志 TI:串行口发送中断标志 RI:串行口接收中断标志1.定时器控制寄存器TCON的格式(88H)2.特殊功能寄存器SCON的格式(98H)5.2.2中断控制EX0:外部中断0允许位 ET0:定时器/计数器0中断允许位 EX1:外部中断1允许位 ET1:定时器/计数器1中断允许位 ES:串行口中断允许位 EA:中断总允许位2.中断优先级控制寄存器IP(0B8H)当两个以上的中断源同时提出申请时,CPU到底相应哪个中断呢? 中断响应遵循两条规则: (1)低优先级中断可以被高优先级中断所中断,反之不能; (2)一种中断(不论哪个优先级)一旦得到响应,与它同级的中断不能再中断它。表5.2同级内第二优先级次序例如,某软件中对寄存器IE、IP设置如下: MOVIE,#8FH MOVIP,#06H 则此时该系统中: ·CPU中断允许; ·允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请; ·允许中断源的中断优先次序为: 定时器/计数器0>外部中断1>外部中断0>定时器/计数器1。5.2.3中断响应 Theinterruptrequestflagsaresampledineachmachinecycle.Thesampledflagsarepolledduringthefollowingmachinecycle.Ifoneoftheflagswasinasetconditionintheprecedingcycle,thepollingcyclewillfinditandtheinterruptcontrollerwillcausetheCPUtobranchtothevectoraddressoftheappropriateserviceroutinebygeneratinganinternalLCALL.中断标志检测与响应过程5.2.3.1中断响应的阻断条件 在EA=1且相应的中断允许位也为1的情况下,检测到的最高级的中断请求将会得到相应。但此时如果发生下列三种情况中的任何一种,中断响应的过程将被阻断: (1)同级或高优先级的中断已在进行中; (2)当前的机器周期还不是正在执行指令的最后一个机器周期(换言之,正在执行的指令完成前,任何中断请求都得不到响应); (3)正在执行的是一条RETI或者访问特殊功能寄存器IE或IP的指令(换言之,在RETI或读写IE或IP之后,不会马上响应中断请求,而至少执行一条其它指令之后才会响应)。当上述阻断条件存在时,中断不能被相应,且丢弃查询结果。若阻断条件结束时,中断标志已经消失,则这个被拖延了的中断请求可能不会再得到响应。 在单一外部中断的系统里(即不考虑上述阻断条件中断的第一个条件),外部中断响应时间总是在3~8个机器周期之间。2.单片机一旦响应中断请求,由硬件完成以下功能:(1)根据响应的中断源的中断优先级,使相应的优先级状态触发器置1; (2)执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈; (3)清除相应的中断请求标志位(串行口中断请求标 志RI和TI除外); (4)把被响应的中断源所对应的中断服务程序的入口 地