第 5 章 定时 / 计数器与中断系统

29
1 5 5 第第 第第 / / 第第第第第第第第第第第第第第5.1 定定/定定定定定定定定定定 5.2 定定定 定定定定定 5.3 定定/定定定定定定定 定定定

Upload: aurora-david

Post on 02-Jan-2016

129 views

Category:

Documents


0 download

DESCRIPTION

第 5 章 定时 / 计数器与中断系统. 5.1 定时/计数器结构特点及控制 5.2 中断系统结构及管理 5.3 定时/计数器及中断系统综合应. 5.1 定时/计数器结构特点及控制. 5.1.1 定时/计数器结构 5.1.2 定时/计数器工作方式 5.1.3 定时/计数器控制寄存器 5.1.4 定时/计数器常数的计算. 返回本章首页. 5.1.1 定时/计数器结构. - PowerPoint PPT Presentation

TRANSCRIPT

1

第第 55 章章 定时定时 // 计数器与中断系计数器与中断系统统

5.1 定时/计数器结构特点及控制5.2 中断系统结构及管理5.3 定时/计数器及中断系统综合应

2

5.1 5.1 定时定时 // 计数器结构特点及控制计数器结构特点及控制

5.1.1 定时/计数器结构5.1.2 定时/计数器工作方式5.1.3 定时/计数器控制寄存器5.1.4 定时/计数器常数的计算

返回本章首页

3

5.1.1 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 。

返回本节

4

5.1.2 定时 / 计数器工作方式每个定时 / 计数器还有 4 种工作模式,也就是每个定时器可构成 4 种电路结构模式。在模式 0 、 1 和 2, T0和 T1 的工作模式相同,在模式 3 ,两个定时器的模式不同。下面以 T1 为例,分述各种工作模式的特点和用法。

1.模式 0

图 5-1 定时 / 计数器 T1( T0 )工作模式 0

22 .模式.模式 11

图 5-2 定时 / 计数器 T1( T0 )工作模式 1

33 .模式.模式 22

图 5-3 定时 / 计数器 T1( T0 )工作模式 2

44 .模式.模式 33

图 5-4 定时 / 计数器 T1( T0 )工作模式 3 返回本节

9

5.1.3 定时 / 计数器控制寄存器

定 时 器 共 有 2 个 控 制 寄 存 器 TMOD 和TCON ,由软件写入 TMOD和 TCON 两个 8位寄存器,设置各个定时器的操作模式和控制功能。

1.工作模式控制寄存器—TMOD ( 89H )

GATE C/ T M1 0M GATE C/ T 1M 0M

T控 制 1 T控 制 0

89H

T 和 类同01M 0M

00

01

10

11

方 式0方式1方式2方式3方式

0

1

定时器模式计数器模式

0

1

I NT 与 无关0

0I NT 与 有关

图 5-5 定时器工作模式寄存器 TMOD

2 .定时器控制寄存器—TCON( 88H )

TCON

位地址

0DD1D2D3D4D5D6D7

I T0I E0I T11I ETR0TF0TR1TF1

88898A8B8C8D8E8F

见下一节

{ 00 T :停 计数01 T :启 计数

00 T :无 中断(硬件复位){1 T :有 溢出中断0

0 T :无 中断(硬件复位)

10 T :停 计数{

1 T :有 溢出中断

1 T :启 计数

{1

1

1

图 5-6 定时器工作模式寄存器 TCON 返回本节

12

5.1.4 定时 / 计数器常数的计算

1.计数器初值的计算把计数器计满为零所需要的计数值设定为C ,计数初值设定为 TC ,由此可得到公式:

TC=M-C

式中, M 为计数器模值,该值和计数器工作方式有关。在方式 0时M 为 213 ;在方式 1时M 为 216 ;在方式 2 和方式 3时M 为 28 。

13

2.定时器初值的计算在定时器模式下,计数器由单片机主脉冲经 12 分频后计数。因此,定时器定时时间 T 的公式:

T=(M-TC) T 计数

上式也可写成: TC=M-T/ T 计数

式中, M 为模值,和定时器的工作方式有关;T 计数是单片机振荡周期 TCLK 的 12 倍; TC 为定时器的定时初值。

返回本节

14

5.2 5.2 中断系统结构及管理中断系统结构及管理5.2.1 中断请求与控制5.2.2 中断系统的结构5.2.3 中断控制5.2.4 中断响应过程

返回本章首页

5.2.1 5.2.1 中断请求与控制中断请求与控制

图5-7

中断流程

返回本节

16

5.2.2 中断系统的结构1.外部中断源由 P3.2 端口线引入,低电平或下降沿引起。由 P3.3 端口线引入,低电平或下降沿引起。

2.内部中断源(如图 5-8 所示)T0 :定时 / 计数器 0 中断,由 T0 回零溢出引起。T1 :定时 / 计数器 1 中断,由 T1 回零溢出引起。TI/RI :串行 I/O 中断,完成一帧字符发送 / 接收引

起。

图 5-8 中断系统的结构框图

返回本节

18

5.2.3 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:关串行口中断

位地址I E EA

AF ADET

ACES

ABET

AAEX

A9ET

A8EX00112

图 5-9 中断允许寄存器 IE

图 5-10 中断优先寄存器 IP

返回本节

21

5.2.4 5.2.4 中断响应过程中断响应过程单片机在每个机器周期的 S5P2 期间,顺序采样每个中断源, CPU 在下一个机器周期 S6 期间按优先级顺序查询中断标志,如查询到某个中断标志为 1 ,将在再下一个机器周期 S1 期间按优先级进行中断处理。中断得到响应后自动清除中断标志,由硬件将程序计数器 PC 内容压入堆栈保护,然后将对应的中断矢量装入程序计数器 PC ,使程序转向中断矢量地址单元中去执行相应的中断服务程序。

22

下列任何一种情况存在中断申请将被封锁:

( 1) CPU 正在执行一个同级或高一级的中断服务程序。( 2 )当前正在执行的那条指令还未执行完。( 3 ) 当 前 正 在 执 行 的 指 令 是 RETI 或 对IE, IP 寄存器进行读 / 写指令,执行这些指令后至少再执行一条指令才会响应中断。

返回本节

23

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

返回本章首页

24

即: TH0 应装 3CH, TL0 应装 B0H。3 )中断管理: 允许 T0 中断,开放总中断 即: IE 应装 10000010B。 4 )启动定时器 T0 : SETBTR0

5 )设置软件计数器初值:(如使用 R7) 即 R7 应装 0AH

6 )动态停机: SJMP $

25

主程序如下:MAIN:MOV TMOD, #01H ;设定 T0 为方式 1

MOV TH0, #3CH ;装入定时常数高 8 位MOV TL0, #0B0H ;装入定时常数低 8 位MOV IE, #82H ;开放 T0 中断SETB TR0 ;启动 T0

MOV R7, #0AH ;设置软件计数器SJMP $

26

( 2 )中断服务程序任务: 1 )恢复 T0 常数; 2 )软件计数器减 1 ; 3 )判断软件计数器是否为 0 。为 0 时,改变 P1.0状态,并恢复软件计数器初值;不为 0 时中断返回。

程序如下:TOINT: MOV TL0, #0B0H ;恢复定时常

数MOV TH0, #3CH ;DJNZ R7, NEXT

CPL P1.0

MOV R7, #0AH

NEXT: RETI

27

完整程序如下: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

MOV R7, #0AH

28

SJMP $

TOINT: MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, NEXT

CPL P1.0

MOV R7, #0AH

NEXT: RETI

END

返回本节

29

定时 / 计数、中断到此结束

谢谢光临!谢谢光临!