9.1.3 中断控制寄存器TCON
寄存器TCON的功能是在定时器溢出时设定标志位,并控制定时器的运行、停止和中断请求。寄存器TCON的单元地址为88H。中断控制寄存器TCON的组成,如图9.3所示,包含3个部分,TF1和TR1位用于控制T1,TF0和TR0位用于控制T0,其他的为中断控制。下面分别介绍各种控制位的含义。
图 9.3 控制寄存器TCON
❑TF1(D7):定时器/计数器T1的溢出标志位。当定时器/计数器T1产生溢出时,单片机将自动置TF1=1,并申请中断。此时,CPU响应中断,转向相应的中断服务程序,并自动置TF1=0。
❑TR1(D6):定时器/计数器T1的启/停控制位。当GATE为0时,TR1置位为1时T1开始计数,TR1复位为0时T1停止计数;当GATE为1时,TR1为1且INT1输入高电平时,T1开始计数。
❑TF0(D5):定时器/计数器T0的溢出标志位。当定时器/计数器T0产生溢出时,单片机将自动置TF0=1,并申请中断。此时,CPU响应中断,转向相应的中断服务程序,并自动置TF0=0。
❑TR0(D4):定时器/计数器T0的启/停控制位。当GATE为0时,TR0置位为1时T0开始计数,TR0复位为0时T0停止计数;当GATE为1时,TR0为1且INT0输入高电平时,T0开始计数。
❑IE1(D3):外部中断1请求标志位。当单片机INT1端口的中断信号有效的时候,单片机将自动置IE1=1请求中断。CPU响应中断请求,转向对应的中断服务程序,并自动置IE1=0。
❑IT1(D2):外部中断1的中断触发方式控制位。当IT1=0的时候,为低电平触发方式;当IT1=1的时候,为下降沿触发方式。
❑IE0(D1):外部中断0请求标志位。当单片机INT0端口的中断信号有效的时候,单片机将自动置IE0=1请求中断。CPU响应中断请求,转向对应的中断服务程序,并自动置IE0=0。
❑IT0(D0):外部中断0的中断触发方式控制位。当IT0=0的时候,为低电平触发方式;当IT0=1的时候,为下降沿触发方式。
提示TCON可支持位寻址,TMOD不支持位寻址。
寄存器TCON可以进行位寻址,位地址为88H~8FH。在KeilµVision3集成开发环境中,头文件reg51.h中包含了对特殊功能寄存器TCON的声明,示例如下。
sbit TF1=0x8F;//溢出标志位TF1
sbit TR1=0x8E;//启/停控制位TR1
sbit TF0=0x8D;//溢出标志位TF0
sbit TR0=0x8C;//启/停控制位TR0
sbit IE1=0x8B;//外部中断1请求标志位
sbit IT1=0x8A;//外部中断1的中断触发方式控制位
sbit IE0=0x89;//外部中断0请求标志位
sbit IT0=0x88;//外部中断0的中断触发方式控制位
注意在reg52.h头文件中,按以下方式定义TCON寄存器中的各位。
sbit TF1=TCON^7;//溢出标志位TF1
sbit TR1=TCON^6;//启/停控制位TR1
sbit TF0=TCON^5;//溢出标志位TF0
sbit TR0=TCON^4;//启/停控制位TR0
sbit IE1=TCON^3;//外部中断1请求标志位
sbit IT1=TCON^2;//外部中断1的中断触发方式控制位
sbit IE0=TCON^1;//外部中断0请求标志位
sbit IT0=TCON^0;//外部中断0的中断触发方式控制位
因此,在程序中加入该头文件后,便可以在C51程序中直接对这些位进行操作,示例如下。
TR1=1//启动定时器/计数器T1
该语句直接置位TR1,用于启动定时器/计数器T1。