第 5章 定时 /计数器与中断系统
? 5.1 定时 /计数器结构特点及控制
? 5.2 中断系统结构及管理
? 5.3 定时 /计数器及中断系统综合应
5.1 定时 /计数器结构特点及控制
? 5.1.1 定时 /计数器结构
? 5.1.2 定时 /计数器工作方式
? 5.1.3 定时 /计数器控制寄存器
? 5.1.4 定时 /计数器常数的计算
返回本章首页
5.1.1 定时 /计数器结构
? 定时 /计数器简称定时器, 8031单片机有 2个 16位
的定时 /计数器:定时器 0( T0) 和定时器 1( T1
) 。 它们都有定时器或事件计数的功能, 可用
于定时控制, 延时, 对外部事件计数和检测等
场合 。
? T0由 2个特殊功能寄存器 TH0和 TL0构成, T1则由
TH1和 TL1构成 。 作计数器时, 通过引脚 T0( P3.4
) 和 T1( P3.5) 对外部脉冲信号计数, 当输入脉
冲信号从 1到 0的负跳变时, 计数器就自动加 1。
计数的最高频率一般为振荡频率的 1/24。
返回本节
5.1.2 定时 /计数器工作方式
? 每个定时 /计数器还有 4种工作模式, 也就是每个
定时器可构成 4种电路结构模式 。
? 在模式 0,1和 2,T0和 T1的工作模式相同, 在模
式 3,两个定时器的模式不同 。 下面以 T1为例,
分述各种工作模式的特点和用法 。
1.模式 0
图 5-1 定时 /计数器 T1( T0) 工作模式 0
2.模式 1
图 5-2 定时 /计数器 T1( T0) 工作模式 1
3.模式 2
图 5-3 定时 /计数器 T1( T0) 工作模式 2
4.模式 3
图 5-4 定时 /计数器 T1( T0) 工作模式 3
返回本节
5.1.3 定时 /计数器控制寄存器
? 定时器共有 2个控制寄存器 TMOD和 TCON,由软
件写入 TMOD和 TCON 两个 8位寄存器, 设置各个
定时器的操作模式和控制功能 。
1.工作模式控制寄存器 —TMOD( 89H)
GATE C/T M 1 0M GATE C/T 1M 0M
控 制 T 1 控 制 T 0
89H
和T 类 同 0
1M 0M
00
01
10
11
方 式
方式0
方式1
方式2
方式3
0
1
定时器模式
计数器模式
0
1
与I NT 无关 0
0与I NT 有关
图 5-5 定时器工作模式寄存器 TMOD
2.定时器控制寄存器 —TCON( 88H)
T C O N
位地址
0DD 1D 2D 3D 4D 5D 6D 7
IT 0IE 0IT 11IETR 0TF 0TR 1TF 1
88898A8B8C8D8E8F
见下一节
{
00,停T 计数
01,启T 计数
00,无T 中断(硬件复位)
{
1,有T 溢出中断 0
0,无T 中断(硬件复位)
10,停T 计数
{
1,有T 溢出中断
1,启T 计数
{
1
1
1
图 5-6 定时器工作模式寄存器 TCON
返回本节
5.1.4 定时 /计数器常数的计算
? 1,计数器初值的计算
? 把计数器计满为零所需要的计数值设定为 C,计
数初值设定为 TC,由此可得到公式:
TC=M-C
? 式中, M为计数器模值, 该值和计数器工作方式
有关 。 在方式 0时 M为 213;在方式 1时 M为 216;在
方式 2和方式 3时 M为 28。
? 2,定时器初值的计算
? 在定时器模式下, 计数器由单片机主脉冲经 12分
频后计数 。 因此, 定时器定时时间 T的公式:
T=( M-TC) T计数
上式也可写成,TC=M-T/T计数
? 式中,M为模值,和定时器的工作方式有关; T计
数 是单片机振荡周期 TCLK的 12倍; TC为定时器的
定时初值。
返回本节
5.2 中断系统结构及管理
? 5.2.1 中断请求与控制
? 5.2.2 中断系统的结构
? 5.2.3 中断控制
? 5.2.4 中断响应过程
返回本章首页
5.2.1 中断请求与控制

5-
7




返回本节
5.2.2 中断系统的结构
? 1,外部中断源
由 P3.2端口线引入, 低电平或下降沿引起 。
由 P3.3端口线引入, 低电平或下降沿引起 。
? 2,内部中断源 ( 如图 5-8所示 )
T0,定时 /计数器 0中断, 由 T0回零溢出引起 。
T1,定时 /计数器 1中断, 由 T1回零溢出引起 。
TI/RI,串行 I/O中断, 完成一帧字符发送 /接收引起 。
图 5-8 中断系统的结构框图
返回本节
5.2.3 中断控制
? 1,中断允许寄存器 IE( A8H)
? IE在特殊功能寄存器中, 字节地址 A8H,位地址
分别是 A8H~ AFH。 IE控制 CPU对中断源总的开放
或禁止以及每个中断源是否允许中断 。 其格式
如图 5-9所示 。
? 2,中断优先寄存器 IP( B8H)
? IP在特殊功能寄存器中,字节地址为 B8H,位地
址分别是 B8H~ BFH,IP用来锁存各中断源优先
级的控制位,其格式如图 5-10所示。
0,关I NT 中断 0
1,开I NT 中断 0
0,关T 中 断
1,开T 中 断 0
0
1,开T 中 断
0,关T 中 断
0,关I NT 中断
1,开I NT 中断
1
1
1
1
0,关T 中 断
1,开T 中 断 2
2
1,开所有中断
0,关所有中断
1,开串行口中断
0,关串行口中断
位地址
IE EA
AF AD
ET
AC
ES
AB
ET
AA
EX
A9
ET
A8
EX 00112
图 5-9 中断允许寄存器 IE
图 5-10 中断优先寄存器 IP
返回本节
5.2.4 中断响应过程
? 单片机在每个机器周期的 S5P2期间, 顺序采样每
个中断源, CPU在下一个机器周期 S6期间按优先
级顺序查询中断标志, 如查询到某个中断标志为
1,将在再下一个机器周期 S1期间按优先级进行
中断处理 。
? 中断得到响应后自动清除中断标志,由硬件将程
序计数器 PC内容压入堆栈保护,然后将对应的中
断矢量装入程序计数器 PC,使程序转向中断矢量
地址单元中去执行相应的中断服务程序。
下列任何一种情况存在中断申请将被封锁:
? ( 1) CPU正在执行一个同级或高一级的中断服
务程序 。
? ( 2) 当前正在执行的那条指令还未执行完 。
? ( 3) 当前正在执行的指令是 RETI或对 IE,IP寄存
器进行读 /写指令, 执行这些指令后至少再执行
一条指令才会响应中断 。
返回本节
5.3 定时 /计数器及中断系统综合应用
【 例 5.2】 设 MCS-51单片机系统时钟频率 ФCLK为
6MHZ,请编出利用定时 /计数器 T0在 P1.0引脚上产
生周期为 2秒, 占空比为 50%的方波信号的程序
( 1) 主程序
任务,1) T0工作方式的设定,选择方式 1( 16位方式 )
(最大定时 131ms)
2) 定时常数的设定,TC=216-100ms/2μs=15536=3CB0H
返回本章首页
即,TH0应装 3CH,TL0应装 B0H。
3) 中断管理,允许 T0中断, 开放总中断
即,IE应装 10000010B。
4) 启动定时器 T0,SETB TR0
5) 设置软件计数器初值,( 如使用 R7)
即 R7应装 0AH
6) 动态停机,SJMP$
主程序如下:
MAIN,MOV TMOD,#01H ; 设定 T0为方式 1
MOVTH0,#3CH ; 装入定时常数高 8位
MOVTL0,#0B0H ; 装入定时常数低 8位
MOVIE,#82H ; 开放 T0中断
SETB TR0 ; 启动 T0
MOVR7,#0AH ; 设置软件计数器
SJMP $
( 2) 中断服务程序
任务,1) 恢复 T0常数; 2) 软件计数器减 1; 3) 判断软
件计数器是否为 0。 为 0时, 改变 P1.0状态, 并恢复软件计
数器初值;不为 0时中断返回 。
程序如下:
TOINT,MOV TL0,#0B0H ; 恢复定时常数
MOVTH0,#3CH ; DJNZ R7,NEXT
CPL P1.0 MOV R7,#0AH
NEXT,RETI
完整程序如下:
ORG 0000H AJMP MAIN
ORG 000BH AJMP TOINT
ORG 0030H MAIN,MOV TMOD,#01H
MOV TH0,#3CH MOV TL0,#0B0H
MOV IE,#82H SETB TR0
MOVR7,#0AH
SJMP $
TOINT,MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R7,NEXT
CPL P1.0
MOV R7,#0AH
NEXT,RETI
END
返回本节
THANK YOU VERY MUCH !
?本章到此结束,
?谢谢您的光临!
结束放映 返回本章首页