单片机原理及应用第5章80C51的中断系统及定时计数器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

溢出 TH0 8位
溢出 TL0 8位
D0
1 0 &
≥1
机器周期 T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 1 M1
C/T GATE
M0 M1 C/T GATE D7
C/T GATE
M0 M1 C/T GATE D7
2020/5/15
22
初值计算:
公式法 C/T=1时,则为计数模式,有:
X=213-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)
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2020/5/15
13
5.2.3 中断返回
中断服务程序最后指令必须是RETI,其功能:
将断点从堆栈弹送PC,CPU从原断点继续执行 将相应优先级状态触发器清0,恢复原来工作状态
注意
不能用RET代替RETI 中断服务程序中PUSH和POP必须成对使用
2020/5/15
18
5.3.2 定时/计数器的控制
工作方式寄存器TMOD
7
6
54
3
210
TMOD GATE C/T M1 M0 GATE C/T M1 M0 字节地址:89H
GATE:门控位。GATE=0时,只要TRx为1,就可启动计 数器工作;GATA=1时,定时器的启动还要加上INTx引脚 为高电平这一条件。
例,8255的中断请求线在接受读或写操作后即被复位,因 此以其去请求电平触发方式的中断比较方便。
边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。 若CPU暂时不能响应,申请标志也不会丢失,直到响应时才 清0。
例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可
以作为80C51的INTx信号 。
2020/5/15
7
5.1.3 80C51中断的控制 中断允许控制
中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
76543210
IE EA
ES ET1 EX1 ET0 EX0 字节地址:A8H
EX0:外中断0允许 ET0:T0中断允许 EX1:外中断1允许
ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许
2020/5/15
14
5.2.4 中断程序举例
【例5-1】单外部中断源示例
void Ex0()interrupt 0 {
Flag=~Flag; }
while(1)
{if(Flag==0) //左移
{ ScanNum=_crol_(ScanNum,1);
P0=ScanNum;
}
else
//右移
{ ScanNum=_cror_(ScanNum,1);
注意:TMOD不能进行位寻址
2020/5/15
20
控制寄存器TCON
76543210
TCON TF1 TR1 TF0 TR0
字节地址:88H
TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。 用软件设置TFx可产生同硬件置1或清0同样的效果。
TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2020/5/15
23
门控位作用
当GATE=0时 仅由TR0控制与门的开启。与门输出1时,控制开关
接通,计数开始;
当GATE=1时 与门的开启由INT0和TR0共同控制。这种方式可以用
来测量INT0引脚上正脉冲的宽度。
注意:方式0的计数初值高8位和低5位确定麻烦 ,实际 应用中常由16位的方式1取代。
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
2020/5/15
3
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
硬件查询
高 优 先 级
中断源
中断申请 中断入口
低 优 先 级
中断源
中断申请 中断入口
5.1.2 80C51的中断源
也可以利用以下2条语句完成: TH0 = (65536-500)/256 ; 商为计数初值的高字节 TL0 = (65536-500)%256 ; 余数为计数初值的低字节
2020/5/15
26
方式2:8位自动重装方式
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TL0
TR0
TH0 8位
1 0 &
5.2.1 中断响应条件和时间 中断响应条件
有中断请求 相应的中断允许位为1 CPU开中断(即EA=1) 遇下面情况之一将不被响应(此间中断条件失效,中断丢失)
正在处理同级或高级中断 当前选择周期不是所执行指令的最后一个机器周期 正在执行RETI或访问IE或IP 的指令
2020/5/15
11
中断响应时间
≥1
D0
T0引脚
机器周期 1
INT0引脚
TMOD
0 M0 D0 1 M1
C/T GATE
M0 M1 C/T GATE D7
X=28-N=256-N
计数范围:1~256
特别适合与脉冲信号发生器
2020/5/15
27
方式3:(仅T0有此方式,T1的方式3将停止计数)
申请 中断
申请 中断
TCON
TF1 TR1 TF0 TR0
2020/5/15
24
方式1:16位方式
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
1 0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 0 M1
C/T GATE
M0 M1 C/T GATE D7
X=216-N=65536-N
计数范围:1~65536
主程序A
断点
响应 中断服务程序B
返回
……
中断服务程序B RETI
中断的中优断点源: CPU中利断用请率求高 控制中实断时服性务强 系统中可断靠返性回好
中断系统
2020/5/15
2
80C51中断系统的结构
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
2020/5/15
21
5.3.3 定时/计数器的工作方式
T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。
方式0:13位方式
TCON
TF1 D7
申请 中断
TR1
溢出
TF0
TH0 TL0
TR0
8位 5位
D0
1 1
0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
0 M0 D0 0 M1
计数初值要分成2个字节分别送入TH0、TL0
2020/5/15
25
【例5-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中即可。
结构
T1引脚
T0引脚
机器周 期脉冲
TH1
TL1
TH0
TL0
TCON
2020/5/15
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
外部中断相关位
T1方式
17
内部总线 TMOD T0方式
TH1、TL1 TH0、TL0 TCON TMOD
工作原理 ---实质是16位加1计数器
定时器模式时,对内部机器周期计数。 定时时间=计数值*机器周期 计数器模式时,是对外部脉冲计数。脉冲由T0(P3.4) 或T1(P3.5)引脚输入。
注意:(若计数值为N,计数初值为X) •溢出信号使TF0或TF1置1,并发出中断请求,16位时有:
X=65536-N •12MHz晶振时,计数频率低于0.5MHz
2020/5/15
9
中断优先级遵循的原则
几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。
状态触发器的复位由中断返回指令RETI控制。
2020/5/15
10
5.2 80C51单片机中断处理过程
C/T:模式选择位。 清0为定时模式,置1为计数方式。 M1M0:工作方式设置位。可设置四种工作方式(见下页)。
2020/5/15
19
M1M0 工作方式


00 方式0 13位定时/计数器
01 方式1 16位定时/计数器
10 方式2 8位自动重装定时/计数器
11
方式3
T0分成两个独立的8位定时/计数器; T1此方式停止计数
} void Ex1Isr() interrupt 2 {
if(Flag1==0)Flag1=1; Flag0 = 0;
}
2020/5/15
16
5.3 80C51单片机的定时/计数器
基本型:T0,定时、计数。 T1,定时、计数、串口波特率发生器。
增5.强3.型1:定增时加了/计T2数。器见5的.3结.4构节。和工作原理
中断源
外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2020/5/15
4
触发方式设置及中断标志
76543210 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 字节地址:88H
外部中断标志IE1、IE0(用IEx表示)
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
中断 ε 标志
有效 锁存
排序选择
保护断点,长调用至入口
中断服务
中断响应至少需要3个完整的机器周期(3~8个)!
第5章 80C51的中断系统及定时/计数器
5.1 80C51单片机的中断系统 5.2 80C51单片机的中断处理过程 5.3 80C51单片机的定时/计数器 5.4 80C52的定时/计数器2
2020/5/15
1
5.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
2020/5/15
6
溢出中断标志TF1、TF0(用TFx表示)
溢出中断请求标志TFx ,Tx启动后就开始由初值进行加 1计数,直至最高位产生溢出使TFx=1向CPU请求中断。CPU 响应中断后TFx自动清0。
SCON的中断标志
76543210
SCON
TI RI 字节地址:98H
RI:串口接收中断标志,响应中断时不能自动清除 TI:串口发送中断标志,响应中断时不能自动清除
电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中 断后IEx不自动清0(INTx引脚状态)。
边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中 断后IEx自动清0。
2020/5/15
5
两种触发方式比较:
电平方式时, INTx低电平必须保持到响应时,否则就会 漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断 返回之后将再次产生中断。
2020/5/15
8
ቤተ መጻሕፍቲ ባይዱ 中断优先级控制
中断优先级由IP控制(1,高级;0,低级)
76543210
IP
PS PT1 PX1 PT0 PX0 字节地址:B8H
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
PT1:T1中断优先级 PS :串口中断优先级
同一优先级的自然顺序: 自高至低:INT0、TO、INT1、T1、串口。
受阻时要附加3~5个机器周期(无同级或高级中断正进行) 排序周期不是指令的最后机器周期(如MUL,5个) 排序周期恰逢RETI类指令(要再跟指令,若是MUL,8个)
2020/5/15
12
5.2.2 中断响应过程 CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
P0=ScanNum;
}
DelayMs(500);
}
2020/5/15
15
❖【例5-2】如图所示,编写程序实现:系统上电后,数码管 显示“P”。按下S0键则数码管进行加计数,S1键则数码管进 行减计数。计数值显示在数码管上。
void t0Isr() interrupt 1
{ if(Flag0==0)Flag0=1; Flag1 = 0;
相关文档
最新文档