在C51中的定时器和计数器是同一个硬件电路支持的,通过寄存器配置不同,就可以将他当做定时器或者计数器使用。
确切的说,定时器和计数器的区别是他们背后的计数存储器加1的信号不同。当配置为定时器使用时,每经过1个机器周期,计数存储器的值就加1。而当配置为计数器时,每来一个负跳变信号(从高电平变成低电平称为负跳变),就加1,以此达到计数的目的
拆分
定时器和计数器的电路一样。
定时或者计数的本质就是让单片机某个部件数数。
当定时器用的时候,靠内部震荡电路数数。
当计数器用的时候,数外面的信号,读取针脚的数据。
定时器的本质:没经过一个机器周期,就加1:寄存器
什么是晶振
![](https://i-blog.csdnimg.cn/blog_migrate/a48ee243750383e66f6f2f2ece4de7f1.png)
晶振(晶体振荡器),又称数字电路的“”心脏“”,是各种电子产品里面不可少的频率元器件。数字电路的所有工作都离不开晶振,晶振电路设计的好坏,会影响整个系统的稳定性。
什么是时钟周期
时钟周期也称为振荡周期,定义为时钟频率的倒数。从上面的板来看,时钟周期为:11.0592Mhz的倒数(1/11.0592mhz)。这个时钟频率在哪里看,在圈起来的地方,截图不明显,实物板很容易看到。
![](https://i-blog.csdnimg.cn/blog_migrate/e4bb1cf0f85dbd01e1e585513339f59c.png)
时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周期就意味着更高的工作频率。
什么是机器周期
机器周期也称为cpu周期。在计算机中,为了方便管理,常把一条指令的执行过程划分为若干阶段(如取址、译码、执行等),每一阶段完成一个最基本的操作。完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期 由 若干个时钟周期 组成。
![](https://i-blog.csdnimg.cn/blog_migrate/fba63147c83f42e2338e4679d7c28378.png)
现在的问题是加 1 经过了多少时间?
当晶振频率是11.0952MHZ的时候。
11.0952MHZ = 11095.2KHZ = 11095200HZ
1个机器周期 = 12 x 时钟周期 = 12 x (1/时钟频率)秒 = 1.085微妙
12 / 11.0952(MHZ)秒 = 12 000 / 11095.2(KHZ)妙 = 12 000 000 / 11095200 (HZ) 秒 = 1.085微妙。