单片机课件—定时计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工 程 技
TFx标志位可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零;但在
术
查询方式时必须软件清零。
学 院
TRx: Timer0/1运行控制位。 =1 启动计数; =0 停止计数
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器T0/T1 中断申请过程
第五章 MCS-51系列单片机硬件资源的应用
成
都
理
工 大
单片机的定时/计数器
学
工
程
技
术
学
院
第五章 MCS-51系列单片机硬件资源的应用
成 都 理
2个16位定时器/计数器
定时器:对片内机器时钟(周期方波)进行计数
工
计数器:对Tx引脚输入的脉冲进行计数
大
学
工
与Timer工作有关的特殊功能寄存器:
程
TCON 和 TMOD
理
工
大
振荡器 12 C/T=0
学
TLx THx
工 程
Tx端
C/T=1
(8位) (8位) 控制 =1
技 TRx位 术 GATE位 学 INTx端 院
开关接通
&
≥1 与门 或门
申请 TFx 中断
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
工作方式1 的编程要点:
成 都
THx/TLx赋初值:THx赋高8位,TLx赋低8位
成
都 理 工
定时/计数器可按片内机器周期定时,也可对由 T0/T1引脚输入一个负脉冲进行加法计数
大
学 在已经开放T0/T1中断允许且已被启动的前提下:
工
程 T0/T1加满溢出时 TF0/TF1标志位自动置“1”
技 术 学
检测到TCON中TF0/TF1变“1”后,将产生指令: LCALL 000BH/LCALL 001BH 执行中断服务程序,
大 0 0:13位 Timer——用它无益,不要记它!
学 0 1:16位 Timer——经常用到
工 1 0:可自动重装的 8位 Timer——经常用到
程 1 1:T0 分为2个8位 Timer;T1 此时不工作
技 术 学
——因为没有带来甚麽好处,几乎无用 C/T :计数器/定时器选择位
院 = 1 外部事件计数器。对Tx引脚的负脉冲计数;
MHz。
理 解:1、计算计数初值X:
工 大
由于晶振为12 MHz,所以机器周期为1 s。
学 所以:
工 程
计数初值=65536-10000=55536=D8F0H
技 即应将D8H送入TH0中,F0H送入TL0中
术 学
2、求T0的方式控制字TMOD:
院
M1M0=01,GATE=0,C/T=0,可取方式控制
术 断;
学 院
•
启停位TRX的设置。
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
成
都 计数初值的确定:
理 工
当为计数方式时:
大 方式0下,计数值范围为1--8192;
学 工 程
方式1下,计数值范围 为1--65536; 方式2下,计数值范围为1--256
技
术
学
院
2020年5月23日2时16分
字为01H;
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
ORG 0000H
LJMP MAIN
;跳转到主程序
成 ORG 000BH
;T0的中断入口地址
都
LJMP DVT0
;转向中断服务程序
理 ORG 0100H
工 MAIN:MOV TMOD,#01H ;置T0工作于方式1
的方式工作,但溢出标志TFx须软件清0
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时/计数器的应用
成
都
查询、中断两种方式
理
工 基本步骤:
大 学
•
工作方式控制字(TMOD)的设置;
工 • 计数初值的计算并装入THX、TLX;
程
技 • 中断允许位EA、ETX的设置,使主机开放中
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器(方式1)应用程序举例:
成
都 例:要求对T0产生100mS定时进行初始化。
理
(晶振=6MHz)
工
大 分析:已知fosc = 6MHz 则:
学
(机器周期)1Tm=12Tc=12/6MHz=2S
工
100mS÷2 S = 50000
学
Timer的启/停由软件对TRx位写“1”/“0”控
工制
程
技 GATE = 1 ——门控用法
术
Timer的启/停由软件对TRx位写“1”/“0”
学
和在INTx引脚上出现的信号的高/低共同控制
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器结构与工作方式
成 都
工作方式1:——16位的定时/计数器
大
MOV IE,#00H ;CPU关中断
询 方
学
SETB TR0
;启动T0
式
工 LOOP1: JBC TF0,LOOP
;查询计数是否溢出
程
AJMP LOOP1
技 LOOP: CPL P1.0
;P1.0取反输出
术
MOV TH0,#0D8H ;重新装入计数初值
学
MOV TL0,#0F0H
院
AJMP LOOP1
工 大 学 工 程 技 术 学 院
2020年5月23日2时16分
ORG 第00五0章0HMCS-51系列单片机硬件资源的应用
AJMP MAIN
ORG 001BH
成
AJMP TINT
;见下一页
都MAIN: MOV TMOD,#10H ;选T1方式1
理
MOV TH1, #3CH ;赋初值3CB0H=15536(只能定
大 中断,同时打开三态门,使THx中的值
学 自动重装(Copy)进TLx
工 程 技
☞ TMOD寄存器选方式: 写“M1,M0” = 10 b 选中方式2
术 ☞ 其他用法与方式1完全相同
学
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器(方式2)应用程序举例:
成 例:从P1.0 脚输出频率=1KHz方波。 都 设:晶振=6MHz。利用T1定时中断。
第五章 MCS-51系列单片机硬件资源的应用
成
都 当为定时方式时:
理
工 定时时间:(2n-计数初值)*机器周期
大 学
计数初值:2n
–定时时间/机器周期
工
程
技
术
学
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器(方式1)应用程序举例:
成 都
例:若晶振频率为6MHz,计算单片机的最小与最
TFx 中断
溢
≥1
控制 =1
开关接通
&
THx
与门
(8位)
出 位 门开
学 INTx端
或门
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
工作方式 2 的编程:
成 都 理 工
☞ THx/TLx赋相同初值 在TLx计数达到0FFH 再加“1”时,TLx 将溢出,进位位直接进入“TFx”去申请
理 工 大 学
分析:fosc = 6MHz 1机器周期 = 2 S
1KHz方波周期 = 1 mS
工
Th:半周期 半个方波周期 =500S
程 技
T:周期
500uS÷2 uS = 250 若选择方式2 工作,8位定
术
时器最大数值为:
学 院
28 =256 =0FFH + 1 可以满足要求。
计算初值:256-250=6
;返回
END
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
练习
成
都
理 1.利用定时/计数器T0的方式1,产生20ms的定时,
工
并使P1.0引脚上输出周期为40ms的方波,采用
大 学 工
中断方式,设系统时钟频率为6MHz。
2.用T0的工作模式1产生1ms的定时,在P1.0引脚
程
上输出周期为2ms的方波。设单片机晶振频率为
技
12MHz。要求用查询方式完成。
术
学
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
工作方式2:——8 位自动重装的定时/计数器
成
都
理
工
振荡器 12
大
学
工 Tx端
程 TRx位
技 术
GATE位
C/T=0
TLx
申请
C/T=1
(8位)
理 大定时时间:
工 大
分析:已知fosc
= 6MHz 则:
学 (振荡周期)1Tc=1/6MHz
工 (机器周期)1Tm=12Tc=12/6MHz=2S
程 粗略地说:Tmin 2S
技 术 学
16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到:
院 Tmax = 655362 = 131072S=131.072mS
院 TF0/TF1标志位会自动清“0”,以备下次中断申请。
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器方式寄存器TMOD (89H)
T1
T0
成
都
GATE C/T M1 M0 GATE C/T M1 M0
理 工
M1,M0:工作方式定义位 ( 定义4 种方式 ):
;赋重装值
工 程 技 术
MOV TL0, #6 SETB ET1 SETB EA
初 ;赋初值 始 ;开T1中断 化 ;开总中断
学
SETB TR1
;启动T1
院HERE: AJMP HERE ;原地等待中断
END
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
成 都
理 长定时举例(设晶振=6MHz,要定时1秒):
技
术
学
院
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
Timer的2个特殊功能寄存器(TCON,TMOD)
成 定时器控制寄存器TCON (88H)
都
理
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
工
大 TFx: Timer0/1计数溢出标志位。
学
=1 计数溢出; =0 计数未满
工100mS)
大
MOV TL1,#0B0H
学
MOV 30H,#10 ;软件计数单元30H 初值=10
程 技 术
16位定时器最大数值为: 216 = 65536 (=0FFFFH+1)
学
故选择方式1工作可以满足要求。
院 计算初值:65536-50000=15536=3CB0H
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
由分析得知:T0选择方式1,初值=3CB0H
成 定时器方式
学
SETB ET0
;开T0中断允许
院
SETB EA
;开总中断允许
以及相应的中断服务程序。
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
Biblioteka Baidu
例 : 利用定时/计数器T0的方式1,产生10ms的定
时,并使P1.0引脚上输出周期为20ms的方波,采用
成 都
中断方式,设系统时钟频率为12
= 0 片内时钟定时器。对机器周期脉冲计数定时
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
定时器方式寄存器TMOD(续)
成
GATE C/T M1 M0 GATE C/T M1 M0
(89H)
都
理 工
GATE门控T位1 : Timer可由软件T与0 硬件两者控制
大 GATE = 0 ——普通用法
RETI
;中断返回
2020年E5N月D23日2时16分
中 断 方 式
第五章 MCS-51系列单片机硬件资源的应用
ORG 0000H
LJMP MAIN
;跳转到主程序
成 ORG 0100H 都 MAIN:MOV TMOD,#01H ;置T0工作于方式1
查
理
MOV TH0,#0D8H ;装入计数初值
工
MOV TL0,#0F0H
都 理
寄存器TMOD
GATE C / T
XX
M1
X
工
M0 GATE C / T M1 M0
X0001
大 初始化:MOV TMOD,#01H ;选 T0 方式 1
学
MOV TH0, #3CH ;赋初值高8位
工
MOV TL0, #0B0H ;赋初值低8位
程 技 术
SETB TR0
;启动 T0定时
若需要定时器0产生中断还应当写如下语句:
理 TMOD选方式: 写“M1,M0”=01 b 选方式
工
1
大 若不用门控位,直接用软件写TRx控制启/停
学 若使用门控位,先置位TRx,然后由INTx端
工 程
的高/低电平来控制其启/停
技 术 学
若要允许中断,还须先置位ETx、EA等中断 允许控制位,并编写中断服务程序
院 若不用中断,可查询“计数溢出标志TFx”
2020年5月23日2时16分
第五章 MCS-51系列单片机硬件资源的应用
ORG 0000H
成 都 理
AJMP MAIN ORG 001BH ;T1的中断矢量 CPL P1.0 ;中断服务:P1.0取非
工
RETI
;中断返回
大MAIN: MOV TMOD,#20H
;选T1方式2
学
MOV TH0, #6
大
MOV TH0,#0D8H ;装入计数初值
学
MOV TL0,#0F0H
工
SETB ET0
;T0开中断
程
SETB EA
;CPU开中断
技
SETB TR0
;启动T0
术
SJMP $
;等待中断
学 DVT0:CPL P1.0
;P1.0取反输出
院
MOV TH0,#0D8H
;重新装入计数值
MOV TL0,#0F0H