首页 > 编程知识 正文

定时器输入捕获,TMOD用于设置定时器的

时间:2023-05-06 18:59:43 阅读:107221 作者:4590

计时器动作的流程可以是该顺序(以51为例,以计时器0方式发生50毫秒的定时) ) ) )。

1、TMOD的后4位用于设定计时器0,前4位用于设定计时器1,其中的M0、M1用于设定计时器以哪种方式动作,GATE一般不设定,C/T是计数模式和计时器模式

2、接下来要设定计时器的时间。 用计时器计时50毫秒。 按此方法th0=(65535-50000 )、th0=(65535-50000 ) 256; 因为这是计时器的初始值。 也就是说,计数脉冲根据该数向上递增,在达到65535后溢出,发生中断。 楼主自己先考虑一下,为什么要对256取整数呢? 我不知道,而且我;

3、在步骤3中打开中断。 使用IE寄存器。 通常,分别设定各位。 那样的话,外观会变好。 首先打开总中断EA=1。 所有中断都需要这个步骤。 接下来打开计时器0中断。 ET0=1;

4、此时,准备好了就开始启动计时器。 使用TCON寄存器,TR0=1,至今实现了50毫秒的计时器。

总而言之,TMOD=0X01; th0=(65535-5000 )/256; TL0=(65535-50000 ) 256; EA=1; ET0=1; TR0=1,不写该中断函数。 需要注意的是方式0、1、3不能自动重载,所以必须在中断函数中重新给TH0、TL0赋予初始值。 楼主说的SCON寄存器是串口用的。 如果使用计时器的话,还可以进行串行端口。 我希望你能帮助楼主

51单片机的定时/计数器的概念单片机中,脉冲计数和时间关系非常密切,每当输入一个脉冲时,计数器的值自动地加1,只要相邻的两个计数脉冲之间的时间间隔相等但是,虽然计数器记录了单片机外部发生的事情(接收的是外部脉冲),但定时器是单片机自身提供的非常稳定的计数器,该稳定的计数器是单片机自身提供的MCS-51单片机晶振在12分钟后为单片机提供稳定脉冲; 由于晶振频率非常准确,单片机计数脉冲之间的时间间隔也非常准确。

从3358www.Sina.com/1计数器输入的计数脉冲有两个源,一个是从系统时钟振荡器输出的脉冲被12分频; 一个是T0或T1端子输入的外部脉冲源。

当用作计时器时,计时器计数8051单片机芯片内振荡器输出自动地递增1,直到12分频脉冲数,即在每个机器周期中计时器T0/T1的寄存器值溢出因此,计时器的分辨率为时钟振荡频率的1/12

用作计数器时,通过引脚t0(p3.4 )或t0(p3.4 )对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳跃时,计数器的值自动增加1。 因为检测从1到0的下降沿需要两个机器循环,所以采样级别必须至少保持一个机器循环。 当晶振频率为12MHz时,最高计数频率为1/2MHz以下,也就是说计数脉冲的周期大于2微秒。 计数器最高频率一般为时钟振荡频率的1/24;

因此,不管计时器和计数器的操作模式如何,计时器T0和T1都不占用CPU的时间,只要计时器/计数器T0和T1不溢出,计时器T0和T1就可能发生CPU中断,中断处理程序可以执行。 也就是说,定时器/计数器是单片机中高效灵活工作的部件。

从上图可以看出,与定时器相关的寄存器主要有以下几种。 TMOD、TCON、TL0、TH0、TL1、TH1。 对这些寄存器进行说明

16位加法计数器:

在定时计数器中心,TL0,TH0,是定时计数器0的下8比特和上8比特; TL1、TH1是计时器计数器1下8位和上8位; 另外,高位8位和低位8位可以单独使用。 16位加法计数器主要用于设定定时计数器的初始值

51单片机的定时/计数器的工作原理

GATE :定时器操作开关控制位

