Uuuuu.222 2023-05-14 00:45 采纳率: 100%
浏览 102
已结题

关于#单片机#的问题:初值、TH1、TL1的计算

若晶振fosc=7.3728MHz,设置串口为方式1,设置波特率为9600bps,则需TH1=TL1=?

  • 写回答

1条回答 默认 最新

  • 红色荷包蛋 2023-05-14 01:05
    关注

    码字不易,有用望采纳 答案参考Chatgpt解答
    在设置串口为方式1时,波特率为9600bps,使用晶振频率fosc = 7.3728 MHz的情况下,可以通过以下步骤计算TH1和TL1的值:

    1. 计算SMOD值:
      根据串口工作模式1,当SM0 = 0,SM1 = 1时,SMOD = 0。

    2. 计算定时器1的重装值(Reload Value):
      使用以下公式计算定时器1的重装值:
      Reload Value = 256 - (fosc / (32 * 12 * BaudRate * (1 + SMOD)))

      其中,

      • fosc是晶振频率,即7.3728 MHz。
      • BaudRate是期望的波特率,即9600 bps。
      • SMOD是SM0和SM1的组合决定的串口模式修饰符。

      在本例中,SMOD = 0,将其代入计算公式:
      Reload Value = 256 - (7372800 / (32 * 12 * 9600 * (1 + 0)))

    3. 分解Reload Value:
      将Reload Value分解为高8位(TH1)和低8位(TL1)。

    因此,根据上述步骤计算得到的Reload Value,TH1和TL1的值为:

    TH1 = Reload Value的高8位
    TL1 = Reload Value的低8位

    请注意,上述计算结果是一个浮点数,您需要根据您的编程环境将其转换为适当的整数值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月5日
  • 已采纳回答 5月28日
  • 修改了问题 5月14日
  • 创建了问题 5月14日