首页 > 编程知识 正文

51单片机的定时器是加计数的(51单片机中的定时器在哪)

时间:2023-05-04 04:13:40 阅读:101021 作者:2392

从上面定时器/计数器的结构图可以看出,16位定时器/计数器由两个8位专用寄存器组成,即T0由TH0和TL0组成;T1由TH1和TL1组成。接入地址依次为8AH-8DH。每个寄存器都可以单独访问。这些寄存器用于存储定时或计数初始值。此外,它还有一个8位定时器模式寄存器TMOD和一个8位定时控制寄存器TCON。这些寄存器通过内部总线和控制逻辑电路连接。TMOD主要用于选择定时器的工作模式;TCON主要用于控制定时器的启动和停止。此外,TCON还可以存储T0和T1的溢出和中断标志。当定时器在计数模式下工作时,外部事件通过引脚T0 (P3.4)和T1(P3.5)输入。

计时器的原理:

1.当定时器/计数器在定时模式下工作时,

计数器的1+信号由振荡器的12分频信号产生,也就是说,每个机器周期,计数器递增1,直到计数器溢出。显然,定时器的计时时间与系统的振荡频率有关。由于一个机器周期等于12个振荡周期,计数频率fcount=1/12osc。如果晶体振荡器为12兆赫兹,计数周期为:

T=1/(12106)Hz1/12=1s

这是最短的计时周期。如果要延长计时时间,需要改变定时器的初始值,选择定时器的长度(如8位、13位、16位等)。)恰如其分。

2.当定时器/计数器处于计数模式时,

外部信号通过引脚T0和T1计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间,计数器采样引脚的输入电平为电平。如果一个机器周期的采样值为1,下一个机器周期的采样值为0,计数器将增加1。在随后的机器周期S3P1中,新的计数值被载入计数器。因此,检测从1到0的跳跃需要两个机器周期,因此外部事件的最高计数频率是振荡频率的1/24。例如,如果选择12兆赫兹的晶体振荡器,最高计数频率为0.5兆赫兹虽然对外部输入信号的占空比没有特殊要求,但为了确保给定电平在改变之前至少采样一次,外部计数脉冲的高电平和低电平都需要保持一个以上的机器周期。

当CPU使用软件为定时器设定一定的工作模式时,定时器会按照设定的工作模式独立运行,不再占用CPU的运行时间。除非定时器溢出,否则有可能中断CPU的当前操作。CPU也可以通过重置定时器的工作模式来改变定时器的运行。因此,定时器是单片机中一个高效灵活的部件。

综上所述,我们知道定时器/计数器是一个可编程组件,所以在定时器/计数器开始工作之前,CPU必须向定时器/计数器写入一些命令(称为控制字)。将控制字写入定时器/计数器的过程称为定时器/计数器初始化。在初始化过程中,应将工作模式控制字写入模式寄存器,将工作状态字(或相关位)写入控制寄存器,并分配计时/计数初始值。我们将在下面详细解释建议的控制字的格式和您的主要功能。

控制寄存器定时器/计数器T0和T1有两个控制寄存器——TMOD和TCON,用于设置每个定时器/计数器的工作模式,选择计时或计数功能,控制启动操作,并作为运行状态的标志等。其中,TCON寄存器的另外4位用于中断系统。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。