【51单片机】如何【手搓】定时器寄存器配置【低8位TL0(low)】和【高8位TH0(high)】

前言

大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁

  • 本文是【【51单片机】从零开始手把手带你【查手册】配置定时器,并完成小项目(定时器&中断的应用)】博客的其中一环,感兴趣的老铁可以跳转传送门查看
  • 传送门

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • YY的《C++》专栏
  • YY的《C++11》专栏
  • YY的《Linux》专栏
  • YY的《数据结构》专栏
  • YY的《C语言基础》专栏
  • YY的《初学者易错点》专栏
  • YY的《小小知识点》专栏
  • YY的《单片机期末速过》专栏
  • YY的《C++期末速过》专栏
  • YY的《单片机》专栏
  • YY的《STM32》专栏
  • YY的《数据库》专栏
  • YY的《数据库原理》专栏

目录

    • 1.判断要配置的位
    • 2.手搓配置【低8位TL0(low)】和【高8位TH0(high)】

1.判断要配置的位

  • 根据下图,我们知道我们要 对TL0,TH0赋初值
  • TF在第三步配置TCON时已经赋0
  • TL0(LOW)低八位
  • TH0(HIGH)高八位 在这里插入图片描述

2.手搓配置【低8位TL0(low)】和【高8位TH0(high)】

  • 我们知道TL0 和TH0是一个16位寄存器,他会不断+1, 间隔是1微秒
  • 总共定时时间 65535微秒 1111 1111 1111 1111
  • 我们要求计时为1ms,64535离计数器溢出(65535)差1000,也就是当我们设初值为65535+1时,每过1ms,计数器就会溢出
  • 同时我们知道一个规律: 一个n进制m位数,/ n 2 n^2 n2 n 2 n^2 n2能够平分前面几位和后面几位
  • 1234->1234/100=12
  • 1234->1234%100=34
  • 综上所述:
  • 一个2进制16位数,/ 1 6 2 16^2 162得到前八位,% 1 6 2 16^2 162得到后八位
  • 故最终代码为:
TH0 = 63536/256;		//高八位
TL0 = 63536256;		//低八位

你可能感兴趣的:(YY滴《单片机系列》,YYの小小知识点,51单片机,mongodb,嵌入式硬件)