GATE=1时,INT0或INT1引脚为高电平,且TCON的TR0或TR1控制位为1时,计时器/计数器0或1动作。

GATE=0时,只要将TR0或TR1控制位设定为1,计时器/计数器0或1就会动作。

C/T :定时器或计数器功能的选择位。 C/T=1为计数器,从外部端子T0或T1输入计数脉冲。 在C/T=0的情况下,由计时器,从内部的系统时钟提供计时动作脉冲。

M1 M0:T0、T1动作模式选择位

TCON定时器控制寄存器

TF1 :计时器T1溢出标志可以由程序查询并清除,TF1也是中断请求源,当CPU响应T1中断时,硬件将被清除。

TR1:T1充电计数控制位,如果是1,则充电T1计数(计时器)。

TF0 :计时器T0溢出标志可由程序询问和清除,TF0既是中断请求源,当CPU对T0中断作出响应时,硬件即被清除。

p>TR0:T0充许计数控制位,为1时充许T0计数(定时)。

IE1:外部中断1请示源(INT1,P3.3)标志。IE1=1,外部中断1正在向CPU请求中断,当CPU响应该中断时由硬件清“0”。

IT1:外部中断源1触发方式控制位。此位为1设置为底电平触发,为0设置为下降沿触发。

IE0:外部中断0请示源(INT0,P3.2)标志。IE0=1,外部中断1正在向CPU请求中断,当CPU响应该中断时由硬件清“0”。

IT0:外部中断源0触发方式控制位。此位为1设置为底电平触发,为0设置为下降沿触发。

 

51单片机定时器4种工作模式

工作模式0:

由TL0的低5位和TH0的全部8位共同构成一个13位的定时器/计数器,定时器/计数器启动后,定时或计数脉冲个数加到TL0上,从预先设置的初值(时间常数)开始累加,不断递增1,当 TL0计满后,向TH0进位,直到13位寄存器计满溢出,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。并且定时器/计数器硬件会自动地把13位的寄存器值清0,如果需要进一步定时/计数,需要使用相关指令重置时间常数,并把定时器/计数器的中断标记TF0置0。

工作模式1:最常用的定时器工作模式

模式1与模式0几乎完全相同,唯一的区别就是,模式1中的寄存器TH0和TL0共同构成的是一个16位定时器/计数器来参与操作,因此比模式0中的定时/计数范围更大

工作模式2: 工作方式2特别适合于用作较精确的脉冲信号发生器。

这种模式又称为自动再装入预置数模式。有时候,我们的定时/计数操作是需要多次重复定时/计数的,如果溢出时不做任何处理,那么,在第二轮定时/计数时就是从0开始定时/计数了,而这并不是我们想要的。所以,要保证每次溢出之后,再重新开始定时/计数的操作是我们想要的,那就要把预置数(时间常数)重新装入某个地方,而重新装入预置数的操作是硬件设备自动完成的,不需要人工干预,所以这种工作模式就叫自动再装入预置数方式。在工作模式2中,把自动重装入的预置数存放在定时器/计数器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0参与定时/计数操作。

这个工作模式常用于波特率发生器(串口通讯),T1工作在串口模式2;用于这种方式时,定时器就是为了提供一个时间基准;计数溢出之后,不需要做太多的事情,只做一件事就可以,就是重新装入预置数,再开始重新计数,而且中间不需要任何延时。

工作模式3:

方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数由于定时器/计数器T1没有工作模式3,如果把定时器/计数器T0设置为工作模式3,那么TL0和TH0将被分割成两个相互独立的8位定时器/计数器。

在这里介绍一下定时器初值的设定:

工作方式0:13位定时器/计数器工作模式,最多可计数2的13次方次,即:8192次

工作方式1:16位定时器/计数器工作模式,最多可计数2的16次方次,即:65536次

工作方式2:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次,

工作方式3:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次

 

 

 

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