技术文档

单片机定时器控制 《51单片机基础》:定时器

小编 2024-10-10 技术文档 23 0

《51单片机基础》:定时器

咱们今天就聊一聊那些年单片机关于定时器与中断方面的事儿,其实定时器实质上就是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是说当每来一个脉冲,计数器就会自动加1,如果当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出就会发出中断请求。

再讲讲中断吧,有不少单片机初学者对中断有些懵,不知道它的用法,讲个生活例子就是比如你在家里看电视,突然门铃响啦此时你的第一选择就是去开门,打断你做原来事情让你优先去做开门这件事,这就是所谓中断。

当你这件事情结束之后,你又可以继续去看电视。关于单片机中断优先级的问题,小伙伴一定要勤于动手,勤于动脑的查找资料。所以接下来写一个关于定时器与中断的实验,将数码管上电之后8位都显示6,然后定个时间就两秒后全显示2,因为一些原因只能给小伙伴们截两张图片,不过有兴趣的小伙伴可以验证代码的正确性,都这样说啦,代码都是作者亲自验证过的(哈哈哈),行,接下来直接给小伙伴们上图

主函数部分:

定时器主要代码:

实验现象:

哈哈,今天的实验就分享到这里,也希望小伙伴们能够喜欢、点赞。

「硬件小百科」单片机定时器计数器的方式控制字

与定时/计数有关两个特殊功能寄存器

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。

顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。

<TMOD结构>

从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。

<TCON结构>

从图2中我们能看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。而TF1(0)我们上节课已提到了,当计数溢出后TF1(0)就由0变为1。原来TF1(0)在这儿!那么TR0、TR1又是什么呢?看上节课的图。

计数脉冲要进入计数器还真不不难,有层层关要通过,最起码,就是TR0(1)要为1,开关才能合上,脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作,一切尽在自已的掌握中。

<单片机定时器/计数器结构>

定时/计数器的四种工作方式

工作方式0

当TMOD中的M1,M2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式。

工作方式1

工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,唯一的区别是工作方式1的计数器由TL0的8位和TH0的8位共同组成16位的计数器,其定时时间为:

t=(216-T0初值)×时钟周期×12

工作方式2

方式2为8位自动装入时间常数方式,方式0和方式1若用于循环重复定时/计数时(如产生连续脉冲信号),每次计数满后溢出时,寄存器TL0和TH0全部为0,所以第二次计数还得重新装入时间初值。这样不仅麻烦而且影响精度。方式2避免了上述缺陷它的定时时间为:

t=(28-T0初值)×时钟周期×12

工作方式3

方式3:特殊工作方式只适用于T0,除了是用8位寄存器TL0外,其功能和操作与方式0和方式1完全相同,但是,另一个计数器TH0只可以工作在内部定时器模式下。工作方式3为T0增加了一个8位的定时器。

定时器/计数器的定时/计数范围

工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。

工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。

工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是256次。

预置值计算:用最大计数量减去需要的计数次数即可。

例:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-12=8180。

以上是计数,明白了这个道理,定时也是一样。

以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!

关于云创硬见

云创硬见是国内最具特色的电子工程师社区,融合了行业资讯、社群互动、培训学习、活动交流、设计与制造分包等服务,以开放式硬件创新技术交流和培训服务为核心,连接了超过30万工程师和产业链上下游企业,聚焦电子行业的科技创新,聚合最值得关注的产业链资源, 致力于为百万工程师和创新创业型企业打造一站式公共设计与制造服务平台。

相关问答

单片机 定时/计数器和中断到底有什么用?

定时器用来计算时间,固定时间触发中断。计数器用来对引脚输入的信号下降沿进行计数。和中断相关,但不一定要开中断。可以单独用。定时器用来计算时间,固定...

单片机 在使用 定时器 时是用到了哪些引脚?一定是这些吗? - 懂得

单片机使用定时器时,不用到任何引脚,因为定时器就好比一个时钟,它被安装在单片机内部,在接收到信号之后,就开始运行,一般使用定时器,通过编程的方案...

单片机定时器 一直执行吗?

单片机定时器如果配置了自动重载,那是一直执行的。单片机定时器的原理就是给单片机定时器模块的计数单元赋一个初值,使能定时器后,计数器值开始在初值的基础...

单片机 定时计数器最大定时时间怎么算?

单片机定时计数器最大定时时间取决于所用时钟周期T和定时器位长,比如T=10mS,定时器位长8位(也就是数字最大设置为255),每个时钟到来时,定时计数器采用减1操...

单片机定时器 初始化什么意思?

单片机定时器初始化是多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。由此...

单片机 汇编语言的 定时器 如何定义和调用使用?

TMOD定时器/计数器模式控制寄存器写入模式TH0,TL0写入初值一般为中断调用要使能计时器0时间中断,还要使能中断有效这样开中断,就可以了TMOD定时器/计数...

单片机 在使用 定时器 时是用到了哪些引脚?一定是这些吗? - 小...

定时器如果是定时方式就不用引脚的,定时满了,自动产生中断,计数方式要用到T0,和T1,引脚是P3中两个引脚的第二功能,还有什么问题请尽管问单片机使用...

51 单片机 0.1ms 定时器 怎么设置?

在51单片机中,要设置一个0.1毫秒的定时器,您可以按照以下步骤进行:1.确定定时器模式:选择合适的定时器模式。在51单片机中,常用的定时器模式是定时器/计数...

单片机 通过什么 控制定时器 中断等片上资源?

单片机通过编程来控制定时器中断等片上资源。定时器中断是单片机常用的一种中断方式,通过设定定时器计数器的初始值、时钟源和计数模式等参数,可以实现定时中...

单片机 工作主频12MHz, 定时器 计数器T0工作方式1,计算定时10ms的初值是多少?

(2^16—计数初值)╳晶振周期╳12=定时时间(2^16—计数初值)╳1/(12╳10^6)╳12=10Ms=10*10^(-3)S计数初值=2^16—10^4=55536=D8F0HTH0=...

猜你喜欢