定时中断与LED MCU起航 QQ:2246080671
主要内容 1、定时器相关寄存器 2、定时中断实现LED闪烁
定时器相关寄存器
TCON 名称 B7 B6 B5 B4 B3 B2 B1 B0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 位名称 位功能 TF1 定时器/计数器T1溢出中断请求标志位。当T1溢出时,该位自动置1。单片机响应相应中断时,系统自动清零TF1,也可以程序清零。 TR1 启动定时器/计数器1启动位,TR=1启动计时,TR=0停止计时。 TF0 定时器/计数器T0溢出中断请求标志位。功能和TF1类似, TR0 启动定时器/计数器0启动位,功能和TR1类似。 IE1 外部中断1的中断请求标志位。当IE1=1的时候,表示外部中断1被触发,正在请求单片机处理中断事件。当单片机相应中断,处理中断事件时,该位由单片机自动清零。 IT1 外部中断1的触发方式选择位。当IT1=1时,为下降沿触发方式,也就是从高到低的跳变会触发外部中断1。当IT1=0时,为低电平触发,也就是单片机检测到该引脚电平为低时,会触发外部中断1。 IE0 外部中断0的中断请求标志位。功能和IE1类似。 IT0 外部中断0的触发方式选择位。功能和IE1类似。
TMOD 名称 B7 B6 B5 B4 B3 B2 B1 B0 TMOD GATE C/T M1 M0 位名称 位功能 GATE T1(0)的启动源选择位,GATE=1时,用外部中断引脚INT1(INT0)上的高电平来启动T1(T0);GATE=0时,用TCON里的TR1(TR0)来启动T1(T0)。 C/T 计数器模式和定时器模式选择位,C/T=1时,为计数器模式,C/T=0时,为定时器模式。C为counter的缩写,T为timer的缩写,这样方便理解。 M1,M0 工作方式选择位,具体方式看下表
TMOD M1 M0 工作方式 方式0,由TH1(TH0)的8位和TL1(TL0)的低5位组成一个13位定时器。 1 方式0,由TH1(TH0)的8位和TL1(TL0)的低5位组成一个13位定时器。 1 方式1,由TH1(TH0)的8位和TL1(TL0)的8位组成一个16位定时器。 方式2,TL1(TL0)溢出后,TH1(TH0)的数值自动填充到TL1(TL0)。 方式3,仅适用于T0,T0分成两个8位计数器,T1停止计数。
TH 与 TL 最后是TL0(TL1)与TH0(TH1),因为是16位定时 器/计数器,所以有两组专用的8位寄存器负责定时/计数的工 作。 这两组特殊功能寄存器与普通的无符号字符型变量,功 能几乎一样。唯一的区别在于,这两组特殊功能寄存器是定 时器/计数器专用的,当定时开启后,TL0(TL1)自动跟随 机器周期加一。当TL0(TL1)满了后,自动清零同时向TH0 (TH1)进一位,不需要手动操作。 而当TL0(TL1)和TH0(TH1)都满了以后,此时如 果定时中断和总中断都已经打开,那么就会发生溢出中断, 同时这两个寄存器清零。
定时中断实现LED闪烁 定时中断的配置过程如下: 1、设置工作方式; 2、开启全局中断与定时中断; 3、设置定时器初值 4、启动定时器。 任务要求:定时器0,工作于方式1,开启定时中断 每隔300ms,发光二极管状态翻转