单片机怎样管理中断?怎样开放和禁止中断?怎样设置优先级?
对于MCS-51而言: 假定优先级 INT_X > INT_Y 1) 若两者同时申请中断,则CPU优先处理INT_Y中断; 此时INT_X暂时被挂起,直至INT_Y中断服务程式执行完毕, INT_X才得以响应; 2) 若INT_Y中断服务程式正在执行过程中,LSI产生INT_X中断请求; 则CPU将如同1)一样处理之; 3) 若INT_X中断服务程式正在执行过程中,LSI产生INT_Y中断强求; 并且,此时总中断及INT_Y中断未被禁止; 那么CPU将立即暂停对INT_X的处理,转而执行INT_Y中断服务程 式(即产生中断嵌套); 待INT_Y处理完毕后,CPU才随之转入未完成的INT_X中断函数,继续 运行。
(1)由中断源提出中断,再用中断控制端决定是否中断,再用设置好的中断优先级的顺序响应中断。同一优先级的中断按:外部中断0,定时中断0,外部中断1,定时中断1,串行中断昀顺序响应中断。中断后的结果是:脉冲触发,IEl(0)被清0。电平触发,IEl(0)不被清0,要用软件清0。(2)它由中断允许寄存器IE控制,如开放中断EA必须为1,再使要求中断的中断源的中断允许位为1,要禁止中断,EA-O即可。(3)由IP控制,1为高级,0为低级,PS为串行中断优先级,PTl(0)为定时中断1(0)优先级,PXl(0)外部中断1(0)优先级,想使哪个中断源为优先级,就置哪个优先设定位为1