㈠ 单片机的定时器部件有哪两种功能
使用51单片机时经常用到一个元件,那就是单片机定时器。在很多定时系统中发挥着重要作用。单片机定时器有哪些作用?使用单片机时定时器是怎样工作的?怎样运行的?本文就由大神普及单片机定时器的相关知识,为大家讲解在系统中单片机定时器发挥着什么作用?
首先要为大家解释的一个问题是,单片机定时器其实跟我们平时常说的计数器,是同一个电子元件,只不过计数器记录的是51单片机外部情况,所接受的也是外部脉冲,而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件。单片机的晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲,晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒。
下面我们来看一下,一个单片机定时器的简单结构图,如下图所示:
单片机定时器的简单结构图
而无论是单片机定时器,还是计数器,他们在单片机的工作运行过程中都有定时或事件计数功能,因此常常会被应用于时间控制、程序延时、对外部时间计数和检测等工作范围内。而一旦了解了计数器/定时器的应用领域和使用情况,工程师就可以充分利用单片机定时器来完成一些对时间限制要求精准的程序的设定,例如信号检测或电气自动化设计,都是比较常用到51单片机计数器进行程序设计的领域。
㈡ 51单片机的定时器和计数器分别定时和计数的周期是多长时间,这个脉冲周期有规定吗
定时器/计数器本质上都是计数器,只不过数的东西不一样.
定时器/计数器做为定时器来用的时候,是数的单片机时钟的脉冲个数,也就是说,单片机的时钟做为定时器/计数器的时钟源,因为单片机的时钟一般比较固定,因此,我们就知道一个脉冲占多长时间,因为根据脉冲的个数,就能推算出时间,就能做定时器用.
比如:12MHz的传统51单片机,一个脉冲周期是1us,如果定时器数了10个脉冲周期就中断了,说明10us时间到了.
而作为计数器的时候,数的是来自引脚上的脉冲,也就是说,是引脚上的脉冲做为定时器/计数器的时钟源,如果这个脉冲是规律的,周期是固定的,那么,也可以实现定时,比如,如果引脚的脉冲是10KHz的,那么,一个脉冲周期是100us,如果定时器/计数器数了10个脉冲周期就中断,说明1ms时间到了.
但是,如果引脚上的脉冲频率不固定,时高时低,那么,就没办法根据脉冲个数算出时间来,此时,就只是单纯的计数功能.
总而言之,定时器/计数器本质都是对脉冲计数,只是作为定时器,数的是内部的脉冲,做为计数器,数的是外部的脉冲,如果脉冲固定,外部脉冲也可以用来定时.赞同0|评论
㈢ 单片机里的定时器与定时器中断是两个东西。
单片机里的定时器一般叫定时、计数器,既可以用作定时,又可以用作计数。
开启定时器后,定时器的数会随着你配置的寄存器的时间来增加,直到增加到溢出时,就会产生一个中断信号,这时,如果你开定时器中断了,就会产生定时器中断。
打个比方,定时器好比你的闹钟,而中断就好比你定的闹铃。你的闹钟开启后一直在走,走到你定的闹铃时间的时候,就相当于定时器到中断了,这时候,看你开没开闹铃,也就是开没开中断,如果开了,闹铃就响了,就相当于进中断了。
㈣ 单片机定时器与计数器的区别
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,两者的区别是什么呢?下面就跟着我一起来看看吧。
单片机计数器与定时器的区别
计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定时器是单片机内部在晶振的触发下产生的脉冲。当他们的脉冲间隔相同的时候,计数器和定时器就是一个概念。
在定时器和计数器中都有一个溢出的概念,那什么是溢出了。呵呵,我们可以从一个生活小常识得到答案,当一个碗放在水龙头下接水的时候,过了一会儿,碗的水满了,就发生溢出。同样的道理,假设水龙头的水是一滴滴的往碗里滴,那么总有一滴水是导致碗中的水溢出的。在碗中溢出的水就浪费了,但是在单片机的定时计数器中溢出将导致一次中断,至于什么是中断我们下次再讲,这里只是初步的提下概念,中断就是能够打断系统正常运行,而去运行中断服务程序的过程,当服务程序运行完以后又自动回到被打断的地方继续运行。
在定时器计数器中,我们有个概念叫容量,就是最大计数量。方式0是2的13次方,方式1是2的13次方,方式2是2的8次方,方式3是2的8次方。把水滴比喻成脉冲,那么导致碗中水溢出的最后一滴水的就是定时计数器的溢出的最后一个脉冲。
在各种单片机书本中,在介绍定时计数器时都讲到一个计数初值,那什么是计数初值呢?在这里我们还是假设水滴碗。假设第一百滴水能够使碗中的水溢出,我们就知道这个碗的容量是100。问题1,我如何才能使碗接到10滴水就溢出呢?呵呵,我可以想象,如果拿一个空碗去接水,那么还是得要100滴水才能溢出,但是如果我们拿一个已经装有水的碗拿去接,那就不用100滴了。到此我们可以算出,要使10滴水让碗中的水溢出,那么碗中就先要装90滴水。
在定时计数器中,这90滴水就是我们所谓的初始值。问题2,在一个车间我们如何利用单片机对100件产品进行计件,并进行自动包装呢?
我们可以利用计数器计数100,在中断中执行一个自动包装的动作就可以了。
在这里计数初值有3个,假设有方式0:计数初值=8912(2的13次方)—100=8812。方式1:计数初值=65536(2的16次方)—100=65436。方式0:计数初值=256(2的8次方)—100=156。
根据所得的初始值,再将其转换为16进制或者2进制,就可以进行计数或者定时了。当然要让程序完全的运行起来还需要相应的寄存器进行设置。这些可以从各种单片机教程中找到。
单片机中定时器与计数器的区别
定时器实际上也是计数器,只是计数的是固定周期的脉冲
定时/计数器很容易理解的啊
定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间,有定时功能
定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
单片机里的寄存器可以看成一个个电子开关,用来切换不同的功能、信号。
51里通过TMOD里的T/C 位切换计数信号的来源
当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数频率为1/12fosc,当晶振频率6MHZ时,计数频率为500KHz,每2us计数值加1;晶振12MHZ就是每1us加1 了。
当T/C工作在计数器是,计数脉冲来自外部脉冲输入管脚T0(P3.4)或T1(P3.5),当T0或T1脚上负跳变时计数值加1 ,识别管脚负跳变需要2个机器周期,即24个振荡周期。所以T0或T1脚输入的可计数的外部脉冲的最高频率为1/24fosc,当晶振12MHZ时,最高计数频率为500KHz,高于此频率将计数出错。
至于赋初值就是杯子原理了,由于51只能加计数,且只能在杯子刚刚满的那一刻发出中断,触发中断程序,所以我们就往杯子里先放好一定的豆子,再来相应数量的豆子就满了,然后中断程序就自动工作了。
注意:
定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
假设我们要定时一定时间(100个机器周期),我们就置初值为(溢出值-100)就行了,假设我们要计件100个,实际上也是置初值为(溢出值-100),然后将输入脉冲设为外部输入就可以了
所以说:定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。
在中断里置初值是为下一个循环作准备,没什么好说的,看需要定了。
由于定时计数器的值也可以随时读出来,所以我们也可以从0开始计数,从而计算一段时间或一定脉冲的数量哦,这是照样可以打开中断,中断时就说明已经又计数了(定时器溢出值)个脉冲哦,在中断里进行溢出处理,就可以计算出远远大于(定时器溢出值)的数字了
此时也要注意一点:51读数时除了T/C2的捕捉功能,直接读TH和TL可是不断变化的哦,具体的还是看书。当你理解了定时计数器后,我们甚至还可以将计数值置为(溢出值-1),从而实现自动单步(定时模式)或作为外部中断(计数模式)用哦,仔细想想吧,呵呵;-)
至于中断中的需要保护现场的原因,是为了防止不小心修改了别的程序的参数,从而影响别的程序的运行,所以要且只要保护中断程序自己动过的数据,将动过的那些存储器在退出中断时恢复到进入时的状态,就不会影响被中断的程序了。
汇编需要自己保存现场,反正程序就是自己编的嘛,一切尽在掌握中;
C的话编译器会自动进行覆盖分析,自动保存需要保存的变量,一般应用时尽可放心,当然,如果你很了解编译器做了什么,也可以嵌入汇编天马行空自由发挥啊,但新手可不建议这样哦,还是交给编译器吧。
其实这些可以说都是基础知识啊,如果不明白肯定是你的书看的不够仔细哦.
猜你喜欢
1. 单片机的硬件结构是什么
2. 10秒定时器电路设计
3. 单片机技术论文
4. 单片机的发声原理
5. 单片机开题报告范文
6. 电子实习报告单片机
7. 单片机实训报告范文3篇
㈤ 单片机定时器的内部结构由哪四部分组成
这个定时器的内部结构部分如下:
1、计数器:用于计数,每个时钟周期加1,计数值可以被读取和写入,通常是一个16位的寄存器。
2、预分频器:用于将外部时钟源的频率分频,以降低计数器的计数速度,从而实现更长的计时范围。通常是一个8位的寄存器。
3、比较器:用于将计数器的值与一个预设的比较值进行比较,当计数器的值与比较器的值相等时,就会产生一个中断或者触发一个事件。
4、控制逻辑:用于控制定时器的操作模式和计时范围,包括选择计时模式、使能定时器、启动/停止计数等。
㈥ 51单片机的定时器有几种工作模式
51单片机的定时器有两种工作模式,即定时器模式和计数器模式。
首先,让我们来了解一下定时器模式。在定时器模式下,定时器会根据预设的时间间隔进行计数,并在达到预设值时产生中断或输出特定信号。这个预设时间间隔可以通过编程设置定时器的初值和分频系数来调整。定时器模式通常用于需要定时控制的应用场景,如定时开关、定时采样等。
接下来是计数器模式。在计数器模式下,定时器会对外部输入信号进行计数,并在达到预设值时产生中断或输出特定信号。这个外部输入信号可以是来自外部设备的脉冲信号,也可以是单片机内部的其他信号。计数器模式通常用于需要计数控制的应用场景,如脉冲计数、频率测量等。
除了这两种基本模式外,51单片机的定时器还可以通过编程实现其他功能,如波形发生器、事件计数器等。通过灵活运用定时器的各种模式和功能,可以实现丰富的应用场景和控制需求。
综上所述,51单片机的定时器具有定时器模式和计数器模式两种工作模式,这些模式可以通过编程灵活配置,以满足不同的应用需求。在实际应用中,我们可以根据具体需求选择适当的模式,并通过编程实现所需的功能和控制逻辑。