浅谈51单片机定时器时钟如何产生(基于IAP5W4K58S4)

  近日复习51单片机相关知识,终于对其时钟系统有了一个基本的认识,在这里分享出来。

  首先看看51单片机的时钟从何而来

两种时钟来源
  由课本可知,51单片机可以有两种时钟来源,一是内部RC,二是外部输入(一般由晶振产生)。这里不过多介绍,姑且将它们统称为时钟源。

系统时钟来源
  时钟源产生的信号并不是直接供给单片机使用的,需要通过一个可编程时钟分频器分频,分频器输出时钟的称为系统时钟。

分频器配置
  由上图可知,分频器在默认情况下是不分频的,也就是说,系统时钟频率默认等于时钟源频率。

  有了系统时钟后,定时器时钟也就可以有了。将系统时钟再经过一道分频,即得到定时器时钟。以定时器0为例,通过配置辅助寄存器AUXR的最高位可配置定时器0的分频系数。

1:不分频
0:12分频(与传统8051一致)

  关于AUXR,请参考下图
AUXR
  由此,我们可以知道,在外部12M晶振作为时钟源的情况下,系统时钟默认为12M,定时器0时钟默认为1M。也就是说,定时器每隔1us加一,定时时间最多达到65535us。其余定时器同理可推。

  再说一说定时器初值的计算:通过刚才的例子可以计算出定时器时钟频率(假设是N)。这个时钟频率就是说在不管它的情况下,一秒钟可以计多少个数(可以计N个数)!那么我们就可以推算出在我们要定的时间内(记为t)可以计多少个数了(记为M,M=t/1*N),即计了M个数我们就可以知道过了t秒。然后用定时器最大计数值减去这个数就得到定时器的初值了。

例如:定时器时钟为1M(一秒计1M个数),要定时2ms(定时器计2000个数,2ms/1s*1M=2000),
那初值应该设置为(定时器0在16位定时器模式的情况下):65536-2000=63536
即:TH0=F8H,TL0=30H

  (图都是从课本上拍下来的,然而课本到我手上已经不知道是几手的了。。。(~ ̄(OO) ̄)ブ 笔记较乱,请酌情参考)

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值