首页 理论教育 单片机中断系统控制|C语言版单片机控制技术

单片机中断系统控制|C语言版单片机控制技术

时间:2023-11-24 理论教育 版权反馈
【摘要】:51系列单片机的中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成。图6-351系列单片机中断系统结构图1.中断源单片机类型不同,中断源的数量也不同。单片机的外部中断源有两个,分别是外部中断和外部中断。单片机的各中断源在向CPU发出请求时,硬件系统会自动产生相应的中断请求标志,5个中断源共生成6个请求标志。AT89S51单片机的5个中断源均为可屏蔽中断。

单片机中断系统控制|C语言版单片机控制技术

51系列单片机(以AT89S51为例)的中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成。4个特殊功能寄存器分别是:定时控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE和中断优先级寄存器IP。在中断工作过程中,它们主要用于控制中断的开放和关闭、保存中断信息、设定中断优先级。硬件查询电路主要用于判别5个中断源的自然优先级别。中断系统结构图如图6-3所示。

图6-3 51系列单片机中断系统结构图

1.中断源

单片机类型不同,中断源的数量也不同。51系列单片机的中断源有五个,三个是内部中断源,两个是外部中断源。

(1)外部中断源。

通常外部中断是指外部设备(如打印机、键盘、外部故障等)引起的中断。单片机的外部中断源有两个,分别是外部中断和外部中断

·:外部中断0请求,由P3.2脚输入。通过IT0位来决定是低电平有效还是下跳变有效。一旦输入信号有效,硬件自动将外部中断0请求标志IE0置“1”,并向CPU申请中断。

·:外部中断1请求,由P3.3脚输入。通过IT1位来决定是低电平有效还是下跳变有效。一旦输入信号有效,硬件自动将外部中断1请求标志IE1置“1”,并向CPU申请中断。

(2)内部中断源。

由单片机内部的功能单元定时器或串行口)所引起的中断被称为内部中断。单片机的内部中断源有3个,分别是定时器0(T0)中断、定时器1(T1)中断和串行口中断。

·T0中断:由定时器T0定时或计数溢出引起。在定时器T0溢出时硬件自动将TF0溢出标志置“1”,并向中断系统提出中断请求。

·T1中断:由定时器T1定时或计数溢出引起。在定时器T1溢出时硬件自动将TF1溢出标志置“1”,并向中断系统提出中断请求。

·串行口中断:为接收或发送串行数据而设置。串行口发送一帧数据,便由硬件自动将发送请求标志TI置“1”,向CPU申请中断;串行口接收一帧数据,便由硬件自动将接收请求标志RI置“1”,向CPU申请中断。

2.中断系统控制

(1)中断标志类寄存器:TCON寄存器与SCON寄存器。单片机的各中断源在向CPU发出请求时,硬件系统会自动产生相应的中断请求标志,5个中断源共生成6个请求标志。其中,外部中断源、定时/计数器的中断请求标志位分布在TCON中,串口中断标志位分布在SCON中。

①定时控制寄存器TCON(88H):可位寻址。

格式如下:

·IT0:为外部中断0的中断触发标志位,由软件设置,以控制外部中断的触发类型。IT0=1,边沿触发方式,即测到P3.2引脚上有“1”→“0”跳变才有效;IT0=0,电平触发方式,在P3.2引脚上有“0”电平就有效。

·IT1:为外部中断1的中断触发标志位,与IT0的作用相同。

·IE0:外部中断0的请求标志,当测到P3.2引脚上中断请求信号有效时,由内部硬件置位IE0,请求中断,中断响应后,该位被硬件自动清除。

·IE1:外部中断1的请求标志,功能同IE0。

注意:为保证CPU检测到有效信号,对于低电平触发的外部中断,“0”电平至少应保持1个机器周期;对于外部边沿触发中断,“0”“1”电平至少各保持1个机器周期。

·TF0:定时器T0溢出中断标志。

·TF1:定时器T1溢出中断标志。

·TR0与TR1:见定时器部分。

②串行控制寄存器SCON(98H):可位寻址。

串行口控制寄存器SCON的低2位TI和RI保存串行口的两个中断请求标志,SCON格式如下:

(www.xing528.com)

·TI:串行口发送中断标志。串行口每发送完一帧数据,便由硬件置TI=1,向CPU申请中断。当向串行口的数据缓冲器SBUF写入一个数据后,立刻启动发送器继续发送。CPU响应中断后,不会由硬件自动对TI清“0”,必须在中断服务程序中对其清“0”。

·RI:串行口接收中断标志。当串行口接收器允许接收时,每收到一帧数据,便由硬件置RI=1,向CPU申请中断。CPU响应中断后,也必须在中断服务程序中对其清“0”。

SCON的其他各位的功能见串行通信部分。

(2)中断允许寄存器IE(A8H):可位寻址。

计算机中断系统有两种不同类型的中断:一类为非屏蔽中断,另一类为可屏蔽中断。对非屏蔽中断,用户不能用软件的方法加以进制,一旦有中断申请,CPU必须响应。对于可屏蔽中断,用户可通过软件的方法来控制是否允许某个中断源的中断,允许中断又被称为中断开放,不允许中断又被称为中断屏蔽。AT89S51单片机的5个中断源均为可屏蔽中断。这些中断的开放与屏蔽是由特殊功能寄存器IE控制的,IE的控制分为两级,类似于开关,其中第一级为一个总开关,第二级为五个分开关。

IE格式如下:

·EA:中断总控制位。EA=1,CPU开放中断;EA=0,CPU禁止所有中断。

·ES:串行口中断控制位。ES=1,允许串行口中断;ES=0,屏蔽串行口中断。

·ET1:定时/计数器T1中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断。

·EX1:外中断1中断控制位。EX1=1,允许外中断1中断;EX1=0,禁止外中断1中断。

·ET0:定时/计数器T0中断控制位。ET1=1,允许T0中断;ET1=0,禁止T0中断。

·EX0:外中断0中断控制位。EX1=1,允许外中断0中断;EX1=0,禁止外中断0中断。

(3)中断优先级寄存器IP(B8H):可位寻址。

CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。为此,51单片机设有两个中断优先级,每个中断源都可以通过编程确定为高优先级中断或低优先级中断,由IP控制。IP格式如下:

若某位置“1”,则对应的中断源为高优先级;反之,为低优先级。当系统复位后,IP低5位全部清“0”,所有中断源均设定为低优先级中断。

·PS:串行口中断优先级控制位。

·PT1:定时/计数器1中断优先级控制位。

·PX1:外部中断源1中断优先级控制位。

·PT0:定时/计数器0中断优先级控制位。

·PX0:外部中断源0中断优先级控制位。

中断优先级遵守如下规则:

✧不同级的中断源同时申请中断时:先高后低。

✧处理低级中断时接收到高级中断时:停低转高。

✧处理高级中断时收到低级中断:高不睬低。

✧同级中断源同时申请中断时,CPU通过内部硬件查询电路,按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成,排列如下:

(最低)串行口中断→T1中断→→T0中断→(最高)

总之,在实际使用时,5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