当前位置:文档之家› 第6章80C51的中断系统及定时计数器单片机原理及应用(C51编程)-李全利-高教出版社

第6章80C51的中断系统及定时计数器单片机原理及应用(C51编程)-李全利-高教出版社


C/T:模式选择位。 清0为定时模式,置1为计数方式。 M1M0:工作方式设置位。可设置四种工作方式(见下页)。
2015-1-6
19
M1M0 工作方式 00 方式0
说 13位定时/计数器

01
10 11
方式1
方式2 方式3
16位定时/计数器
8位自动重装定时/计数器 T0分成两个独立的8位定时/计数器; T1此方式停止计数
2015-1-6
21
6.3.3
定时/计数器的工作方式
T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。
方式0:13位方式
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 TH0 8位 TL0 5位 &
≥1
TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
2015-1-6 11
中断响应时间
M1 M2 M3 M4 M5 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
中断 ε 标志 锁存 有效
排序选择
保护断点,长调用至入口
PT1:T1中断优先级 PS :串口中断优先级
同一优先级的自然顺序: 自高至低:INT0、TO、INT1、T1、串口。
9
2015-1-6
中断优先级遵循的原则 几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。 为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。 状态触发器的复位由中断返回指令RETI控制。
2015-1-6 24
方式1:16位方式
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 1 TH0 8位 TL0 8位 &
≥1
TMOD T0引脚 1 0 M0 M1 C/T 0 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0
X=216-N=65536-N
IE
EA 1
IP
PX0 1 0 PT0 1
硬件查询
高 优 先 级
INT0 T0 INT1 T1 RX TX
中断申请
中断入口
中断入口
SCON
2015-1-6 3
6.1.2 80C51的中断源 中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
RI:串口接收中断标志,响应中断时不能自动清除 TI:串口发送中断标志,响应中断时不能自动清除
7
2015-1-6
6.1.3 80C51中断的控制 中断允许控制
中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
7 IE EA 6 5 4 ES 3 2 1 0 ET1 EX1 ET0 EX0 字节地址:A8H
第6章 80C51的中断系统及定时/计数器
6.1
80C51单片机的中断系统
6.2
80C51单片机的中断处理过程
6.3
80C51单片机的定时/计数器 80C52的定时/计数器2
6.4
2015-1-6
1
6.1 80C51单片机的中断系统
6.1.1 80C51中断系统的结构
中断的概念
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
void Ex0Isr() interrupt 0 { if(Flag0==0)Flag0=1; Flag1 = 0; } void Ex1Isr() interrupt 2 { if(Flag1==0)Flag1=1; Flag0 = 0; }
2015-1-6 16
+5V 100Ω
P2.7 P2.6 P2.5 P2.4 P2.3 INT0 P3.2 P2.2 P2.1 P3.3 P2.0 INT1
注意:TMOD不能进行位寻址
2015-1-6
20
控制寄存器TCON
7 TCON 6 5 4 3 2 1 0 字节地址:88H TF1 TR1 TF0 TR0
TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。 用软件设置TFx可产生同硬件置1或清0同样的效果。 TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2015-1-6
22
初值计算:
公式法 C/T=1时,则为计数模式,有: 13 X=2 -N=8192-N C/T=0时,则为定时模式,有: X=213-N=8192-N,N=t/Tcy 求补法 :X=对N求补
【例5-3】若计数个数N为2,求计数初值。 公式法计算:X=8192-2=8190=1FFEH 求补法计算:对0 0000 0000 0010B取反加1为: 1 1111 1111 1110B(1FFEH)
【例6-1】单外部中断源示例
VCC
P2.7 P2.6 P2.5 P2.4
S
P3.2 INT0
P2.3 P2.2 P2.1 P2.0
89S51
2015-1-6
15
【例6-2】如图所示,编写程序实现:系统上电后,数码管 显示“P”。按下S0键则数码管进行加计数,S1键则数码管进 行减计数。计数值显示在数码管上。
计数范围:1~65536
计数初值要分成2个字节分别送入TH0、TL0
2015-1-6 25
【例6-4】若要求定时器T0工作于方式1,定时时间为1ms, 当晶振为6 MHz时,求送入TH0和TL0的计数初值各为多少? 应怎样送入TH0和TL0?
由于晶振为6 MHz,所以机器周期Tcy为2µ S,因此: N=t/Tcy=1×10-3/2×10-6=500 X=216-N=65536-500=65036=FE0CH 分别将FEH送入TH0中,0CH送入TL0中即可。
2015-1-6
5
两种触发方式比较:
电平方式时, INTx低电平必须保持到响应时,否则就会 漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断 返回之后将再次产生中断。 例,8255的中断请求线在接受读或写操作后即被复位,因 此以其去请求电平触发方式的中断比较方便。 边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。 若CPU暂时不能响应,申请标志也不会丢失,直到响应时才 清0。 例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可 以作为80C51的INTx信号 。
内部总线
GATE TF1 TR1 TF0 TR0 C/T C/T M1 M0 M1 M0
TCON
TMOD
TH1、TL1 TH0、TL0 TCON TMOD
GATE
外部中断相关位
T1方式
17
T0方式
2015-1-6
工作原理
---实质是16位加1计数器
定时器模式时,对内部机器周期计数。 定时时间=计数值*机器周期 计数器模式时,是对外部脉冲计数。脉冲由 T0( P3.4 ) 或T1(P3.5)引脚输入。 注意:(若计数值为N,计数初值为X) •溢出信号使TF0或TF1置1,并发出中断请求,16位时有: X=65536-N •12MHz晶振时,计数频率低于0.5MHz
也可以利用以下2条语句完成: TH0 = (65536-500)/256 ; 商为计数初值的高字节 TL0 = (65536-500)%256 ; 余数为计数初值的低字节
2015-1-6
18
2015-1-6
6.3.2 定时/计数器的控制
工作方式寄存器TMOD
7 TMOD 6 5 M1 4 M0 3 2 1 M1 0 M0 字节地址:89H GATE C/T GATE C/T
GATE :门控位。 GATE = 0 时,只要 TRx 为 1 ,就可启动计 数器工作; GATA = 1 时,定时器的启动还要加上 INTx 引脚 为高电平这一条件。
中断服务
中断响应至少需要3个完整的机器周期(3~8个)! 受阻时要附加3~5个机器周期(无同级或高级中断正进行) 排序周期不是指令的最后机器周期(如MUL,5个) 排序周期恰逢RETI类指令(要再跟指令,若是MUL,8个)
2015-1-6
12
6.2.2 中断响应过程 CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
2015-1-6 6
溢出中断标志TF1、TF0(用TFx表示) 溢出中断请求标志TFx ,Tx启动后就开始由初值进行加 1计数,直至最高位产生溢出使TFx=1向CPU请求中断。CPU 响应中断后TFx自动清0。
SCON的中断标志
7 SCON 6 5 4 3 2 1 TI 0 RI 字节地址:98H
EX0:外中断0允许 ET0:T0中断允许 EX1:外中断1允许
ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许
2015-1-6
8
中断优先级控制
中断优先级由IP控制(1,高级;0,低级)
7 IP 6 5 4 PS 3 2 1 0 PT1 PX1 PT0 PX0 字节地址:B8H
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
S0
a b c d e f g
dp
com
S1
89S51
共阳极
6.3 80C51单片机的定时/计数器
相关主题