154
第
8
章
STC15F2K60S2
单片机的定时
/
计数器
例题
例
8.1
用
T1
方式
0
实现定时,在
P1.0
引脚输出周期为
10mS
的方波。
解
:
根据题意,采用
T1
方式
0
进行定时,因此,
(
TMOD
)
=00H
。
因为方波周期是
10mS
,因此
T1
的定时时间应为
5mS
,每
5mS
时间到就对
P1.0
取反,
就可实现在
P1.0
引脚输出周期为
10mS
的方波。系统采用
12M
晶振,分频系数为
12
,即定
时脉钟周期为
1
μ
S
,则
T1
的初值为:
X = M
计数值
= 65536
5000 = = 60536 =EC78H
即:
TH1 = ECH
,
TL1 = 78H
。
(
1
)查询方式实现:
ORG
0000H
MOV
TMOD
,
#00H
;设
T1
为方式
0
定时模式
MOV
TH1
,
#0ECH
;置
5mS
定时的初值
MOV
TL1
,
#78H
SETB
TR1
;启动
T1
Check_TF1
:
JBC
TF1
,
Timer1_Overflow
;查询计数溢出
SJMP
Check_TF1
;未到
5mS
继续计数
Timer1_Overflow
:
CPL
P1.0
;对
P1.0
取反输出
SJMP
Check_TF1
;未到
1s
继续循环
END
(
2
)中断方式实现:
ORG
0000H
LJMP
MAIN
;上电复位后,转
MAIN
ORG
001BH
LJMP
Timer1_ISR
;
T1
中断响应后,转
Timer1_ISR
ORG
0100H
MAIN
:
MOV
TMOD
,
#00H
;设
T1
为方式
0
定时模式
MOV
TH1
,
#0ECH
;置
5mS
定时的初值
MOV
TL1
,
#78H
SETB
ET1