微机原理及单片机应用技术第8章 80C51的中断与定时计数器
80c51单片机定时器计数器工作原理
80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
中断系统与定时计数器基本概念与应用
5.1.2 中断源和中断控制寄存器
⒈ 中断源
中断源是指能发出中断请求,引起中断的 装置或事件。
80C51单片机的中断源共有5个,其中2个为 外部中断源,3个为内部中断源:
⑴ INT0:外部中断0,中断请求信号由P3.2输入。 ⑵ INT1:外部中断1,中断请求信号由P3.3输入。 ⑶ T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 ⑷ T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 ⑸ 串行中断:包括串行接收中断RI和串行发送中断TI。
5.1.1 中断概述
⒈ 什么叫中断?
CPU暂时中止其正在执行的程序,转去执行请求中断的 那个外设或事件的服务程序,等处理完毕后再返回执行 原来中止的程序, 叫做中断。
⒉ 为什么要设置中断?
⑴ 提高CPU工作效率 ⑵ 具有实时处理功能 ⑶ 具有故障处理功能 ⑷ 实现分时操作
中断功能强弱是计算机性能优劣
功能
D7 D6 D5 —— — —— —
—— —
D4 D3 D2 ——— ———
———
D1 TI 99H 串行发送 中断标志
D0 RI 98H 串行接收 中断标志
① TI —— 串行口发送中断请求标志 ② RI —— 串行口接收中断请求标志
中断系统和定时计数器基 本概念和应用
⑵ 中断允许控制寄存器IE
的重要标志
中断系统和定时计数器基 本概念和应用
中断涉及的几个环节 ①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回
中断系统和定时计数器基 本概念和应用
CPU识别中断申请的依据: CPU 在每个机器周期的S5P2期间,会自动
80C51的定时计数器原理与应用
ORG 0000H
LJMP MAIN ORG 000BH
;跳转到主程序
;T0的中断入口地址
LJMP DVT0
;转向中断服务程序
ORG 0100H
MAIN:MOV TMOD,#01H ;置T0工作于方式1
MOV TH0,#0D8H
;装入计数初值
MOV TL0,#0F0H
方式,低四位用于T0,高四位用于T1。其格式如下:
第五页,编辑于星期三:四点 十二分。
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或 TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软 件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能 启动定时/计数器工作。即此时定时器的启动条件,加上了或引脚
中断引脚上正脉冲的宽度。
第九页,编辑于星期三:四点 十二分。
二、方式1
方式1的计数位数是16位,由TL0作为低8位、TH0作 为高8位,组成了16位加1计数器 。
TCON
申请 中断
TF1 D7
TR1
溢出
TF0
TH0 TL0
TR0
8位 8位
D0
1 0 &
≥1
T0引脚
机器周期 1
INT0引脚
TMOD
1 M0 D0 0 M1
5、定时/计数器的4种工作方式各有何特点? 6、要求定时/计数器的运行控制完全由TR1、TR0确定和完全由、 高低电平控制时,其初始化编程应作何处理?
第十七页,编辑于星期三:四点 十二分。
7、当定时/计数器T0用作方式3时,定时/计数器T1可以工作在何种
方式下?如何控制T1的开启和关闭?
80C51中断系统和定时器堪称经典必看
此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
4.2 定时器/计数器
4.1 中断系统
4.1.3 中断控制 1.中断允许寄存器IE
例:同时打开外部中断0和串行口中断,可设置为: 方法1:MOV IE,#10010001B 方法2:SETB EA
SETB ES SETB EX0 方法3:ORL IE,#10010001B
4.1 中断系统
4.1.3 中断控制 2.中断优先级寄存器IP 功能:
TMOD和TCON,定时/计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。
1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按
位寻址。其格式和各位的含义如下:
4.2 定时器/计数器
4.2.4 定时器/计数器控制
理解中断概念能正确描绘单片机中断响应过程熟记80c51单片机的5个中断源及其中断入口地址能按要求正确设置特殊功能寄存器ieiptconscon和tmod熟悉中断优先控制的方法能正确描绘定时计数器的4种工作方式重点掌握方式1方式2的应用学会定时计数初值的计算能读懂教材中的控制实例学会编写同等难度的中断定时计数程序第2章单片机的指令系统第四章80c51中断系统和定时器4
4.2 定时器/计数器
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
第5章80C51的中断系统及定时计数器(2)定时计数器概要
2018/11/2
数数源程序的 数数中断的四 四要素 要素
0000H MAIN 000BH DVT0 0100H TMOD,#01H ;置T0方式1 TH0,#0D8H;装入计数初值 TL0,#0F0H ET0 ;T0开中断 EA ;CPU开中断 TR0 ;启动T0 $ ;等待中断
求计数初值X: N=24 X=256-24=232=E8H 应将E8H送入TH0和TL0中
2018/11/2
20
主程序
ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H 中断服务程序 MAIN:MOV TMOD,#06H ;置T0计数方式2 MOV TH0,#0E8H;装入计数初值 DVT0:SETB P1.0 MOV TL0,#0E8H NOP SETB ET0 ;T0开中断 NOP SETB EA ;CPU开中断 CLR P1.0 SETB TR0 ;启动T0 RETI SJMP $ ;等待中断 END
2018/11/2 21
定时应用
系统时钟为6MHz时,各种方式下的最长定时的计算: 由最长定时=2n×Tcp
,而Tcp=
2s
方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 晶振为12 MHz时,Tcy为1µS。最长可定时65ms 定时时间较小时(小于65ms)。可直接采用方式1完成定 时任务。 两种方式对溢出作出反应:查询、中断
计数范围:1~65536
计数初值要分成2个字节分别送入TH0、TL0
13
2018/11/2
80C51单片机的中断与定时PPT
机器周期。
(2)定时中断 定时中断是为满足定时或计数的需要设置的。80C51单片机
共有2个定时器/计数器中断源,即T0和T1。 定时器/计数器内部的计数结构对脉冲信号进行计数,当计
(c)ET0、ET1:定时器/计数器中断允许控制位 ET0、ET1=0,禁止定时(或计数)中断; ET0、ET1=1,允许定时(或计数)中断;
(d)ES:串行中断允许控制位 ES=0,禁止串行中断; ES=1,允许串行中断;
注意:
1)80C51单片机复位后(与I中E)断=控00制H,有即关中的断控系制统位处共于有禁5位止:状态
6单片机的中断与定时系统615中断请求的撤消中断响应后tcon或scon中的中断请求标志应及时清除否则就意味着中断请求依然存在弄不好就会造成中断的重复查询和响应因此必须在中断响应后及时清除中断请求信号即将中断请求标志位清0
第5章 80C51单片机的中断与定时
教学基本要求: (1)了解单片机系统有关中断的概念; (2)了解单片机定时器/计数器的功能; (3)熟悉与中断控制有关的控制寄存器的功能及用法; (4)熟悉与定时/计数控制有关的控制寄存器功能及用法; (5)掌握单片机中断系统的应用方法; (6)掌握单片机定时器/计数器的应用方法; 教学重点: (1)单片机中断系统的中断服务流程; (2)单片机定时器/计数器的工作方式0、2; 教学难点: (1)中断采样、中断查询、中断响应、中断撤消
对于电平方式的外中断请求,采样为高→IE0(IE1)→0, 为低→IE0(IE1)→1;
对于脉冲方式外中断请求,采样先高后低→IE0(IE1)→1 ;否则IE0(IE1)→0。
80C51单片机的定时计数器
返回
2,模式1 :16位计数器模式(以T1为例).
启动控制 震荡器 1/12 C/T=0
T1 引脚 TR1 GATE INT1
C/T=1
16位加1计数器
TL1
TH1
(8位)
(8位)
TF1 中断
注:计数器在每个机器周期采样一次从T1引脚进入的外部计数脉冲,由于检 测到一次从高到低的负跳变需要两个机器周期,所以外部计数脉冲的频率应
T0 引脚 TR0 GATE INT0
Fosc/12 TR1
C/T=1
控制
TL0
TF0 中断
TH0
TF1 中断
模式3定时器T0的结构图
模式3时T0(TH0,TL0)及T1的各自特点: 1 TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式; 2 TH0分别借用了定时器T1的TR1和TF1为自己服务,使TH0能象
设置TMOD 设置计数器初值
重装计数器初值
开中断 启动计数 主程序流程图
口线求反 RETI
中断处理子程序流程图
(1)主程序设计 初始化指令段 采用定时器中断方式工作。包括定时器初始化和中断系统初 始化,主要是对寄存器IP、IE、TCON、TMOD的相应位进行 正确的设置,并将计数初值送入定时器中。 其他工作程序 任意指令段,本例中用一条转至自身的短跳转指令来代替。 (2)中断服务子程序设计 中断服务子程序除了完成所要求的产生方波的工作之外,还 要注意将计数初值重新装入定时器。
小于fosc/24
对外部输入信号的要求,图中,Tcy为机器周期。
对外部计数输入信号的要求
13
3,模式2 : 8位自动重装初值模式
由TL1做计数器,TH1做初值寄存器, 工作前TL1,TH1分别预置相同的初值 TL1计数时, 当产生溢出置位TF1的同时, 将TH1中的初值自动重装入TL1。 TL1继续计数,此模式主要用于做串行口波特率发生器。
80C51的中断系统及定时计数器
中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2019/12/24
8
1、外部中断0(P3.2),可由IT0(TCON.0)选择其 为低电平有效还是下降沿有效。当CPU检测到P3.2 引脚上出现有效的中断信号时,中断标志 IE0(TCON.1)置1,向CPU申请中断。
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
2019/12/24
23
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2019/12/24
26
中断服务子程序: INITT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI
2019/12/24
2019/12/24
9
4、TF1(TCON.7),片内定时/计数器T1溢出中 断请求标志。当定时/计数器T1发生溢出时,置位 TF1,并向CPU申请中断。
5、RI(SCON.0)或TI(SCON.1),串行口中断请 求标志。当串行口接收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI,向CPU 申请中断。
80C51单片机的定时计数器
80C51单片机的定时计数器定时计数器的控制寄存器<>定时器/计数器的工作方式1.定时器/计数器的工作方式0(1)电路逻辑结构当图6-7中的计数器=13位(TH的8位与TL低5位)即得方式0的逻辑电路图。
(2)工作方式0的特点①两个定时器/计数器T0、T1均可在方式0下工作;②是13位的计数结构,其计数器由TH全部8位和TL的低5位构成(高3位不用);③当产生计数溢出时,由硬件自动给计数溢出标志位TF0(TF1)置1,由软件给TH,TL重新置计数初值。
应说明的是,方式0采用13位计数器是为了与早期的产品兼容,计数初值的高8位和低5位的确定比较麻烦,所以在实际应用中常由16位的方式1取代。
2.定时器/计数器的工作方式1(1)电路逻辑结构方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。
其逻辑电路如图6-11所示。
(2)工作方式1的特点①两个定时器/计数器均可在方式1下工作;②是16位的计数结构,其计数器由TH的全部8位和TL的全部8位构成;③当产生计数溢出时,由硬件自动给计数溢出标志位TF0(TF1)置1,由软件给TH,TL重新置计数初值。
(3)计数/定时的范围在方式1下,当为计数工作方式时,由于是16位的计数结构,所以计数范围是:1~65536。
当为定时工作时,其定时时间=(216-计数初值)×机器周期,例如:设单片机的晶振频率f=12MHz,则机器周期为1μs,从而定时范围:1μs~65536μs。
因为80C51单片机的定时计数器是可编程的。
因此,在利用定时/计数器进行定时计数之前,先要通过软件对他进行初始化,初始化一般应进行如下工作:①设置工作方式,即设置TMOD中的各位GATE、C/T、M1M0。
②计算加1计数器的计数初值COUNT,并将计数初值COUNT 送入TH、TL中。
计数方式:计数值= 2n – COUNT ,计数初值:COUNT= 2n –计数值。
《单片机原理与应用设计》80C51单片机中断系统及定时器计数
举例
80C51的中断控制
例7-2:设(IP)=06H,如果5个中
断同时产生,那么中断响应的次序
是怎样的?
解:IP=00000110B
对应PX1=1;定时/计数器0(T0)优先
级设定位
PT0=1;外部中断 优先级设定位
INT1
两个中断源为同级中断,在同级中断
中按照自然优先级顺序T0> ;
INT1
TR0
IE1
80C51的中断请求
定时器Timer
D2
IT1
D1
D0
IE0
IT0
外部中断Interrupt
• ITx—Interrupt Trigger,外部中断触发方式控制位:
• IEx—Interrupt External,外部中断请求标志位: 外部中断有两种触发方式,通过设置IT0、IT1实现。
(1)IE0,外部中断INT0中断请求标志位,IE0=1 (1)设置ITx=0时——电平触发方式,低电平有效。
时,表示INT0向CPU请求中断。
(2)IE1,外部中断INT1中断请求标志位,IE1=1
(2)设置ITx=1时——为边沿触发方式,下降沿有效。
时,表示INT1向CPU请求中断。
若P3.2、P3.3上有有效的中断信号,硬件置位
(2)INT1(P3.3),外部中断1请求信号输入引脚,低电平
或脉冲下降沿有效,可由IT1选择。当CPU检测到P3.3引脚上
出现有效的中断信号时,中断标志IE1置1,向CPU申请中断。
80C51的中断源
基本型80C51单片机的5个中断源
分为三类:外部中断、定时器/计数
器中断、串行口中断。
外部中断
3.2 80C51单片机的定时器
§3.2.1 80C51单片机定时器/计数器
概述
80C51系列单片机典型产品 80C51等有两个16位定时器/计数器T0,T1; 80C52等单片机有三个16位定时器/计数器 T0、T1和T2。 它们都可以用作定时器或外部事件计数 器。
§3.2.1 80C51单片机定时器/计数器
一、定时器/计数器T0、T1的结构原理 二、定时器/计数器T0、T1的工作方式 三、定时器/计数器T2 四、看门狗(WTD)
(3)数据寄存器:TH2,TL2
两个8位寄存器构成16位计数器,可供 CPU以字节方式读写。
(4)捕捉寄存器:RCAP2H、RCAP2L
用于捕捉计数器TH2、TL2的计数状态或 预置计数初值。
三、定时器/计数器T2
2、T2的功能选择:定时/计数
(1)C/T2=0,选择定时,每个机器周期, T2的内容增1。 (2) C/T2=1,选择计数,当T2(P1.0)引脚有 一个负跳变,T2内容增1,计数脉冲频率 不得超过振荡器频率的1/24。
二、定时器/计数器T0、T1的工作方式
1、工作方式0
在方式0应用时应注意以下几点: ① 因计数器是做加1计数的,所以时 间常数初值应用补码装入。 ② 方式0为13位计数器,应正确安排 13位二进制码。 ③ 如果要重复定时或计数,则须重新 设置时间常数初值。
二、定时器/计数器T0、T1的工作方式
工作方式1
简述
80C51单片机 定时器T0有四种工作方式: 方式0、方式1、方式2和方式3。 定时器T1有三种工作方式: 方式0、方式1、方式2。
二、定时器/计数器T0、T1的工作方式
1、工作方式0 当M1M0两位为00时,定时器/计 数器选为工作方式0,它是一个13位 的计数器,由TLX的低5位和THX组成, 结构如下图所示。
第5章 80C51单片机的中断与定时
中断控制寄存器软件置1:中断总允许,具体中断是否被允许受其具体中断位是否为1控制软件清0:中断总禁止,禁止所有中断,无论其它具体中断位是1还是0EX0(EX1)—外部中断允许控制位软件置1:允许外部中断0、外部中断1产生中断软件清0:禁止外部中断0、外部中断1产生中断EX0(EX1)—外部中断允许控制位软件置1:允许外部中断0、外部中断1产生中断软件清0:禁止外部中断0、外部中断1产生中断ET0(ET1)—定时/计数器中断允许控制位软件置1:允许定时/计数器0、定时/计数器1产生中断软件清0:禁止定时/计数器0、定时/计数器1产生中断ES—串行中断允许控制位软件置1:允许串行中断产生中断软件清0:禁止串行中断产生中断2、定时器控制寄存器(TCON)—可位寻址的寄存器01硬件置1:当采样到INT 0(INT 1)端出现有效中断请求时,硬件自动置1 硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0IT0(IT1)—外部中断请求信号方式控制位软件置1:代表的是脉冲触发方式,脉冲下降沿时产生中断软件清0:代表的是电平触发方式,低电平时产生中断TF0(TF1)—计数溢出标志位工作于中断方式时:作中断请求位硬件置1:计数器溢出时,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0 工作于查询方式时:作查询状态位硬件置1:计数器溢出时,硬件自动置1软件清0:查询有效后要用软件清0硬件置1:发送完一桢串行数据后,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0RI —串行口接收中断请求标志位硬件置1:接收完一桢串行数据后,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0查询中断中断向量中断 向量PX0—外部中断0优先级别设置位PX1—外部中断1优先级别设置位PT0—定时/计数器0优先级别设置位PT1—定时/计数器1优先级别设置位PS —串行中断优先级别设置位定时/计数器的控制寄存器01工作于中断方式时:作中断请求位硬件置1:计数器溢出时,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0 工作于查询方式时:作查询状态位硬件置1:计数器溢出时,硬件自动置1软件清0:查询有效后要用软件清0TR0(TR1)—定时器运行控制位软件置1:启动定时/计数器工作软件清0:停止定时/计数器工作GATE —门控位软件置1:以外部中断请求信号INT0(INT 1)和运行控制位TR 0(TR 1)联合启动定时器(通常使用于脉冲宽度的检测)软件清0:以运行控制位TR 0(TR 1)启动定时器(正常应用)C/T —定时方式/计数方式选择位软件置1:工作在计数方式 软件清0:工作在定时方式M 1 M 0—工作方式选择位M 1 M 0=00:方式0 M 1 M 0=01:方式1 M 1 M0=10:方式2 M 1 M 0=11:方式33、中断允许控制寄存器(IE )—可位寻址的寄存器 软件置1:中断总允许,具体中断是否被允许受其具体中断位是否为1控制 软件清0:中断总禁止,禁止所有中断,无论其它具体中断位是1还是0ET 0(ET 1)—定时/计数器中断允许控制位软件置1:允许定时/计数器0、定时/计数器1产生中断 软件清0:禁止定时/计数器0、定时/计数器1产生中断五、工作方式0-3的举例1 方式0例:设单片机晶振频率Fosc=6MHz ,使用定时器1以方式0产生周期为500us 的等宽正方波脉冲,并由P1.0输出。
《单片机微型计算机原理与接口技术》第八章 80C51单片微机的系统扩展原理与接口技术
②开始数据传送 在串行时钟线(SCL)保持高电平的情况下,串行数据线(SDA )上发生一个由高电平到低电平的变化作为起始信号(START) ,启动I2C 总线。I2C总线所有命令必须在起始信号以后进行。 ③停止数据传送 在串行时钟线(SCL)保持高电平的情况下,串行数据线 (SDA)上发生一个由低电平到高电平的变化,称为停止信号( STOP)。这时将停止I2C 总线上的数据传送。 ④数据有效性 在开始信号以后,串行时钟线(SCL)保持高电平的周期 期间,当串行数据线(SDA)稳定时.串行数据线的状态表示数 据线是有效的。需要一个时钟脉冲。 每次数据传送在起始信号(START)下启动,在停止信号 (STOP)下结束。 在I2C总线上数据传送方式有两种,主发送到从接收和从发 送到主接收。它们由起始信号(START)后的第一个字节的最低 位(即方向位R/W)决定。
①串行数据线(MISO、MOSI) 主机输入/从机输出数据线(MISO)和主机输出/ 从机输入数据线(MOSI),用于串行数据的发送和接收。 数据发送时.先传送MSB(高位),后传送LSB(低位)。 在SPI设置为主机方式时,MISO线是从机数据输入线 ,MOSI是主机数据输出线;在SPI设置为从机方式时, MISO线是从机数据输出线,MOSI是从机数据输入线。
8.1.1外部并行扩展原理
单片微机是通过芯片的引脚进行系统扩展的。 80C51系列带总线的单片微机芯片引脚可以构成图8-1所 示的三总线结构.即地址总线(AB)数据总线(DB)和控制总 线(CB)。具有总线的外部芯片都通过这三组总线进行扩展。 (1)地址总线(AB) 地址总线由单片微机P0口提供 低8位地址A0~A7,P2口提 供高8位地址A8~A15。P0口是地址总线低8位和8位数据总线复 用口,只能分时用作地址线。故P0口输出的低8位地址A0~A7必 须用锁存器锁存。 锁存器的锁存控制信号为单片微机ALE引脚输出的控制信 号。在ALE的下降沿将P0口输出的地址A0~A7锁存。P0、P2口 在系统扩展中用做地址线后便不能作为一般I/O口使用。 由于地址总线宽度为16位,故可寻址范围为64 KB。 (2)数据总线(DB) 数据总线由P0口提供,用D0~D7表示。P0口为三态双向
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主程序A 断点
……
响应
返回
RETI 中断服务程序B
中断源 中断请求 中断服务 中断返回 中断系统
2021/1/15
2
注意 中断与子程序调用的不同点
● 子程序调用是固定的,专用指令,位置固定。 ● 中断的执行是随机的,没有调用指令,任何位置。
中断工作方式的优点: 1)外设与CPU可并行工作
CPU与多个外设同时工作,互不干扰 2)实现了实时处理、实时控制
• 外中断0:0003H • 定时器0:000BH • 外中断1:0013H • 定时器1:001BH • 串口 : 0023H
8.2 80C51单片机中断处理过程
8.2.1 中断响应条件和时间 中断响应条件
有中断请求 相应的中断允许位为1 CPU开中断(即EA=1)
遇下面情况之一将不被响应(此间中断条件失效,中断丢失)
6
中断优先级控制
中断优先级由IP控制(1,高级;0,低级)
76543210
IP
PS PT1 PX1 PT0 PX0 字节地址:B8H
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
PT1:T1中断优先级 PS :串口中断优先级
同一优先级的自然顺序: 自高至低:INT0、TO、INT1、T1、串口。
2021/1/15
5
中断允许控制
中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
76543210
IE EA
ES ET1 EX1 ET0 EX0 字节地址:A8H
EX0:外中断0允许 ET0:T0中断允许 EX1:外中断1允许
ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许
2021/1/15
NOP
NOP
SETB P3.0
MOV P1,#0FFH ;置P1口为输入
MOV A,P1
;输入数据
MOVX @DPTR,A ;存入数据存储器
INC DPTR
;修改数据指针,指向下一个单元
……
POP ACC
;恢复现场
POP PSW
RETI
8.2.4 中断程序举例
【例5-1】单外部中断源示例
P1.7 ┆ ┆
注意
不能用RET代替RETI 中断服务程序中PUSH和POP必须成对使用
2021/1/1514Fra bibliotekP1.7
D7
┆
┆
┆
┆
P1.0
D0
80C51
P3.0
CLK
VCC D
74LS74
程序如下:
INT0
Q
CLK
ORG 0000H
START:LJMP MAIN ;跳转到主程序
ORG 0003H
LJMP INTO ;转到中断服务程序
CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2021/1/15
12
ORG 0000H LJMP MAIN
ORG 0003H LJMP INT0 ;转外中断0
正在处理同级或高级中断 当前查询周期不是所执行指令的最后一个机器周期 正在执行RETI或访问IE或IP 的指令
2021/1/15
10
中断响应时间
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个)!
受阻时要附加3~5个机器周期(无同级或高级中断正进行)
查询周期不是当前指令的最后机器周期(如MUL,+3) 查询周期恰逢RETI类指令(且后跟MUL指令+5)
2021/1/15
11
8.2.2 中断响应过程
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
ORG 000BH ;没有用定时器0中断,在此放一条RETI ;万一 “不小心”产生了中断,
RETI ; 也不会有太大的后果。
ORG 0030H MAIN:…… ;主程序开始
8.2.3 中断返回
中断服务程序最后指令必须是RETI,其功能:
将断点从堆栈弹送PC,CPU从原断点继续执行 将相应优先级状态触发器清0,恢复原来工作状态
P1.0
80C51
P3.0
INT0
D7 ┆ ┆ D0
CLK
VCC D
74LS74
Q
CLK
主程序:
ORG 0000H START:LJMP MAIN
ORG 0003H LJMP INTO ORG 0030H MAIN:CLR IT0 ;电平 SETB EA SETB EX0 MOV DPTR,#1000H ……
ORG 0030H ;主程序
MAIN:CLR IT0 ;设为电平触发方式
SETB EA
; CPU开放中断
SETB EX0 ;允许Int0中断
MOV DPTR,#1000H ;设置数据区地址指针
ORG 0200H ; 中断服务程序
INT0:PUSH PSW
;保护现场
PUSH ACC
CLR P3.0
;由P3.0输出0
CPU能及时处理外部信息,如数据采集,监控 3)能及时处理随机故障
8.1.1 80C51中断系统的结构
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
2021/1/15
7
中断优先级遵循的原则
几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。
状态触发器的复位由中断返回指令RETI控制。
2021/1/15
8
中断服务程序入口地址和优先级
SCON
ES 1
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
2021/1/15
硬件查询
自
高
然
级
1
优
先
级 中断入口
中断源
自
低
0
然
级
优
先
级 中断入口
中断源
4
8.1.2 80C51的中断源
中断源
外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)