51单片机(四)定时器

时钟控制寄存器 TCON(Timer Controller)

c 复制代码
sfr TL0     = 0x8A; // T0 计数器低8位
sfr TL1     = 0x8B; // T1 计数器低8位
sfr TH0     = 0x8C; // T0 计数器高8位
sfr TH1     = 0x8D; // T1 计数器高8位
sfr TCON    = 0x88;
/*------------------------------------------------
TCON Bit Registers
------------------------------------------------*/
sbit TR0  = 0x8C; // TR0 置1 T0工作, TR0 置0 T0停止
sbit TF0  = 0x8D; // T0 溢出中断请求标志
sbit TR1  = 0x8E; // TR1 置1 T1工作, TR1 置0 T1停止
sbit TF1  = 0x8F; // T1 溢出中断请求标志

/* TMOD */
sfr TMOD    = 0x89;
/*------------------------------------------------
TMOD Bit Values
------------------------------------------------*/
#define T0_M0_   0x01
#define T0_M1_   0x02
#define T0_CT_   0x04
#define T0_GATE_ 0x08
#define T1_M0_   0x10
#define T1_M1_   0x20
#define T1_CT_   0x40
#define T1_GATE_ 0x80

#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F

51单片机有4种工作方式

  1. M0M1 = 00 , 13位计数,

    由TL低5位与TH8位组成,TL第5位溢出向TH进位,TH溢出向TF置溢出标志,触发中断

  2. M0M1 = 10 , 16位计数

    TL作低8位,TH作高8位,

  3. M0M1 = 01, 8位自动重装

    TH记录初值,TL溢出后自动重置为TH记录的初值。

  4. M0M1 = 11, T0 分为两个独立的8位,T1停止计数

    TL0作为单独计数器,溢出标志位到TF0,TH0作为单独计数器,溢出标志位到TF1。

相关推荐
天空'之城3 小时前
单片机基础核心知识点汇总(三十五)
单片机·嵌入式硬件
secondyoung3 小时前
I2C通信协议详解
arm开发·驱动开发·stm32·单片机·嵌入式硬件·mcu·51单片机
anew___3 小时前
蜂鸣器播放音乐——让 Arduino 唱出旋律
c++·stm32·单片机·嵌入式硬件·c
jianqiang.xue5 小时前
ESP-IDF保姆级入门40|量产烧录与产线测试全解:批量烧录方案/校准流程/功能测试/不良分拣/产线追溯,掌握工业级量产交付全流程
单片机·物联网·esp32
幼儿园蛋小黑8 小时前
单片机数码管LED灯独立按键中断定时器综合实战
单片机·嵌入式硬件
SKH.10 小时前
单片机(1)
单片机·嵌入式硬件
llilian_1610 小时前
小切口解决大问题:时序校准场景下的标准时间间隔脉冲信号发生器应用方案
功能测试·单片机·嵌入式硬件·51单片机
三块石头10110 小时前
车载ADC避坑:为什么ADC采集值偏低?
经验分享·stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程
jianqiang.xue11 小时前
ESP-IDF保姆级入门39|固件安全与安全启动全解:签名校验/Flash加密/防回滚/OTP密钥/知识产权保护,掌握工业级固件安全防护体系
单片机·物联网·esp32
llilian_1611 小时前
时间统一系统 高精度时统设备选购避坑指南 授时系统
大数据·网络·人工智能·功能测试·单片机·嵌入式硬件·51单片机