这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 学习AI8051开发板例程:02AI8051定时器的功能调试(一)

共1条 1/1 1 跳转至

学习AI8051开发板例程:02AI8051定时器的功能调试(一)

高工
2025-11-06 15:36:47     打赏

目的:学习定时器0的外部中断功能;

现象:翻转板载的LED电平。

一:AI8051定时器知识分享:

Ai8051U 系列单片机内部设置了6个 24 位定时器/计数器(8 位预分频+16 位计数)。6 个 16 位定时器 TO、T1、T礱炭、T3、T4 和 T11 都具有计数方式和定时方式两种工作方式。对定时器/计数器 TO 和 T1,用它们在特殊功能寄存器 TMOD 中相对应的控制位 C/T 来选择 TO 或 T1 为定时器还是计数器。对定时器/计数器 T2,用特殊功能寄存器 AUXR 中的控制位 T2 C/T 来选择 T2 为定时器还是计数器。对定时器/计数器 T3,用特殊功能寄存器 T4T3M 中的控制位 T3 C/T 来选择 T3 为定时器还是计数器。对定时器计数器 T4,用特殊功能寄存器 T4T3M 中的控制位 T4 C/T 来选择 T4 为定时器还是计数器。对定时器计数器 T11,用特殊功能寄存器 T11CR 中的控制位 T11 C/T 来选择 T11 为定时器还是计数器。定时器计数器的核心部件是一个加法计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每 12 个时钟或者每1个时钟得到一个计数脉冲,计数值加 1;如果计数脉冲来自单片机外部引脚,则为计数方式,每来一个脉冲加 1。

当定时器/计数器 T0、T1 及 T2 工作在定时模式时,特殊功能寄存器 AUXR 中的 TOx12、T1x12 和T2x12 分别决定是系统时钟/12 还是系统时钟/1(不分频)后让 T0、T1 和 T2 进行计数。当定时器/计数器 T3 和 T4 工作在定时模式时,特殊功能寄存器 T4T3M 中的 T3x12 和 T4x12 分别决定是系统时钟/12还是系统时钟/1(不分频)后让 T3 和 T4 进行计数。当定时器/计数器 T11 工作在定时模式时,特殊功能寄存器 T11CR 中的 T11x12 决定是系统时钟/12 还是系统时钟/1(不分频)后让 T11 进行计数。当定时器/计数器工作在计数模式时,对外部脉冲计数不分频。

定时器/计数器0有4种工作模式: 模式 0(16 位自动重装载模式),模式1(16 位不可重装载模式)模式 2(8位自动重装模式),模式3(不可屏蔽中断的16 位自动重装载模式)。定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同。T1在模式3时无效,停止计数。定时器 T2 的工作模式固定为 16 位自动重装载模式。T2 可以当定时器使用,也可以当串口的波特率发生器和可编程时钟输出。定时器 3、定时器 4、定时器 11 与定时器 T2 一样,它们的工作模式固定为 16 位自动重装载模式。T3/T4可以当定时器使用,也可以当串口的波特率发生器和可编程时钟输出。定时器 11 的工作模式固定为 16位自动重装载模式。T11 可以当定时器使用,也可编程时钟输出。

1106-1.png

从图中可以看到,较之前8051的单片机,AI8051不仅仅增加的了定时器的数量,在性能方便也有很显著的提高。

二:使用定时器0实现计数功能。

首先查看一下定时器0的计数寄存器

1106-2.png

三:软件代码:

3.0 配置定时器0的引脚功能

1106-3.png

    P3PU = 0x30;            //P3.4,P3.5使能内部4.1K上拉电阻

可见,T0 使用P3.4引脚位置。

在程序初始化中,增加使能外部中断的功能,如下所示:

    TMOD = 0;
    T0_CT = 1;              //使能T0外部计数模式

3.1 定时器0初始化

    TMOD = 0;
    T0_CT = 1;              //使能T0外部计数模式
    T1_CT = 1;              //使能T1外部计数模式
    TL0 = 0xff;
    TH0 = 0xff;
    ET0 = 1;                //使能定时器中断T0
    T0CLKO = 0;             //T0不输出时钟
    EA = 1; //这里需要开启系统总中断

3.2 定时器0的中断处理:

void TM0_Isr() interrupt 1
{
    P43 = !P43;  //测试端口
}

这里为了方便演示,直接翻转板载的电平就可以了。

这里没有做外部中断的去抖处理,可以在其他的定时器内,做去抖处理,这样外部中断更加的稳定。

1106-4.jpg




关键词: AI8051     定时器     计数    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]