定时TH1、计数TL1 的计算

定时器模式

通常在模式 1 下,定时器 1 是 16 位定时器(2的16次方=65536)(8位=256)。定时器的计时周期是由 TH1 和 TL1 的组合值决定的。初始值 为 65536 − ( T H 1 × 256 + T L 1 ) 65536 - (TH1 \times 256 + TL1) 65536−(TH1×256+TL1)。

设定 TH1 和 TL1 的步骤如下:

  1. 计算定时周期所需的计数值 N:
    • N = 时间间隔 × 时钟频率 / 12 N = 时间间隔 \times 时钟频率 / 12 N=时间间隔×时钟频率/12
    • 时钟频率通常是晶振频率的 1/12。例如,12MHz 晶振对应的时钟频率为 1MHz。

/

  1. 根据计数值 N,确定 TH1 和 TL1:
  • T H 1 = ⌊ 65536 − N 256 ⌋ TH1 = \left\lfloor\frac{65536 - N}{256}\right\rfloor TH1=⌊25665536−N⌋
  • T L 1 = ( 65536 − N ) m o d    256 TL1 = (65536 - N) \mod 256 TL1=(65536−N)mod256

举例说明

假设需要一个 1ms 的定时周期,并且使用 12MHz 的晶振,则时钟频率为 1MHz。

  1. 计算 N:

    • N = 1 × 1 0 − 3 × 1 × 1 0 6 / 12 = 83.333 N = 1 \times 10^{-3} \times 1 \times 10^6 / 12 = 83.333 N=1×10−3×1×106/12=83.333
  2. 计算 TH1 和 TL1:

    • N 取整为 83, 65536 − 83 = 65453 65536 - 83 = 65453 65536−83=65453
    • T H 1 = ⌊ 65453 256 ⌋ = 255 TH1 = \left\lfloor\frac{65453}{256}\right\rfloor = 255 TH1=⌊25665453⌋=255
    • T L 1 = 65453 m o d    256 = 173 TL1 = 65453 \mod 256 = 173 TL1=65453mod256=173

因此,TH1 = 0xFF,TL1 = 0xAD。

计数模式

在计数模式下,TH1 和 TL1 的值根据需要的计数值设定。计数模式下,计数器每接收到一个外部信号时会加 1。因此,TH1 和 TL1 的初始值可以直接设定为计数的起始值。

//

考试提示

在考试中,如果题目要求将计数改为计时或改变计数值,可以按照以下步骤进行:

  1. 确定计数或计时模式。
  2. 根据题目要求计算所需的计数值或时间间隔。
  3. 根据上述公式计算 TH1 和 TL1 的值。
  4. 将计算结果写入程序中。

附:

将十进制数转换为十六进制数,可以通过以下步骤完成:

十进制转换为十六进制

步骤 1:除以 16

将十进制数除以 16,得到商和余数。余数是十六进制数的最低位(最右边一位)。

步骤 2:重复除以 16

将商再除以 16,得到新的商和余数。新的余数是十六进制数的次低位。

步骤 3:继续直到商为 0

重复上述步骤,直到商为 0。最后一轮除法得到的余数是十六进制数的最高位。

步骤 4:将所有余数组合起来

从最后得到的余数开始,依次将所有余数组合起来,就得到了十六进制数。

示例

示例 1:将 255 转换为十六进制
  1. 255 除以 16,商为 15,余数为 15:

    • 商:15
    • 余数:15(对应的十六进制为 F)
  2. 15 再除以 16,商为 0,余数为 15:

    • 商:0
    • 余数:15(对应的十六进制为 F)

组合余数,从最后一个余数开始,我们得到十六进制数为 0xFF。

示例 2:将 173 转换为十六进制
  1. 173 除以 16,商为 10,余数为 13:

    • 商:10
    • 余数:13(对应的十六进制为 D)
  2. 10 再除以 16,商为 0,余数为 10:

    • 商:0
    • 余数:10(对应的十六进制为 A)

组合余数,从最后一个余数开始,我们得到十六进制数为 0xAD。

总结

  • 十进制 255 转换为十六进制为 0xFF
  • 十进制 173 转换为十六进制为 0xAD

这种转换方法可以用于任何十进制数转换为十六进制数。

相关推荐
SY师弟6 小时前
51单片机——交通指示灯控制器设计
c语言·单片机·嵌入式硬件·51单片机
昊昊昊昊昊明1 天前
十天学会嵌入式技术之51单片机—day-9
单片机·嵌入式硬件·51单片机
Camellia03111 天前
嵌入式学习--江协51单片机day5
嵌入式硬件·学习·51单片机
一支闲人1 天前
串口模块详细讲解
51单片机·入门教程·适用于新手小白
一支闲人2 天前
矩阵键盘模块
51单片机·入门教程·适用于新手小白
Camellia03113 天前
嵌入式学习--江协51单片机day2
嵌入式硬件·学习·51单片机
Star Curry4 天前
【读书笔记】《编码:隐匿在计算机软硬件背后的语言》01 逻辑与开关
stm32·单片机·嵌入式硬件·职场和发展·51单片机·学习方法
双叶8364 天前
(51单片机)LCD显示红外遥控相关数字(Delay延时函数)(LCD1602教程)(Int0和Timer0外部中断教程)(IR红外遥控模块教程)
c语言·数据库·c++·单片机·嵌入式硬件·mongodb·51单片机
Camellia03114 天前
嵌入式学习--江协51单片机day4
嵌入式硬件·学习·51单片机
weixin_460186134 天前
基于51单片机的自动洗衣机衣料材质proteus仿真
51单片机·proteus·材质