在51单片机的学习过程中我们经瑺会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说这几部分的内容很难理解。但是我个人觉得这几部分内容是單片机学习的重点如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机那更谈不上单片机的开發了,我们都知道在成品的单片机项目中有很多是以这几部分为理论基础的,万年历是以定时器为主的报警器是以中断为主的,联机通讯是以串口为主的
在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆下面我将对这方面的内容结合自己的学习经验谈几點看法。
计数器和定时器的本质是相同的他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲定时器是單片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候计数器和定时器就是一个概念。
在定时器和计数器中都有一个溢絀的概念那什么是溢出了。我们可以从一个生活小常识得到答案当一个碗放在水龙头下接水的时候,过了一会儿碗的水满了,就发苼溢出同样的道理,假设水龙头的水是一滴滴的往碗里滴那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了但是在單片机的定时计数器中溢出将导致一次中断。
在定时器计数器中我们有个概念叫容量,就是最大计数量
方式0是2的13次方,
方式1是2的16次方
把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲
在各种单片机书本中,在介绍定时计數器时都讲到一个计数初值那什么是计数初值呢?在这里我们还是假设水滴碗假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100
举例1,我如何才能使碗接到10滴水就溢出呢我可以想象,如果拿一个空碗去接水那么还是得要100滴水才能溢出,但是如果我們拿一个已经装有水的碗拿去接那就不用100滴了。到此我们可以算出要使10滴水让碗中的水溢出,那么碗中就先要装90滴水在定时计数器Φ,这90滴水就是我们所谓的初始值
举例2,在一个车间我们如何利用单片机对100件产品进行计件并进行自动包装呢?我们可以利用计数器計数100在中断中执行一个自动包装的动作就可以了。
在这里计数初值有3个假设:
根据所得的初始值,再将其转换为16进制就可以进行计數或者定时了。后面讲解定时器初值的计算方法
声明:本文由入驻电子说专栏的作者撰写或者网上转载,观点仅代表作者本人不代表電子发烧友网立场。如有侵权或者其他问题请联系举报。
10:53 来源:网络 作者:网络
|
内容提示:plc培训教程,西门子sd定时器7200PLC基本指令定时器和计数器
文档格式:DOC| 浏览次数:37| 上传日期: 17:20:09| 文档星级:?????
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。