一、定时器/计数器工作原理
1、定时/计数器主要特性
1、MCS-51有2个16位可编程定时/计数器 T0/T1,MCS-52多一个
2、每个定时/计数器既可以对系统时钟计数实现定时,也可对外部信号计数实现计数
3、每个定时/计数器都有多种工作方式
4、每个定时/计数器,到时产生溢出
2、定时计数器T0、T1的结构
计数器 + 方式寄存器TMOD + 控制寄存器TCON
计数器(16位加法器):TH1、TL1;TH0、TL0
TMOD:设定T1、T0的工作方式
TCON:控制定时/计数器的启动、停止、溢出
![DPPQIIXRK}CNSKI)PGDT_T.png
3、定时、计数过程:
![IT]C3}AAEAJC{2_ZLABI%%Q.png](/uploads/projects/u21314038@lircqs/f8bcde03771e3a8e9d680f96cd208004.png)
![V%MQ]VEOKIR~L9{1S5}JVC.png
如计数器为8位,则最大计数值为11111111=256,若要计数100次,则设定初值X = 256 - 100 = 156
二、定时/计数器的方式寄存器TMOD和控制寄存器TCON
TMOD

![C8D)]G)5IX6G]2)X}[WPG1.png
(不用记,但需知道表示的功能的意思)
M1、M0:两位一起选择工作方式00 01 10 11
C/T:选择定时或计数功能:置1选计数,置0选定时
GATE:门控位
- GATE = 1,
INT0一巴 = 高电平,TR0 = 1 ——>T0启动
INT0一巴 = 高电平,TR1 = 1 ——>T1启动
- GATE = 0,T0,T1的启动不受外部中断请求信号控制
TR0 = 1 ——>T0启动
TR1 = 1 ——>T1启动
![ZNDP3~)[7U$4W3]DR_D{B6.png
TCON

TR1、TR0:启动位
TF1、TF0:溢出标志位(若该位为1,则中断控制器会不断向CPU发出中断请求)
三、定时/计数器的工作方式
1、方式0
13位定时/计数方式
最大计数值:2^13 = 8192
如计数值为1000,
则初值为8192 - 1000 = 7192 ,TH0 = 7192/256,TL0 = 7192%256
2、方式1(重点)
16位定时/计数方式,其余同方式0一样
最大计数值:2^16 = 65536
3、方式2(重点)
4、方式3
四、定时/计数器初始化编程及应用
1、采用中断方式编程
2、采用查询方式编程
![55GKJOGMQ4]GN7%GK7LS{_U.png](/uploads/projects/u21314038@lircqs/f80f1eeaa4905e949151bd4d8e5c2a52.png)


另一个例程:![5]_$T05QXUC9Q`ZSV4`]PXD.png](/uploads/projects/u21314038@lircqs/dc0f8cfb0d9cb71fe2a26e0521b97c07.png)

