第十七讲 定时/计数器
教学方法: 讲授法
授课时数: 2学时
教学目的:
1、了解MCS-51单片机内定时/计数器系统组成
2、掌握定时/计数器工作方式的控制
3、能编制简单的应用程序
教学重点:
定时/计数器的工作方式及模式
教学难点:
方式及模式确定
教学环节:
组织教学:(5分钟) 检查学生人数,强调课堂纪律和要求,自我介绍。
新授课:(70分钟)
§4-2 定时 / 计数器
一、定时 / 计数器的结构
T0、T1均为16位加1计数器。
TH0 TH1
TL0 TL1
TMOD
工作方式 TCON
1、工作方式控制寄存器 TMOD
T1 T0
TMOD GATE C//T M1 M0 GATE C//T M1 M0
GATE —— 门控位。
GATE = 0 启动不受 /INT0或 /INT1的控制;
GATE = 1 启动受 /INT0 或 /INT1 的控制。
C//T —— 外部计数器 / 定时器方式选择位
C//T = 0 定时方式;
C //T = 1 计数方式。
M1M2 —— 工作模式选择位。
M1 M0 模式 说明
0 0 0 13位定时/计数器
高八位TH(7 ~ 0)+ 低五位TL(4 ~ 0)
0 1 1 16位定时/计数器
TH(7 ~ 0)+ TL(7 ~ 0)
1 0 2 8位计数初值自动重装
TL(7 ~ 0) TH(7 ~ 0)
1 1 3 T0运行,而T1停止工作,8位定时/计数。
2、定时 / 计数器控制寄存器TCON
TCON TR1 TR0
TR0 —— 定时 / 计数器0运行控制位。
软件置位,软件复位。
与GATE有关,分两种情况:
GATE = 0 时,若TR0 = 1,开启T0计数工作;
若TR0 = 0,停止T0计数。
GATE = 1 时,若TR0 = 1 且/INT0 = 1时,开启T0计数;
若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。
若TR0 = 0, 停止T0计数。
TR1 —— 定时 / 计数器1运行控制位。
用法与TR1类似。
二、定时 / 计数器的四种工作模式
1、模式0
T1、T0的等效逻辑结构 (显示投影胶片)
计数寄存器TLi 低5位 + THi8位
C//T = 0 ——定时
C//T = 1 —— 对外计数。
定时:fosc / 12 = 1 /(12/fosc) = 1 / T
等间隔,次数已定,时间确定
T 即对机器周期进行计数。
左图定时时间为n×T。
n
计数:脉冲不等间隔。
每个下降沿计数一次
确认一次负跳变需两个机器周期,
所以,计数频率最高为fosc / 24。
GATE = 0 时,A =“1” B = “1”(TRi = 1时),启动计数
B = “0”(TRi = 0时),停止计数。
GATA = 1 时, A =“1”(/ INTXi =“1”) B =“1”(TRi = 1时)启动,
B = “0”(TRi = 0时)停止。
A =“0”(/ INTXi =“0”)停止。
2、模式1
与模式0相似。
与模式0的区别:计数位数不同。
计数寄存器:THi(高8位)+ TLi(低8位)
3、模式2
与模式0、1的区别:1)计数位数不同;
2)初值自动重装。
计数寄存器:
TLi(8位) 溢出时 TFi
THi(8位初值)
4、模式3
T0定时/计数,而T1停止计数,但可作波特率发生器。T0分成两独立定时/计数器TL0和TH0。
TL0使用C//T、GATE、TR0、/INT0、TF0定时/计数,
TH0使用TR1、TF1 因此,只能用于定时。
(展示投影胶片。)
模式3时,T1可定时为模式0、1、2的定时/计数,但不可中断,所以一般只作串口波特率发生器用。(投影展示图4-8)
三、定时/计数器的应用
编程前确定参数:
(1)定时/计数器—— T0、T1选择其一,
(2)工作方式——C//T及GATA,
(3)计数初值——加1计数、16位。
FFFFH X=M-N;M=213=8192(模式0)
N
X M=216=65536(模式1)
X M
M=28=256 (模式2、模式3)
0000H
(4)工作模式——M1、M0
编制初始化程序:
1)写TMOD;2)确定IE、IP;3)写计数初值;4)启动计数(TRi)
例1、设计一个能产生t=1ms的周期信号发生器,试编程。
解:选T0; C//T=0,GATE= 0
N = t / T = t /(12×(1/fosc))= 500
所以, X = M - 500 ,问:M取多少?
模式0、模式1均可,取模式0,M=213=8192
X = 8192-500 = 7692 = 1E0CH = 0001 1110 000 0 1100B,
先将低五位放入TL0中,再将剩余的数从右向左数出八位放入TH0中:
TH0 0F0H
TL0 0CH
程序:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INSE1
ORG 1000H
MAIN: MOV SP,#60H
MOV TL0,#0CH
MOV TH0,#0F0H
MOV TMOD,#00H
SETB TR0; IE
SETB ET0;TCON
SETB EA
SJMP $
INSE1: MOV TL0,#0CH
MOV TH0,#0F0H
CPL P10
RETI
小结:1、MCS-51单片机内有几个定时计数器?如何计数?
2、T0、T1有几种工作方式?
3、编程应用前要事先确定的参数有几个?
布置作业:P141 9
版书设计
一、定时 / 计数器的结构
1、……..
2、…….
3、…….
4、……..
二、定时 / 计数器的四种工作模式
1、……..
2、……..
3、……..
4、……..
三、定时/计数器的应用
1、…….
2、…….
3、……...
小结:
1、…….
2、…….
3、……..
作业: