第5章-中断和定时器计数器讲解
单片机-第五章 单片机中断系统
(1)CPU正在执行一个同级或高优先级的中断服务程序; (2)正在执行的指令尚未执行完; (3)正在执行中断返回指令RETI或者对寄存器IE、IP进 行读/写的指令。 CPU在执行完上述指令之后,要再执行一条指令,才 能响应中断请求。
二、中断响应过程 从中断请求发生直到被响应,准备去执行中断服务程 序,此过程即中断响应过程。中断响应过程一般包括如下几 个阶段: 1、中断采样并置位 中断采样过程:CPU在每个机器周期S5P2期间顺序对 中断源采样、置中断标志。 2、查询标志 在中断采样后的下一个周期的S6按优先级顺序查 询中断标志。
第5章 MCS-51单片机中断系统
5.1.1中断的概念
单片机系统中,CPU和外部设备之间不断进行信息的传 输。通常CPU和外设之间的信息传送方式有以下几种: 程序控制方式 中断方式 直接存储器存取(DMA)方式
1、 程序控制方式 可以分为以下两种方式。 (1)无条件传送方式 外设始终处于就绪状态,CPU不必查询外设的状 态,直接进行信息传输,称为无条件传送方式。 此种信息传送方式只适用于简单的外设。如开 关和数码段显示器等。
三、中断响应的时间
一般来说,中断的响应时间最短为3个机器周期,最长 为8个机器周期。 一般中断请求标志位查询占1个机器周期。而机器周期 又恰好是指令的最后一个机器周期。执行此指令后,CPU 将响应中断,产生硬件长调用指令。 长调用LCALL指令需要2个机器周期。这样,中断响应 时间为3个机器周期。
是不可寻址的
在同级的几个中断源中同时发生请求时, 内部对同级的各中断源的优先级别有一个规 定的查询顺序: 自然优先级
外部中断请求 INT0 最高 定时/计数器 T0 外部中断请求 INT1 定时/计数器 T1 串行口 UART 最低 定时/计数器 T2
单片机 第五章2 单片机的定时器计数器
若晶振频率为6MHz,1个机器周期为1/6 x 10-6 x12=2μs 则最小定时时间为:[213 –(213 -1)]x2μs=2μs 最大定时时间为:[213 –0] x2μs=16384μs =16.384ms
2、 方式1 (T1,T0) 当M1M0两位为 01时,定时 /计数器被选为工作方式 1,16位计数器,其逻辑结构 如图 所示。
8FH TCON TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
TF1(TCON.7, 8FH位)----定时器T1中断请求溢出标志位。 TF0(TCON.5, 8DH位)----定时器T0中断请求溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。只由软件置位或清零。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。只由软件置位或清零。
1、 方式0 (T1,T0)
当 M1M0两位为 00时,定时 /计数器被选为工作方式 0, 13位计数器,其逻辑结 构如图所示。
振荡器 ÷12 C/ T = 0 TL0 低5位 C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TH0 高8 位 TF0 中断
+
在方式0下,计数工作方式时,计数值的范围是: 1~8192(213 ) 定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12 或(213一计数初值)×机器周期
例4:用定时器l 以工作方式2计数,每计100次进行累计器加1操作.
(1)计算计数初值. 28—100=156D=9CH TH1=9CH,TL1=9CH TMOD寄存器初始化:MlM0=10,C/T=1,GATE=0 因此 TMOD=60H (2)程序设计序设计
第5章 定时与中断1
第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构成。
作计数器时,通过引脚T 0(P 3.4)和T 1(P 3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
5.1.2 定时/计数器工作方式⏹每个定时/计数器还有4种工作模式,也就是每个定时器可构成4种电路结构模式。
⏹在模式0、1和2,T0和T1的工作模式相同,在模式3,两个定时器的模式不同。
下面以T1为例,分述各种工作模式的特点和用法。
图5-1 定时/计数器T1(T0)工作模式0图5-2 定时/计数器T1(T0)工作模式1图5-3 定时/计数器T1(T0)工作模式2图5-4 定时/计数器T1(T0)工作模式35.1.3 定时/计数器控制寄存器定时器共有2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON两个8位寄存器,设置各个定时器的操作模式和控制功能。
1.工作模式控制寄存器—TMOD (89H )GATE C/T M 10M GATE C/T1M 0M 控 制 T 1控 制 T 089H和T 类同01M 0M 00011011方 式方式0方式1方式2方式301定时器模式计数器模式01与INT 无关00与INT 有关图5-5 定时器工作模式寄存器TMOD2.定时器控制寄存器—TCON(88H)TCON 位地址DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F见下一节{00:停T 计数1:启T 计数0:无T 中断(硬件复位){1:有T 溢出中断0:无T 中断(硬件复位)10:停T 计数{1:有T 溢出中断1:启T 计数{111图5-6 定时器工作模式寄存器TCON返回本节5.1.4 定时/计数器常数的计算⏹1.计数器初值的计算⏹把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式:TC=M-C⏹式中,M为计数器模值,该值和计数器工作方式有关。
第05章 MCS-51单片机的中断与定时(1-4)
2
1
TH0
;P1.0输出“0” ;P1.0输出“1”
5.2 MCS-51单片机的中断系统
五、外中断应用举例
1. 中断初始化程序
设置外中断源的触发方式 设置中断允许寄存器IE 设置中断优先级寄存器IP
2. 中断服务程序
保护现场 中断处理 恢复现场
23/65
5.2 MCS-51单片机的中断系统
【例5-3】 设外部中断0为下降沿触发方 式,高优先级,试编写中断初始化程序
5.2 MCS-51单片机的中断系统
【例5-4】 将单脉冲接到外中断0(INT0)引脚,利 用P1.0作为输出,经反相器接发光二极管。编写程 序,每按动一次按钮,产生一个外中断信号,使发 光二极管的状态发生变化,由亮变暗,或反之
P1.0 单脉冲 发生器 INT0
1
+5V
8031
26/65
5.2 MCS-51单片机的中断系统
串口:0023H
20/65
5.2 MCS-51单片机的中断系统
四、中断请求的撤除
1.定时/计数器中断请求标志TF0/TF1会自动撤除 2.串行口中断请求标志TI/RI要用指令撤除
CLR TI ;清TI标志位 CLR RI ;清RI标志位
3.负脉冲触发的外中断请求标志IE0/IE1会自动撤除 4.低电平触发的外中断请求信号需要外加电路撤除
下次课前请预习5.3节
30/65
5.3 51单片机的定时器/计数器
MCS-51单片机内部有两个16位定时/计数器 T0和T1,简称定时器0和定时器1
在特殊功能寄存器TMOD和TCON的控制下, 它们既可以设定成定时器使用,也可以设定 成计数器使用
定时/计数器有4种工作方式,具有中断功能, 可以完成定时、计数、脉冲输出等任务
第5章 MCS-51中断、定时计数器及串行接口
22:26
7
保护现场
课本P103
保护现场是指由于CPU执行中断处理程序时, 可能使用主程序中用过的累加器、寄存器或标志位。
为了使这些寄存器的值在中断服务程序中不被 冲掉,进入中断服务程序前,要将它们保护起来。
中断服务程序执行完,必须恢复原寄存器的内 容及原程序中断处的地址,即恢复现场和恢复断点。
22:26
课本P105
一、中断请求控制
(1) TCON中的中断请求标志位 Timer Controller
TCON为定时/计数器控制寄存器,其字节 地址为88H,可位寻址。这个寄存器除了控制定 时/计数器T0和T1的溢出中断外,还控制外部中 断的触发方式和锁存外部中断请求标志位。
图5-3 TCON中的各位定义
22:26
24
2. 中断响应过程
课本P110
CPU响应中断后,由硬件自动执行如下的功能操作:
(1)根据请求源的优先级高低,对相应的优先级状态 触发器置1,自动生成长调用指令LCALL addr16。
(2)保护断点,把程序计数器PC的内容压入堆栈。 (3)清除相应的中断请求标志位。 (4)把被响应的中断源所对应的中断服务程序入口地
…
先进后出
…
POP DPL
POP DPH
POP ACC
RETI
最后1条指令 必须是RETI
27
中断响应过程
处理文档 电话铃响 暂停文档 文档中作暂停记号 电话交谈 找出暂停记号位置 继续处理文档
执行主程序(日常事务程序) 中断申请信号有效(中断请求)
暂停执行主程序响应中断 当前PC及寄存器入栈(保护现场)
22:26
5
中断系统的基本问题
第5章定时计数器 (2)
5.4 8XX51定时/计数器的应用程序设计
5.4.3 应用编程举例 例1 如图所示,
P1中接有八个发光二极管, 编程使八个管轮流点亮,每 个管亮100ms,设晶振为 6MHz。 分析利用T1完成100ms的定时、 当P1口线输出“1”时,发光二 极管亮,每隔100ms”1”左移一 次,采用定时方式1,先计算计 数初值: MC=2μs 100ms/2μs =50000=C350H C =10000H-C350H=3CB0H
★若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器
TH0和 TL0 。
★TL0可工作为定时方式或计数方式。占用原T0的各控制位、引脚和 中断源。即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、INT0 (P3.2) 引脚。 TH0只可用作定时功能,占用定时器T1的控制位TR1和T1的中断标 志位TF1,其启动和关闭仅受TRl的控制。
ORG 0000H
AJMP
AJMP
MAIN
;T0中断服务程序入口 ;主程序开始 ;T0定时100ms IP0
ORG 000BH ORG 0030H MAIN:CLR P1.7
MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H
SETB
SETB
ET0
EA
5.4 8XX51定时/计数器的应用程序设计
本章介绍的主要内容
★ ★
★
定时计数器结构和工作原理 定时计数器的控制寄存器
定时计数器的应用编程
5· 1 8XX51定时/计数器结构和工作原理
★51系列单片机片内有两个十六位定时/计数器:定时器0(T0) 和定时器1(T1)。 ★两个定时器都有定时或事件计数的功能,可用于定时控制、 延时、对外部事件计数和检测等场合。 ★定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存器TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。
《单片机原理及应用》第5章 定时器及应用
计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值
第5章MCS-51的中断系统
例:写出INT1为低电平触发的中断系统初始化程序
SETB EA; SETB EX1 SETB PX1 CLR IT1
二、 中断服务程序
1、编写中断程序应注意以下几点: ① 为了要跳到用户设计的中断服务程序,在相应入口 地址安排一条跳转指令; ② 在中断服务程序的末尾,安排一条返回指令RETI; ③ 由于在响应中断时,CPU只自动保护断点,所以 CPU的其他现场的保护和恢复也必须由用户在中断服 务程序中安排。
1、T0/T1中断撤除:自动清除TF0 TF1
2、TX/RX中断撤除:不能自动撤除,必须软件清“0” CLR RI CLR TI ANL SCON ,#0FCH
3、外部中断请求的撤除
对于负边沿触发的外部中断,CPU在响应中断后是 用硬件自动清除中断请求标志IE0或IE1。
电平触发时,虽然自动清除中断请求标志IE0或IE1。但 不及时撤除低电平的话会重复响应中断,必须采取措施。
中断允许寄存器IE的单元地址是A8H,各控制位也可 位寻址,故既可以用字节传送指令也可以用位操作指 令来对各个中断请求加以控制。 例:开放T/C1的溢出中断
MOV IE,#88H;
SETB EA SETB ET1
二、 对中断优先级的控制
MCS-51具有两个中断优先级,可由软件设置每个中断 源为高优先级中断或低优先级中断,可实现二级中断 嵌套。
可在中断服务程序开 头安排如下程序: INSVR:ANL P1 ,#0FEHORL Fra bibliotek1,#01H …
RETI END
§4 中断系统的初始化及应用
一、中断系统的初始化 中断初始化是指用户对TCON、SCON、IE等特殊功能 寄存器中的各控制位进行赋值。
中断系统的初始化步骤: 1、 CPU开中断或关中断 2、 某中断源中断请求的允许或禁止(屏蔽) 3、 设定所用中断的中断优先级 4、若为外部中断,则应规定低电平还是负边沿的中断 触发方式
第5章 定时器计数器
后由硬件自动清0
(2)TR1、TR0——计数运行控制位
✓ TR1(或TR0)=1,启动定时器/计数器工作 ✓ TR1(或TR0)=0,停止定时器/计数器工作。 ✓ 该位可由软件置1或清0(位操作)
7
定时器/计数器T1、T0工作方式
22
✓ 当T2MOD的DCEN=0时,T2为增1型重新装载方式
EXEN2=0时,T2计满回0溢出,TF2置1;陷阱寄存器RCAP2L、 RCAP2H中预置的16位计数初值重新再装入TL2、TH2中,自动进 行下一轮计数。
EXEN2=1时,T2操作方式照旧,但当T2EX(P1.1)产生负跳变时 触发三态门将RCAP2L、RCAP2H陷阱寄存器中的计数初值自动装 载到TL2和TH2中重新开始计数,EXF2置1并发出中断请求。
9
✓ 方式2(M1 M0=10B) 方式2为自动恢复初值(初值自动装入)的8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,TFx置1且
自动将THx中的初值送至TLx,开始重新计数。
【注】方式2可省去用户软件中重装初值的指令执行时间,可以
相当精确地确定定时时间。
10
✓ 方式3(M1 M0=11B) 相当于增加了一个8位定时器/计数器。
(2)T1工作在方式1( M1 M0 =01B )
12
(3)T1工作在方式2( M1 M0 =10B )
(4)T1设置在方式3( M1 M0 =11B )
当T0设置在方式3,再把T1也设成方式3,此时T1停止计数。
13
定时/计数器初始化步骤
(1)方式控制字送TMOD MOV TMOD,#——
第5章 定时器计数器2(1)
2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。
(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。
【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。
要定时2.5ms,也可以用模式1。
2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100――> THn =0xF6 和 TLn=0x3C在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。
3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。
因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。
这不仅影响定时精度,也给程序设计带来麻烦。
方式2就是针对此问题而设置的。
该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。
第5章 定时计数器
图4-11 定时/计数器T0方式0的逻辑结构示意图
2. 方式1 当M1M0=01时,定时/计数器工作于方式1。方式1的计 数位数是16位,由TL0作为低8位,TH0作为高8位共同构 成。其余操作同方式0。
2.定时/计数器控制寄存器TCON TCON的低4位用于控制外部中断,高4位用于控 制定时/计数器的启动和中断申请。 TF0(或TF1)
当计数溢出时,TF0(或TF1)会自动由0变1, 告诉我们计数已满,我们可以通过查询TF0(或TF1) 位的状态来判断计时时间是否已到;
如果采用定时中断方式,则 由0变1时,能自动引发中断。 TF0(或TF1)
16位定时/计数器的计数容量是65536
假设计满一小时需要100,000,000 滴,这称为水钟的计数容量
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 计数器如何能作为定时 只要保证计数脉冲的间隔相等,则计数值就代表了 器使用呢? 时间的流逝。 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
TR0(或TR1) 由图4-11 可知,只有 当TR0(或TR1)为1时,开 关1才能闭合,计数脉冲才 能进入计数器,故TR0(或 TR1)称为运行控制位,可 用指令“SETB TR0(或 TR1)”来置位以启动定时/ 计数器运行;或用指令 “CLR TR0(或TR1)”来关 闭定时/计数器的工作,一 切全靠编程人员控制。
2.初始化程序:
MOV MOV MOV MOV TMOD,#06H TH0,#0F4H TL0,#0F4H IE ,#00H ;T0作计数器,工作于方式2 ;装入时间常数初值 ;自动重装时间常数 ;用查询方式确定计满12盒? ;自动申请中断
单片机讲义(第五章MCS-51的中断系统)
5.6.2 跳沿触发方式(下降沿触发方式)
如果相继连续两次采样,一个机器周期采样到外部中断输入为高, 下一个机器周期采样为低,则置1中断申请触发器,直到CPU响应此 中断时,该标志才清0。这样不会丢失中断,输入的负脉冲宽度至少保
持12个时钟周期(若晶振频率为6 MHZ,则为2μs),才能被CPU采样到。
(2)用字节操作指令
MOV IP,#05H ;000 00101 或者用: MOV 0B8H,#05H ;B8H为IP寄存器的字节地址
5.5 外部中断的响应时间
从外部中断请求有效(外部中断请求标志置1)到转 向中断入口地址所需要的响应时间。 外部中断的最短响应时间为3个机器周期。其中中断
请求标志位查询占1个机器周期,而这个机器周期恰好是处于指令 的最后一个机器周期,在这个机器周期结束后,中断即被响应, CPU接着执行1条硬件子程序调用指令 LCALL以转到相应的中断服 务程序入口,则需要2个机器周期。
外部中断响应的最长时间为8个机器周期。执行RETI或
是访问IE或IP的指令,最长需要2个机器周期。而接着再执行的1条 指令,按最长的指令(乘法指令MUL和除法指令DIV)来算,需4 个机器周期。再加上硬件子程序调用指令LCALL的执行,需要2个 机器周期,所以,外部中断响应最长时间为8个机器周期。
5.3.3中断允许寄存器IE
IE中各位的功能如下:
(l)EA——中断允许总控制位 EA=0,CPU屏蔽所有的中断请求(CPU关中 断); EA=1,CPU开放所有中断(CPU开中断)。 (2)ES——串行口中断允许位 ES=0,禁止串行口发送/接收中断; ES=1,允许串行口发送/接收中断。 (3) ET1——定时器/计数器T1的溢出中断允许 位 ET1= 0,禁止T1计数溢出中断; ET1= 1,允许T1计数溢出中断。
第5章_MCS-51单片机中断定时器
5.1.4 P3口
P3口第二功能
第二功能状态
15:12
14
返回目录
5.1.4 P3口
P3口使用
P3口使用
P3口的每一位都可独立地定义为第一功能 I/O或第二功能使 用。P3的第二功能涉及到串行口、外部中断、定时器,与 特殊功能寄存器有关,它们的结构、功能等在后面章节中 再作进一步介绍。
P3 口 的 地 址 为 B0H , 对 应 P3.0~P3.7 的位地址为 B0H~B7H。
15:12 15
返回目录
5.1.4 小结
4个并行口使用注意事项
P0、P1、P2、P3并行端口使用注意事项
(1)4个端口的电路结构均不完全相同,并且性能和用途 也各有所侧重; (2)4个口均为“准双向口”,每个并行口都有两种读入 方法:一个是读锁存器,另一个是读取引脚状态; (3)P0口作为I/O口使用时应外接上拉电阻,其它口则可 不必; (4)P2口某几根口线作地址使用时,剩下的口线不能作为 I/O口线使用; (5)P3口的某些口线作第二功能时,剩下的口线可以单独 作为I/O口线使用。
15:12 26
返回目录
5.2.1 CPU与外设的输入/输出方式
2.异步传送方式
异步 传送又称为有条
-----异步传送方式
件传送,或查询方式,
通常 把 通过 程 序 对外 设状 态 的检 测 称 之为 “查 询”, 所 以 这种 有条 件 的传 送 方 式又 叫做 程 序查 询 方 式。 查询 的 流程 图 如 图所 示。
15:12 27
返回目录
5.2.1 CPU与外设的输入/输出方式
3.直接存储器存取(DMA)方式
---DMA方式
DMA ( Direct Memory Access ) 方 式 是
第5章 定时器TIM PPT
-8-
高级和通用定时器TIMx-- TIMx时 钟源
可以使用库函数来完成时钟源的选择,例如:
【示例5- 2】 选择时钟源 /* 选择TIM1为内部时钟源 */ void TIM_InternalClockConfig(TIM1);
原型如下:
【结构体5- 1】 TIM_TimeBaseInitTypeDef typedef struct {
/* 预分频系数,即PSC寄存器,计数范围0-0xffff */ uint16_t TIM_Prescaler; /* 计数模式选择 */ uint16_t TIM_CounterMode; /* 自动装载的计数值,即ARR寄存器,计数范围0-0xffff */ uint16_t TIM_Period; /* 时钟分割,用于数字滤波器等,计数模式中无作用 */ uint16_t TIM_ClockDivision; /* 重复次数,即RCR寄存器,取值范围0-0xff */ uint8_t TIM_RepetitionCounter; } TIM_TimeBaseInitTypeDef;
/* 计数器使能,开始工作 */ TIM_Cmd(TIM1, ENABLE); }
- 18 -
计数模式 --库函数TIM_TimeBaseInit( )
TIM_TimeBaseInitStructure为TIM_TimeBaseInitTypeDef
类型的指针(定义于文件“stm32f10x_tim.h”),其结构
计数器
计数器CNT是一个16位的寄存器,计数范围1-65535。可以向上计数、向下 计数或者向上向下双向计数。
第5章 中断
5.2 MCS-51中断系统
中断控制 中断控制包括中断允许控制和中断 优先级控制。 中断允许控制是控制是否开放中断。 中断优先级控制是通过程序设定中断的优 先顺序,从而实现中断的嵌套。
5.2 MCS-51中断系统
中断控制-中断允许控制 MCS-51中断系统中,中断的允许或 禁止由中断允许寄存器IE控制。
中断响应过程-中断入口 CPU响应中断时,先置位相应的优 先级激活触发器,封锁同级的和低级的中 断,然后把程序计数器PC的内容压入堆 栈,同时根据中断的来源,把相应的中断 服务程序的入口地址装入PC中。
5.2 MCS-51中断系统
中断响应过程-中断入口 5个中断源的中断服务程序入口地址: 中断源 入口地址 外部中断0 0003H 定时器0 000BH 外部中断1 0013H 定时器1 001BH 串行口 0023H
5.2 MCS-51中断系统
中断响应过程-封锁中断 下列三种情况之一,CPU将封锁对 中断的响应: 1. CPU正在处理同级或高一级中断。 2. 现行机器周期不是当前执行中指 令的最后一个机器周期。 3. 当前正在执行的指令是返回指令 或访问IE、IP寄存器的指令。
5.2 MCS-51中断系统
5.3 中断程序设计
C51中断程序的设计 中断服务程序定义为函数: 返回值 函数名([参数])[模式][再 人]interrupt n[using m] 其中,interrupt n表示将函数声明 为中断服务函数,n为中断源编号,可能 是0~31间的整数。
5.3 中断程序设计
C51中断程序的设计 n通常取以下值: 0 外部中断0 1定时/计数器0溢出中断 2外部中断1 3定时/计数器1溢出中断 4串行口发送与接收中断
单片机原理与应用 第五章
第五章MCS-51单片机的中断系统5.1 中断系统概述中断:CPU暂时停止正在执行的程序,自动转去执行需紧迫处理的事件(程序),并在处理完毕后能够返回原来程序暂停的位置,接着继续执行。
5.2 中断源和中断控制5.2.1 中断源:能够让CPU暂停执行的信号(硬件)。
8051单片机有5个中断源:2个内部定时器/计数器T0和T1溢出中断:F0和TF1。
2个外部输入INT0(P3.2)和INT1(P3.3)中断:IE0和IE1。
1个串行口发送/接收中断:TI / RI。
1. 定时器/计数器中断控制寄存器TCON (88H)(1) IT0当IT0=0时,为负电平触发方式,即INT0(P3.2脚)为低电平时,置IE0=1。
当IT0=1时,为边沿负跳变触发方式,即INT0从高变为低电平时,置IE0=1。
(2) IE0为外部中断0的触发标志(申请中断):(当INT0的电平变化时由硬件置位)硬件置位IE0=1时,向CPU请求中断。
在CPU响应中断请求后,当IT0=1时,IE0自动清零;而当IT0=0时,IE0不能自动清零。
(3) IT1 为外部中断1的触发方式控制位:(由软件置位)同IT0。
(4) IE1 为外部中断1的触发标志(申请中断):同IE0。
(5) TF0为T0的溢出标志(申请中断):当T0的(TH0、TL0)计满溢出时,硬件置TF0为“1”,并向CPU申请中断。
CPU响应中断后,TF0自动清零。
(6) TF1为T1的溢出标志(申请中断):当T1的(TH1、TL1)计满溢出时,硬件置TF1为“1”,并向CPU申请中断。
CPU响应中断后,TF1自动清零。
2. 串行口控制寄存器SCON (98H)1) TI2) RI:串行口接收中断标志位。
接收完成后RI=1。
5.2.2 中断控制1. 中断允许控制寄存器IE (A8H)1) EA当EA=0时,所有中断都禁止;当EA=1时,所有中断都允许。
2) ES:串行口中断允许控制位当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 单片机中断和定时器/计数器
MCS-51单片机通过中断请求标志寄存器TCON、SCON, 中断允许控制寄存器IE和中断优先级控制寄存器IP对 中断实现控制。
1.中断请求标志寄存器
(1)TCON中的中断标志位
D7 D6 D5 D4 D3 D2 D1 D0
(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
TCON TF1
源允许 总允许
优先级Leabharlann 中断源硬件查询第5章 单片机中断和定时器/计数器
中断源
INT0—外部中断请求0,由引脚P3.2提供,中断 请求标志为IE0,由IT0选择其有效方式。
INT1—外部中断请求1,由引脚P3.3提供,中断 请求标志为IE1,由IT1选择其有效方式。
T0—定时器/计数器T0溢出中断请求,中断请求 标志为TF0。
第5章 单片机中断和定时器/计数器
②IE0—外部中断0的中断请求标志位 当CPU检测到引脚上出现有效的中断信号时(若IT0=0,且检测到
引脚为低电平时;若IT0=1,且检测到引脚当出现负跳变时), IE0由硬件置“1”,向CPU申请中断。 ③IT1—外部中断1触发方式控制位 其意义与IT0类似。 ④IE1—外部中断1的中断请求标志位 其意义与IE0类似。 ⑤TF0—T0溢出中断请求标志位 当启动定时器/计数器T0计数后,T0从初值开始加1计数,当最高 位产生溢出时,TF0由硬件置“1”,向CPU申请中断。 CPU响应TF0中断时,由硬件清“0”TF0。 ⑥TF1—T1溢出中断请求标志位 功能和TF0类似。
1 IT0 0 INT0
1
T0
1 0 IT1 INT1 1
TCON IE0 TF0 IE1
IE
IP
EX0
PX0 1
1
1
0
ET0 1
EX1 1
PT0 1 0
PX1 1 0
自 然 优 先 级
中断源
硬件查询
ET1
PT1 1
T1
TF1
1
0
自 然
优
TX
TI
ES
PS 1
先
RX
≥
RI
1
级 0
EA SCON
中断标志
第5章 单片机中断和定时器/计数器
(2)SCON中的中断标志位
D7 D6 D5 D4 D3 D2 D1 D0 (98H) 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
SCON
TI RI
①TI—串行口发送中断标志位
每当串行口发送完一帧串行数据后,TI由硬件自动置“1”。CPU 响应该中断时,不能自动清除TI,必须用软件对TI标志位清 “0”。
边沿触发方式时,在相继两次采样中,先采样到外部中断输入为 高电平,下一个周期采样到为低电平,则置位中断申请标志IE0。 若CPU暂时不能响应,中断申请标志也不会丢失,直到CPU响应此中 断时才清“0”。另外,为了保证下降沿能够被可靠地采样到,外部 中断源引脚上的负脉冲宽度至少要保持一个机器周期。
5.2 MCS-51单片机的中断系统 5.2.1 中断系统的基本概念和基本结构
1.中断系统的基本概念
当CPU正在处理某件事情的时候,单片机外部或内部发生
的某一事件请求CPU迅速去处理
CPU暂时中止当前的工作,转去处理所发生的事件
事件处理完毕后,CPU再回到刚刚被暂停的地方继续原来
的工作 上述过程叫做中断
TF0
IE1 IT1 IE0 IT0
第5章 单片机中断和定时器/计数器
与中断有关的标志位的含义如下:
①IT0—外部中断0触发方式控制位 当IT0=0时,外部中断0为电平触发方式 当IT0=1时,外部中断0为边沿触发方式
两种触发方式的比较: 电平触发方式时,外部中断源的有效低电平必须保持到请求获得 响应时为止,否则就会漏掉;在中断服务结束之前,中断源的有效 低电平必须撤除,否则中断返回之后将再次产生中断。
第5章 单片机中断和定时器/计数器
采用中断技术可以使单片机实现以下功能: (1)分时操作。 (2)实时处理。 (3)故障处理。
第5章 单片机中断和定时器/计数器
2.中断系统的基本结构
MCS-51单片机的中断系统包括5个中断源,2个中断优先级,
4个用于中断控制的寄存器IE、IP、TCON和SCON。
主程序
响应 中断请求
断点
中断服 务程序
返回主程序
RETI
第5章 单片机中断和定时器/计数器
能引起CPU产生中断的事件称为中断源。 中断源向CPU提出的处理请求,称为中断请求。 CPU接受中断请求,暂时中止自身的事情转去处理事件的过程, 称为中断响应过程。 CPU对事件的整个处理过程,称为中断服务。 为实现中断而编写的服务程序叫做中断服务程序。 事件处理完毕,再回到原来被中断的地方,称为中断返回。 单片机是通过相应的硬件电路和软件设置来完成中断功能的, 所以将能完成中断功能的硬件系统和软件系统统称为中断系统。
T1—定时器/计数器T1溢出中断请求,中断请求 标志为TF1。
TX/RX—串行中断请求,中断请求标志为TI或RI。
第5章 单片机中断和定时器/计数器
通常,外部中断源有以下几种: (1)I/O设备中断源。 (2)控制对象中断源。 (3)故障中断源。
第5章 单片机中断和定时器/计数器 5.2.2 中断系统的控制与实现
5.1 概述
中断系统在计算机系统中起着十分重要的作用。MCS-51单片 机具备一套完善的中断系统,包括5个中断源,2个中断优先级, 可以实现2级中断嵌套。
在工业检测、控制领域中,许多场合都要用到计数或定时功能。 MCS-51单片机片内集成两个可编程的定时器/计数器。
第5章 单片机中断和定时器/计数器
第5章 单片机中断和定时器/计数器
第5章 中断和定时器/计数器
第5章 单片机中断和定时器/计数器
主要内容: 5.1 概述 5.2 MCS-51单片机的中断系统 5.3 MCS-51单片机的定时器/计数器
第5章 单片机中断和定时器/计数器
重点、难点:
了解中断系统的基本概念及中断系统的基本结构 掌握与中断系统相关的特殊功能寄存器的功能,掌握中断