单击此处编辑母版标题样式单片机的中断系统单击此处编辑母版标题样式内容一、中断的概念二、89C51中断系统结构及中断控制三、中断响应及中断处理过程四、中断应用单击此处编辑母版标题样式中断定义一、中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。单击此处编辑母版标题样式中断流程一、中断的概念4执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回单击此处编辑母版标题样式中断的几个概念一、中断的概念产生中断的请求源称为中断源中断源向CPU提出的处理请求称为中断请求对中断请求提供的整个处理过程称为中断服务CPU暂停自身的事务,转去处理事件的过程称为中断响应过程单击此处编辑母版标题样式中断的意义一、中断的概念I.可实现分时操作(CPU与多个外设并行工作)II.可实现实时处理(被控对象信息随机变化)III.可进行故障处理(及时处理突发事件)单击此处编辑母版标题样式89C51的结构二、89C51中断系统结构及中断控制单击此处编辑母版标题样式89C51中断源二、89C51中断系统结构及中断控制5个中断源:INT0--外部中断请求源0,中断请求标志IE0INT1--外部中断请求源1,中断请求标志IE1T0--定时器/计数器T0溢出中断请求,中断请求标志TF0T1--定时器/计数器T1溢出中断请求,中断请求标志TF1TXD/RXD--串行口中断请求,中断请求标志为TI或RI单击此处编辑母版标题样式89C51中断控制二、89C51中断系统结构及中断控制4个特殊功能寄存器:定时器控制寄存器TCON(用6位)串行口控制寄存器SCON(用2位)中断允许寄存器IE中断优先级寄存器IP单击此处编辑母版标题样式二、89C51中断系统结构及中断控制字节地址:88HTCONTF1TF0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H定时/计数器控制寄存器TCON89C51中断控制单击此处编辑母版标题样式11各控制位的含义1、TF1:定时器/计数器T1溢出中断请求标志位。当启动T1计数后,T1从初值开始加1计数,计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,硬件将自动对TF1清0。2、TF0:定时器/计数器T0溢出中断请求标志位。含义与TF1类同。TCONTF1TF0IE1IT1IE0IT089C51中断控制单击此处编辑母版标题样式12各控制位的含义3、IE1:外部中断1的中断请求标志。INT1(P3.3)。当检测到外部中断引脚1上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应中断请求时,由硬件使IE1清0。4、IE0:外部中断0的中断请求标志。INT0(P3.2)。其含义与IE1类同。TCONTF1TF0IE1IT1IE0IT089C51中断控制单击此处编辑母版标题样式135、IT1:外部中断1的中断触发方式控制位。IT1=0时,外部中断1程控为电平触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。若外部中断1请求为低电平,则使IE1置1;若为高电平,则使IE1清0。TCONTF1TF0IE1IT1IE0IT089C51中断控制单击此处编辑母版标题样式145、IT1:外部中断1的中断触发方式控制位。IT1=1时,外部中断1程控为边沿触发方式。CPU在每一个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求引脚为高电平,接着的下一个机器周期采样到为低电平,则使IE1置1。直到CPU响应该中断时,才由硬件使IE1清0。TCONTF1TF0IE1IT1IE0IT089C51中断控制单击此处编辑母版标题样式15各控制位的含义6、IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。TCONTF1TF0IE1IT1IE0IT089C51中断控制单击此处编辑母版标题样式串行口控制寄存器SCONSCONTIRI位地址99H98H字节地址:98H89C51中断控制二、89C51中断系统结构及中断控制单击此处编辑母版标题样式17SCON中控制位的含义1、TI:串行口发送中断请求标志。CPU将一个数据写入发送缓冲器SBUF时,就启动发送。每发送完一帧串行数据后,硬件置位TI。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。SCONTIRI89C51中断控制单击此处编辑母版标题样式18SCON中控制位的含义2、RI:串行口接收中断请求标志。在串行口允许接收时,每接收完一个串行帧,硬件置位RI。同样,CPU响应中断时不会清除RI,必须在中断服务程序中由软件对RI清0。SCONTIRI89C51中断控制单击此处编辑母版标题样式IEEAESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8HIE──中断允许寄存器字节地址:A8H89C51中断控制二、89C51中断系统结构及中断控制单击此处编辑母版标题样式EA:中断允许总控制位EA=1,CPU开放中断EA=0,CPU屏蔽所有的中断ES:串行中断允许位ES=1,允许串行中断ES=0,禁止串行中断ET1:T1的溢出中断允许位ET1=1,允许T1中断ET1=0,禁止T1中断IE──中断允许寄存器二、89C51中断系统结构及中断控制IEEAESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H单击此处编辑母版标题样式IE──中断允许寄存器EX1:INT1中断允许位EX1=1,允许INT1中断EX1=0,禁止INT1中断ET0:T0的溢出中断允许位ET0=1,允许T0中断ET0=0,禁止T0中断EX0:INT0中断允许位EX0=1,允许INT0中断EX0=0,禁止INT0中断二、89C51中断系统结构及中断控制IEEAESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H单击此处编辑母版标题样式22例:假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:(IE)=10001010B=8AH(a)用字节操作指令MOVIE,#8AH;或MOVA8H,#8AH;(b)用位操作指令SETBET0;定时器/计数器0允许中断SETBET1;定时器/计数器1允许中断SETBEA;CPU开中断IEEAESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H单击此处编辑母版标题样式IP──中断优先级寄存器字节地址:B8HIPPSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H89C51中断控制二、89C51中断系统结构及中断控制单击此处编辑母版标题样式PS:串行口中断优先级控制位PS=1,串行口中断定义为高优先级中断PS=0,串行口中断定义为低优先级中断PT1:定时器T1中断优先级控制位PT1=1,定时器T1定义为高优先级中断PT1=0,定时器T1定义为低优先级中断IP──中断优先级寄存器二、89C51中断系统结构及中断控制IPPSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H单击此处编辑母版标题样式PX1:外部中断1中断优先级控制位PX1=1,外部中断1定义为高优先级中断PX1=0,外部中断1定义为低优先级中断PT0:定时器T0中断优先级控制位PT0=1,定时器T0定义为高优先级中断PT0=0,定时器T0定义为低优先级中断PX0:外部中断0中断优先级控制位PX0=1,外部中断0定义为高优先级中断PX0=0,外部中断0定义为低优先级中断二、89C51中断系统结构及中断控制IP──中断优先级寄存器IPPSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H单击此处编辑母版标题样式中断源入口地址中断级别外部中断00003H最高最低T0溢出中断000BH外部中断10013HT1溢出中断001BH串行口中断0023H中断源优先级排列顺序89C51中断控制二、89C51中断系统结构及中断控制单击此处编辑母版标题样式27(1)按内部查询顺序排队•当数个中断源同时向CPU发出中断请求时,CPU根据设计者事先确定的中断源顺序号的次序,一次响应其中断请求。单击此处编辑母版标题样式28(2)二级中断嵌套返回CPU在执行主程序低级中断请求CPU执行低级中断服务程序高级中断请求CPU执行高级中断服务程序单击此处编辑母版标题样式29(2)实现中断嵌套当CPU正在处理一个中断请求时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂时中止执行对原来优先级较低的中断源的服务程序,保护当前断点,转去响应优先级更高的中断请求,并为它服务。待服务结束,再继续执行原来较低级的中断服务程序。该过程称为中断嵌套。该中断系统称为多级中断系统。单击此处编辑母版标题样式89C51中断响应三、中断响应及中断处理过程中断响应条件:有中断源发出中断请求中断总允许位EA=1,即CPU开中断申请中断的中断源的中断允许位为1无同级或更高级中断正在被服务当前的指令周期已经结束若现行指令为RETI或者是访问IE或IP指令,则该指令以及紧接着的另一条指令已执行行完单击此处编辑母版标题样式三、中断响应及中断处理过程响应中断后:1.先置位相应的优先级状态触发器。2.执行一个硬件子程序调用LCALL,当前PC值压入堆栈,保护断点。3.中断服务程序入口地址送入PC,清中断标志注意:串行口中断标志TI和RI必须软件清零;电平触发方式,IE0和IE1需在引脚INT0和INT1外加硬件清除。89C51中断响应单击此处编辑母版标题样式三、中断响应及中断处理过程中断响应时间:机器周期的S6期间,CPU对中断标志位采样阻断同级或低级中断将程序断点存入栈区中断矢量地址装入PC,转入对应的入口地址中断响应时间为3~8个机器周期89C51中断响应单击此处编辑母版标题样式三、中断响应及中断处理过程保护现场为外设服务恢复现场NKN+mK+1返回中断处理中断处理流程89C51中断响应单击此处编辑母版标题样式中断处理的过程→关中断→保护现场(工作寄存器、累加器、标志位)→开中断→中断服务→关中断→恢复现场→开中断单击此处编辑母版标题样式三、中断响应及中断处理过程编写中断服务程序注意事项:在中断矢量地址单元处放一条无条件转移指令(如LJMPXXXXH),使中断服务程序可灵活安排在64KB程序存储器的任何空间。中断服务程序中,应注意用软件保护现场,以免中断返回后丢失原寄存器、累加器中信息。PUSH与POP成对使用。若要在执行当前中断时禁止更高优先级中断,可先用软件关闭CPU中断或禁止某种中断源中断,在中断返回前再开放89C51中断响应单击此处编辑母版标题样式361、主程序的起始地址•MCS-51系列单片机复位后,(PC)=0000H•而0003H~002BH分别为各中断源的入口地址。•编程时应在0000H处写一条跳转指令(一般为长跳转指令),主程序是以跳转的目标地址作为起始地址开始编写,一般从003H开始。0000HLJMP00300030H主程序四、中断程序应用单击此处编辑母版标题样式37主程序的初始化内容•初始化:将用到的内部部件或扩展芯片进行初始工作状态设定。•单片机复位后,特殊功能寄存器IE、IP内容均为00H,所以应对IE、IP进行初始化编程,以开放中断,允许某些中断源中断和设置中断优先级等。•当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入堆栈进行保护,然后转入响应的中断服务程序入口处执行。单击此处编辑母版标题样式38中断服务程序的起始地址•中断系统对五个中断源分别规定了各自的入口地址,但这些入口地址相距很近(8个字节)。•如中断服务程序的指令代码少于8个字节,则可从规定的中