嵌入式学习网_振兴网【官网】
请选择 进入手机版 | 继续访问电脑版

嵌入式学习网_振兴网【官网】

 找回密码
 立即注册

QQ登录

只需一步,快速开始

51单片机计数器与定时器的区别

2016-7-4 19:54| 发布者: 振兴| 查看: 577| 评论: 0

摘要: 在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自 ...

在51单片机的学习过程中,我们经常会发现中断计数器/定时器串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。

  在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆,下面我将对这方面的内容结合自己的学习经验谈几点看法。

  计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。

  在定时器和计数器中都有一个溢出的概念,那什么是溢出了。我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断。

  在定时器计数器中,我们有个概念叫容量,就是最大计数量。

  • 方式0是2的13次方,

  • 方式1是2的16次方,

  • 方式2是2的8次方,

把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。

  在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。

  • 举例1,我如何才能使碗接到10滴水就溢出呢?我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。在定时计数器中,这90滴水就是我们所谓的初始值。

  • 举例2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢?我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。

  在这里计数初值有3个,假设:

  • 方式0:计数初值=8192(2的13次方)—100=8092。

  • 方式1:计数初值=65536(2的16次方)—100=65436。

  根据所得的初始值,再将其转换为16进制,就可以进行计数或者定时了。后面讲解定时器初值的计算方法。

点击左下角“阅读原文”可以获取更多电子设计知识。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。

公众号:micropoint8。嵌入式学习网振兴网:www.picmcu.com


玩转嵌入式


单片机|软件|硬件|嵌入式

投稿、合作、赞助,请邮件:

zhenxing2000@126.com


振兴网:www.picmcu.com

长按二维码
关注微互动


1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

最新评论

验证问答 换一个

发布主题 联系我们 官方QQ群
返回顶部