PIC单片机16F84的内部硬件资源(六)
发布时间:2008/5/27 0:00:00 访问次数:513
pic单片机16f84具有实时处理功能,能对外界异常发生的事件由中断技术作及时处理。
当单片机的cpu正在处理某事件时,若外部发生了某一事件(如定时器溢出、引脚上电平变化),请求cpu迅速去处理,于是cpu就暂时中止当前的工作,转去处理所发生的事件。中断处理完该事件后,再回到原来被中止的地方,继续执行原来的工作,如图1所示。实现这种功能的部件称为中断系统。产生中断的请求源称为中断源。中断源向cpu提出的处理请求,称为中断请求或中断申请。cpu暂时中断自身的事务,转去处理事件的过程,称为cpu的中断响应过程。对事件的整个处理过程,称为中断服务(或中断处理)。处理完毕,再回到原来被中止的地方,称为中断返回。
pic16f84单片机芯片有4种中断源,其逻辑电路如图2所示。
9中断控制
中断主要由中断控制寄存器intcon(图3)来控制。intcon是一个可读/写寄存器,含有定时器tmro溢出、rb口的变化和外部int引脚中断等各种允许控制和标志位。
全局中断允许位gie(d7)置1,将开放所有未被屏蔽的中断,如将该位清零,将禁止所有的中断。在响应中断时,gie位将被清零,以禁止其它中断,返回的断点地址被压栈保护,接着把中断入口地址0004h装入程序计数器pc。在中断服务程序中,通过对中断标志位进行查询,确定中断标志位必须在重新开放中断之前用软件清零,以避免不断地中断申请而反复进入中断。
(1)int中断。rbo/int引脚上的外部中断由边沿触发,当intedg位(option寄存器第6位)被置1时,选用上升沿触发,如该位被清零,则由下降沿触发。当检测到引脚上有规定的有效边沿时,便把inte位(intcon的d4位)置1。在重新开放这个中断之前,必须在中断服务程序中对inte位清零。 (2)tmro中断。当定时器tmro的计数器计满溢出(即由ffh变成00h)时,硬件自动把toif(intcon的d2位)置1。其中断可以通过对toie(intcond的d5位)置1或清零来控制该中断是否开放。
(3)portb口引脚电平变化中断。在portb口的d7~d0引脚上一旦有电平变化,就会把rbif(intcon的d0位)置1。这个中断可以通过对rbie(intcon的d3位)置1或清零来控制该中断是否开放。
(4)中断的现场保护。在发生中断时,只有返回断点的地址被压栈保护。若用户还希望保护关键的寄存器(如w寄存器和status寄存器)。这需要由软件来实现。有关中断的现场保护,请参看本报第15期有关pic单片机指令识读中的实例。
pic单片机16f84具有实时处理功能,能对外界异常发生的事件由中断技术作及时处理。
当单片机的cpu正在处理某事件时,若外部发生了某一事件(如定时器溢出、引脚上电平变化),请求cpu迅速去处理,于是cpu就暂时中止当前的工作,转去处理所发生的事件。中断处理完该事件后,再回到原来被中止的地方,继续执行原来的工作,如图1所示。实现这种功能的部件称为中断系统。产生中断的请求源称为中断源。中断源向cpu提出的处理请求,称为中断请求或中断申请。cpu暂时中断自身的事务,转去处理事件的过程,称为cpu的中断响应过程。对事件的整个处理过程,称为中断服务(或中断处理)。处理完毕,再回到原来被中止的地方,称为中断返回。
pic16f84单片机芯片有4种中断源,其逻辑电路如图2所示。
9中断控制
中断主要由中断控制寄存器intcon(图3)来控制。intcon是一个可读/写寄存器,含有定时器tmro溢出、rb口的变化和外部int引脚中断等各种允许控制和标志位。
全局中断允许位gie(d7)置1,将开放所有未被屏蔽的中断,如将该位清零,将禁止所有的中断。在响应中断时,gie位将被清零,以禁止其它中断,返回的断点地址被压栈保护,接着把中断入口地址0004h装入程序计数器pc。在中断服务程序中,通过对中断标志位进行查询,确定中断标志位必须在重新开放中断之前用软件清零,以避免不断地中断申请而反复进入中断。
(1)int中断。rbo/int引脚上的外部中断由边沿触发,当intedg位(option寄存器第6位)被置1时,选用上升沿触发,如该位被清零,则由下降沿触发。当检测到引脚上有规定的有效边沿时,便把inte位(intcon的d4位)置1。在重新开放这个中断之前,必须在中断服务程序中对inte位清零。 (2)tmro中断。当定时器tmro的计数器计满溢出(即由ffh变成00h)时,硬件自动把toif(intcon的d2位)置1。其中断可以通过对toie(intcond的d5位)置1或清零来控制该中断是否开放。
(3)portb口引脚电平变化中断。在portb口的d7~d0引脚上一旦有电平变化,就会把rbif(intcon的d0位)置1。这个中断可以通过对rbie(intcon的d3位)置1或清零来控制该中断是否开放。
(4)中断的现场保护。在发生中断时,只有返回断点的地址被压栈保护。若用户还希望保护关键的寄存器(如w寄存器和status寄存器)。这需要由软件来实现。有关中断的现场保护,请参看本报第15期有关pic单片机指令识读中的实例。