51单片机的定时器扯淡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HopesunIce/article/details/78488152

        今天有同学问起来单片机定时器一些问题 索性写来吧  哈哈 写下来装个X  各位不要介意  希望可以让单片机新手更好的理解一下定时器吧   哈哈哈 

首先 来说一下几个几个概念性的东西 可不要小瞧这个小玩意    如果不知道这些基本的真的很难理解好定时器这个东西  好了 扯淡完毕  进入正题

重点介绍一下   我们经常听到的一些东西  比如 :  65536   1US   12MHZ   11.0592MHZ    (65536-N)/256   (65536-N)%256  增计数  减计数 大概就是这些玩意了   

 

好 第一个 首先来介绍 这个1US 到底怎么回事哈    这样直白的说点 1US就是单片机的一个机器周期  我印象中所谓的机器周期就是单片机执行一条单周期指令所花费的时间    那么 为什么一个机器周期是1US呢  这里我直接拿出来这个 公式 大家只需要知道存在这个规律就可以了 如果想详细了解一下的下 我最后会附上一个关于各个周期的详细介绍 有兴趣可以去看一下  

公式: 机器周期=6个状态周期=12个时钟周期(震荡周期)

这里有必要说一下时钟周期和你单片机晶振频率的关系哈   我说的再详细点哈  请问周期的单位是什么  是什么?  是时间啊  S  MS   US  那么频率的单位是什么  HZ啊   这里HZ和S对应  一次类推

告诉我高中学的周期和频率的关系是什么?

就是那个那个那个   : 频率的倒数是周期啊   即  时钟周期=1/晶振频率  T=1/f;

那么对于51单片机来说   我们假设他的晶振频率是12MHZ  那么: 时钟周期=(1/12 MHZ) (秒 S)=(1/12 000 000 HZ)(秒S)

 上面说过了  机器周期=12个时钟周期  所以:

机器周期=12*(1/12 000 000 )(秒S)=1/1 000 000(S)  算出us就是1us了  这就是1us的来源  那我们经常听到的11.0592MH又是怎回事呢  其实我们一般使用的51单片机中晶振频率都是11.0592MHZ的   至于为什么使用这个   这里不扯了  那你会发现大多数老师的课堂上喜欢拿12MHZ的说事   原因其实很简单啦   就是因为用12MHZ来计算机器周期的时候恰好是1us这个整数啦   就这么简单  没有别的原因啦 应该   那么现在你自己可以计算一下你自己现实中使用的板子 的机器周期是多少了吧   都说到这样了  应该能明白了吧  嘿嘿   好  继续下一个问题 

2:65536 

这个数值是我们新手在使用定时器的时候几乎无法避免的一个问题     我们都知道 51的定时器的其中一种计数方式是16位的  那么16位是个什么概念呢(其实这样理解不是很合适  但是没关系啦  )  其实就是16个二级制位  那么16和二进制位最大是多少?    最小是多少 ?

最大就是16和1啦 :  1111 1111 1111 1111

那么 也就是这个16位的计数器最大可以装到的值啦  根据二进制的规律  你把这个数看成一个等比数列  分别是   2^0*1    2^1*1........2^16*1  好吧 这样 根据那个等比数列求和就OK啦  就可以得到65535  哎呀 咋不是65536类 兄弟啊 这个自己去考虑吧  

那么最小就都是0啦  

3:   (65536-N)/256   (65536-N)%256 

我们在写定时器代码的时候 会经常看到  TH0=(65536-N)/256    TL0=(65536-N)%256 

这又是怎么回事  上面 说了这个计数器啊 是一个16位的  他是由两个八位的寄存器组成的比如8+8=16嘛   这两个寄存器是有高低之分的   其中一个呢 叫高八位 另一个就叫低八位  就是这样比如  11111111  11111111

  高八位       低八位

当定时器开始计数的时候  TH0(高八位)   和TL0(低八位)就开始计数了  那怎么计数呢  首先是低八位 从你装的那个初值 开始计数  比如你初值TL0=56;那么开始计数后TL0每过一个机器周期就加1  因为TL0是八位的嘛  所以最大可以加到255 当在加的时候 就会向高八位进位啦  就是进1啦  所以才有了    不行了 累了 不写了  拉倒 哈哈哈哈

以后有时间在完善吧 

最后 声明一下 :上文中很多术语说的不得当   有的纯粹为了好理解  



猜你喜欢

转载自blog.csdn.net/HopesunIce/article/details/78488152