大家好,今天给大家介绍,下方附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。
点击这里找小助理0元领取:
一、定时器的功能以及定时器的结构定时器的功能其实就是单片机的内部,通过系统时钟的每一个机器周期产生一个记数脉冲,即每一个机器周期计数器加一。
比如,这里我的实验板的晶振是12MHZ,1MHZ信号每个脉冲的持续时间为1us,如果定时器T0对1MHZ的信号进行计数,从0~65536us,当达到最大的65536us的时候,定时器计数达到最大值,会溢出,于是产生中断信号,向中断系统申请中断,中断系统接受中断请求,执行中断子程序。
定时器的结构如下图所示,主要包括
- 两个定时器/计数器。T0和T1,每个定时器/计数器都是由两个8位的计数器所构成的16位计数器。
- TCON 寄存器。TCON为控制寄存器,用来控制两个定时器/计数器的启动和停止。
- TMOD寄存器。TMOD为工作方式控制寄存器,用来设置定时器/计数器的工作方式。
TMOD为工作方式控制寄存器,用来设置定时器/计数器的工作方式。如下图所示。
通过配置TMOD寄存器来对定时器T0和T1的工作模式进行控制。
注意这里TMOD的地址为89H,不可位寻址。
TMOD的高四位用于T1,低四位用于T0。
其中主要各位的功能:
- C/-T,定时器/计数器的选择控制位。置0,为定时器模式,置1,为计数器模式。
- M1和M0,模式选择控制位,通过对两位进行赋值,可以选择定时器的4种模式。00,模式0,13位计数器。01,模式1,16位计数器。10,模式2,自动重装8位计数器,11,模式3。
- GATE,置1后,就可由TR0或TR1单独控制定时器。
TCON寄存器,地址为88H,可以字节寻址,也可位寻址。寄存器各位如下图所示。
其中各位的功能:
- TF1(TF0)。定时器T1(T0)溢出标志位。当T1(T0)溢出时,硬件自动使TF1(TF0)置1,并且向Cpu申请中断。当cpu响应中断,进入中断服务子程序后,TF1(TF0)由硬件自动清0,当然也可以用软件写代码清0。
- TR0(TR1)。定时器T1(T0)运行控制位,置1,定时器T1(T0)就开始运行,计数。
- 后面几个是外部中断控制位。