51单片机——定时器

本文详细介绍了51单片机的两个16位定时器/计数器(T0和T1)的功能、工作流程,包括定时和计数两种模式,以及初值设置、溢出机制和编程步骤。文章还涉及了时钟周期、机器周期等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本介绍 

51单片机 内部共有 两个16位 可编程的 定时器/计数器,即定时器T0定时器T1

f5a8c38252a548aabffa84ad0e785a2c.png

 定时器:具有定时的功能,2个定时器/计数器

        双功能: 1.可以定时        2.可以计数

      注意:任何一个时刻使用,只能使用其中一种功能。

​​​​​​功能:启动定时器后,每个机器周期到来,初值寄存器自动加1,直到计满溢出。

前置知识:

1.时钟周期(振荡周期)

        时钟频率的倒数,单片机外接晶振的倒数。例如:12MHz——>1/12us。
        单片机中最基本、最小的时间单位。
        一个时钟周期仅完成一个最基本的动作。
        时钟脉冲是CPU基本工作脉冲,控制着CPU的工作节奏
        时钟频率越高,单片机工作速度越快
2.状态周期

        1状态周期 = 2时钟周期
3.机器周期

        单片机基本操作周期,一个操作周期完成一项基本操作,取指令、储存器读写
        1机器周期 = 6 状态周期 = 12 时钟周期

        例如:12MHz的一个机器周期是1us。
4.指令周期

        CPU执行一条指令的时间
        1指令周期 = 1~4 机器周期

工作流程

①启动

②机器周期

③初值寄存器

        TH0和TL0,TH0为高八位,TL0为低八位。初值均为00H

④自动加1

⑤溢出

        当高八位和低八位都计满

(二进制为 1   00000000   00000000时,==65536个机器周期,

即65535us=65.536ms)

初值的计算a6f73415d8254a979734385793a460e4.png

 可写为

TH0=0x3c;//高八位 0060
TL0=0xb0;//低八位 0176

 或者

TH0=(65536-50000)/256;//高八位取 商数 舍 余数
TL0=(65536-50000)%256;//低八位取 余数 舍 商数

 例程:定时器计时1s

//实现定时器定时1s
for(i=1;i<=20;i++)
{​
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
}//50ms×20=1s

编程实现步骤

①报备        ②置初值        ③启动        ④等待        ⑤重置初值        ⑥清溢出

未完待续……

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值