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。

相关推荐
勿忘初心913 小时前
Android车机DIY开发之学习篇(七)NDK交叉工具构建
arm开发·单片机·嵌入式硬件·学习
漫无目的行走的月亮4 小时前
51单片机开发:定时器中断
单片机·嵌入式硬件·51单片机
promising-w15 小时前
单片机基础模块学习——AT24C02芯片
单片机
weixin_4612594115 小时前
TL494方案开关电源方案
单片机·嵌入式硬件
Zevalin爱灰灰18 小时前
FreeRTOS从入门到精通 第十二章(FreeRTOS消息队列)
stm32·单片机·嵌入式硬件·操作系统·freertos
Uitwaaien5420 小时前
51单片机——定时器时钟
单片机·嵌入式硬件·51单片机
honey ball1 天前
磁珠的选型以及变压器气隙问题
单片机·嵌入式硬件·机器人
放我去玩单片机2 天前
基于STM32的数字多重仪表教学
单片机·嵌入式硬件
2401_843785232 天前
STM32 GPIO配置 点亮LED灯
stm32·单片机·嵌入式硬件