51单片机定时计数器原理
展开全部
其实就是计数器原理,所谓的定时器就是用计数器来实现的一个功能而已。
计数器的原理,很简单,就是给个方波信号,一个方波,就加1即可,最简单的都能用数字电子技术里的或门,与门,非门来实现的。专门做计数的芯片也是一大堆,这里我们就不讨论怎么用或门,非门,与门,做出一个计数器了吧。
那么怎么用计数器实现定时器的功能呢?其实很简单,只要你给计数器的方波是规律的就可以了啊,比如做一个一秒钟输出一个方波的电路,然后把这个方波给计数器,即可,那么这个计数器就是一个定时器了,假设计数器一开始是0,一个方波以后,计数器就变成了1,对吧,但是计数器的方波来源是稳定的,一秒钟就给一个方波,那么这个就是个1s的定时器了吧,我们可以通过计数器的数值,来确定时间了吧,这样就可以完成定时的功能了吧。
单片机也是通过这种手段来形成的,你可能就要问了,那我单片机不是没有方波发射的装置吗?对不起,单片机芯片内部自己内置了,所以你不需要自己做这个方波发生装置,那么单片机是用什么来形成方波的呢?答案是你外置的晶振,单片机是通过你外部的那个晶振来实现的,而且晶振也是你单片机能跑起来的关键,他是单片机的CPU等内部部件工作的时间标准,比如晶振12MHZ,就是这个晶振1秒钟,能有12M个方波形成懂吧,所以这个频率是很高的了,但是单片机一般不在这么高的频率上工作,所以CPU的时间单位,不是晶振的频率,一般是要进行降频处理的,也叫分频,像51单片机,很多都是12分频的,即外部晶振是12MHZ,内部CPU工作的频率只有1MHZ,内部的计数器一般也不能在那么高的频率下工作,所以也是分频的,你最需要了解的是计数器或定时器里的数值加1,对应的时间是多少,一般都是1ms这样的整数倍。
然后计数器呢?计数器就是用晶振分频后的方波来工作的,晶振工作稳定,频率稳定,那么定时器就稳定,而如果你不用定时器的时候呢?那么计数器的计数端,就和来自晶振的方波,切断,切换成对应的IO端口的线路即可,而外部的端口,他们的波形和频率都不确定,所以就不是定时器了,如果你在外部,加个稳定的方波装置,计数器也就是定时器了,只不过这个需要自己去实现,岂不是麻烦?所以一般都用单片机内部自带的,方便而已。
计数器的原理,很简单,就是给个方波信号,一个方波,就加1即可,最简单的都能用数字电子技术里的或门,与门,非门来实现的。专门做计数的芯片也是一大堆,这里我们就不讨论怎么用或门,非门,与门,做出一个计数器了吧。
那么怎么用计数器实现定时器的功能呢?其实很简单,只要你给计数器的方波是规律的就可以了啊,比如做一个一秒钟输出一个方波的电路,然后把这个方波给计数器,即可,那么这个计数器就是一个定时器了,假设计数器一开始是0,一个方波以后,计数器就变成了1,对吧,但是计数器的方波来源是稳定的,一秒钟就给一个方波,那么这个就是个1s的定时器了吧,我们可以通过计数器的数值,来确定时间了吧,这样就可以完成定时的功能了吧。
单片机也是通过这种手段来形成的,你可能就要问了,那我单片机不是没有方波发射的装置吗?对不起,单片机芯片内部自己内置了,所以你不需要自己做这个方波发生装置,那么单片机是用什么来形成方波的呢?答案是你外置的晶振,单片机是通过你外部的那个晶振来实现的,而且晶振也是你单片机能跑起来的关键,他是单片机的CPU等内部部件工作的时间标准,比如晶振12MHZ,就是这个晶振1秒钟,能有12M个方波形成懂吧,所以这个频率是很高的了,但是单片机一般不在这么高的频率上工作,所以CPU的时间单位,不是晶振的频率,一般是要进行降频处理的,也叫分频,像51单片机,很多都是12分频的,即外部晶振是12MHZ,内部CPU工作的频率只有1MHZ,内部的计数器一般也不能在那么高的频率下工作,所以也是分频的,你最需要了解的是计数器或定时器里的数值加1,对应的时间是多少,一般都是1ms这样的整数倍。
然后计数器呢?计数器就是用晶振分频后的方波来工作的,晶振工作稳定,频率稳定,那么定时器就稳定,而如果你不用定时器的时候呢?那么计数器的计数端,就和来自晶振的方波,切断,切换成对应的IO端口的线路即可,而外部的端口,他们的波形和频率都不确定,所以就不是定时器了,如果你在外部,加个稳定的方波装置,计数器也就是定时器了,只不过这个需要自己去实现,岂不是麻烦?所以一般都用单片机内部自带的,方便而已。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询