一、定时器/计数器工作原理

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
![V%MQ]VEOKIR~L9{1S5}JVC.png
如计数器为8位,则最大计数值为11111111=256,若要计数100次,则设定初值X = 256 - 100 = 156

二、定时/计数器的方式寄存器TMOD和控制寄存器TCON

TMOD

BDGJR(7}))L%U}WM77%0%6T.png
![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

I5(S9O)Q5J23({)KPQ}JIP3.png
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(重点)

O3ELV(W__TF~L)I))EEL_]4.png

4、方式3

PYI){TQ9IO9(3Y{86]LK1RM.png

四、定时/计数器初始化编程及应用

MF3$O}Z~0}ENE2`ZLISRX8B.png
99_5C9C62}8P{W9ASRQ~F60.png

1、采用中断方式编程

KUPL%MNZ1}NJ_U9C@}D)%HH.png

2、采用查询方式编程

55GKJOGMQ4]GN7%GK7LS{_U.png
E{~ZZ3((B09~9N)Y$F@Z}VC.png
CRJ%GO{F%3JYLM10RTF`G$G.png
另一个例程:
5]_$T05QXUC9Q`ZSV4`]PXD.png
![K7[XC[HDE[IJE~N%MOG01J.png