51单片机——定时器

基本介绍 

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

编程实现步骤

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

未完待续……

 

 

 

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]中提到了使用定时器来定时扫描独立按键和数码管,以代替延时函数。定时器的好处是可以在主函数中的延时不影响按键检测和数码管扫描的情况下进行定时扫描。定时器会在溢出时执行中断程序,实现定时的扫描。 在引用\[2\]中,主程序利用定时器0,每隔2ms对Shuma_Loop函数进行一次调用,以实现动态数码管的显示。每2ms显示一位数码管。 而在引用\[3\]中,主程序利用定时器0,每隔20ms对Key_Loop函数进行一次调用,以实现对按键的检测。 综上所述,通过使用定时器,可以实现51单片机的秒表定时器功能。可以根据需要设置定时器的时间间隔,并在定时器中断中调用相应的函数来实现所需的功能。 #### 引用[.reference_title] - *1* [51——单片机秒表(定时器扫描独立按键和数码管)](https://blog.csdn.net/ssssshhbh/article/details/129229740)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [51单片机秒表(定时器扫描按键数码管)](https://blog.csdn.net/qq_42786221/article/details/123566767)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值