这里所说的中断控制是指提供给用户使用的中断控制手段。具体到80C51,中断控制的内容共有4项:中断允许控制、中断请求标志、中断优先控制和外中断触发方式控制。这些控制内容分布在4个控制寄存器:中断允许寄存器、定时器控制寄存器、串行控制寄存器和中断优先级寄存器。中断控制是通过硬件实现的,但需进行软件设置。
1.定时器控制寄存器TCON
定时器控制寄存器TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出中断标志和外部中断的中断标志。该寄存器的地址是88H,对应的位地址是88H~8FH。虽然该寄存器名称为定时器控制寄存器,但是多数位都是为中断控制而设置的。位定义及位地址见表5-2。
表5-2 定时器控制寄存器位定义及位地址
说明:
1)TF1(TCON.7):定时器1溢出标志位。定时器1启动计数后,从初值开始进行加1计数;当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。该标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。
2)TR1(TCON.6):定时器1启停控制位。
3)IT1(TCON.2):外部中断1触发方式选择位。
当IT1=0时,外部中断1为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对INT1(P3.3)引脚采样,若采到低电平,则认为有中断申请,硬件自动使IE1置1;若为高电平,认为无中断请求或中断请求已撤除,硬件自动使IE1清0。在电平触发方式中,CPU响应中断后硬件不能自动使IE1清0,也不能由软件使IE1清0,所以在中断返回前必须撤销INT1引脚上的低电平,否则将再次响应中断造成出错。
当IT1=1时,外部中断1为边沿触发方式。CPU在每个机器周期的S5P2期间采样INT1(P3.3)引脚。若在连续两个机器周期采样到先高电平后低电平,则认为有中断请求,硬件自动使IE1置1,此标志一直保持到CPU响应中断时才由硬件自动清0。在边沿触发方式下,为保证CPU在两个机器周期内检测到先高后低的负跳变,输入高低电平的持续时间至少要保持12个时钟周期。
4)IE1(TCON.3):外部中断1请求标志位。IE1=1表示外部中断1向CPU申请中断。当CPU响应外部中断1的中断请求时,由硬件自动使IE1清0(边沿触发方式)。
5)TF0(TCON.5):定时器0溢出标志位。其功能同TF1。
6)TR0(TCON.4):定时器0启、停控制位。其功能同TR1。
7)IE0(TCON.1):外部中断0请求标志位。其功能同IE1。
8)IT0(TCON.0):外部中断0触发方式选择位。其功能同IT1。
2.串行口控制寄存器SCON
SCON是一个用于串行数据通信控制的寄存器,其中只有98H和99H这两位与中断有关,已用黑体字表示出来。该寄存器的位定义及位地址见表5-3。
表5-3 串行口控制寄存器位定义及位地址
说明:
1)TI(SCON.1):串行发送中断请求标志。CPU将一个字节数据写入发送缓冲器SBUF后启动发送,每发送完一帧数据,硬件自动使TI置1。但CPU响应中断后,硬件并不能自动使TI清0,必须由软件使TI清0。(www.xing528.com)
2)RI(SCON.0):串行接收中断请求标志。在串行口允许接收时,每接收完一帧数据,硬件自动使RI置1。但CPU响应中断后,硬件并不能自动使RI清0,必须由软件使RI清0。
3.中断允许寄存器IE
该寄存器用于控制是否允许使用中断。中断允许寄存器地址为A8H,位地址为A8H~AFH。寄存器位定义及位地址见表5-4。
表5-4中断允许寄存器位定义及位地址
说明:
1)EA(IE.7):CPU中断总允许位。EA=1,CPU开放中断。每个中断源是被允许还是被禁止,分别由各中断源的中断允许位确定;EA=0,CPU屏蔽所有的中断要求,称为关中断。
2)ES(IE.4):串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。
3)ET1(IE.3):定时器1中断允许位。ET1=1,允许定时器1中断;ET1=0,禁止定时器1中断。
4)EX1(IE.2):外部中断1中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
5)ET0(IE.1):定时器0中断允许位。ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。
6)EX0(IE.0):外部中断0中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
4.中断优先级寄存器IP
各中断的优先级通过中断优先级控制寄存器IP设定。该寄存器地址为B8H,位地址为B8H~BFH,其位定义及位地址见表5-5。
表5-5 中断优先级寄存器位定义及位地址
说明:
1)PS(IP.4):串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。
2)PT1(IP.3):定时器1中断优先级控制位。PT1=1,定时器1为高优先级中断;PT1=0,定时器1为低优先级中断。
3)PX1(IP.2):外部中断1中断优先级控制位。PX1=1,外部中断1为高优先级中断;PX1=0,外部中断1为低优先级中断。
4)PT0(IP.1):定时器0中断优先级控制位。PT0=1,定时器T0为高优先级中断PT0=0,定时器0为低优先级中断。
5)PX0(IP.0):外部中断0中断优先级控制位。PX0=1,外部中断0为高优先级中断;PX0=0,外部中断0为低优先级中断。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。