当前位置:易博PCB抄板工作室 >> 技术文档 >> 深圳电路板抄板单片机MCS-96系列中断优先级控制方法探讨

深圳电路板抄板单片机MCS-96系列中断优先级控制方法探讨

    MCS—96系列单片机的中断系统颇具特色,其中断优先级的控制极具灵活性,用户可采用软、硬件结合的方法随心所欲地安排各类中断源的优先级。
    MCS—96系列单片机中断
    优先级结构的特点
    MCS—96系列单片机中断系统的硬件优先级排队电路为各类中断源规定了优先级顺序。这种中断优先级的结构有如下特点。
    (1)硬件排队电路并不能保证各中断源的优先级。
    这是因为在某个中断源的中断请求被CPU响应后,INT-PENDING 中的相应位即被清零,这意味着正在被服务的中断源不能参加有新的中断请求后的优先权比较,倘未采取一定措施,就会造成级别高的中断服务被级别较低的中断申请所打断的后果。
    譬如外中断(优先级最高)和定时器溢出中断(优先级最低)同时产生,在系统已开放中断的情况下,外中断的申请将首先被CPU所响应,进入其中断服务程序后,定时器溢出的中断申请又被优先权编码电路加以比较,由于INT-PRNDING中对应外中断的位已被清零,这时参与优先级比较的仅有定时器溢出中断,因而外中断的服务过程被打断,CPU转向定时器溢出的中断服务程序,直到服务完毕后,才返回为外中断继续服务。
    不难看出,在多个中断源提出中断申请的情况下,事实上最先得到完整服务的将是级别最低的中断源,pcb抄板级别最高的中断服务反而要等到最后才可完成。这也意味着最高级别的中断源实质上变成了最低级别。
    (2)可采用软、硬件结合的方法实现特定的优先级别顺序。
    虽然如上所述,硬件排队电路不能保证按指定优先级的高低顺序实现中断嵌套,但可采取一定的软件措施来实现设计人员所预想的优先级排队顺序。
    3、实现预定的优先级排队
    顺序的软件措施
    为实现特定的中断优先级顺序,需在软件上采取相应的措施,下面分四种情况予以讨论。
    3.1 实现硬件规定的优先级顺序
    硬件电路规定了8种中断源的优先级顺序,即外中断的优先级最高,串行口中断次之,……,而定时器溢出中断的级别最低。实现硬件所规定的这种优先级有两种含义:一是在多个中断源提出中断申请时,CPU优先响应级别最高的请求;二是高级别的申请可打断低级别的服务过程,但反之不可,其具体做法如下:
    (1)首先在主程序中设置INT—MASK,执行指令LDB INT—MASK,#0FFH,使其内容为全1,以开放全部的中断,使任一中断源或多个中断源提出中断申请时,CPU全部予以响应。
    (2)在每一中断服务程序的开始便执行DI或PUSHF指令,以禁止所有的中断,电路板克隆而后将INT-MASK中优先级低于本次中断的所有位清零,而高于本次中断的所有位置1,再执行EI指令开放中断。如此做之后,在该中断服务程序执行的过程中,低级别的中断不可能实现中断嵌套而高级别的中断则可以。在中断服务程序的结尾处,应再次将INT-MASK置为FFH,以使CPU在中断返回后能再次响应任何中断。这样就保证了硬件所规定的优先权顺序。