微机原理及单片机应用技术第8章 80C51的中断与定时计数器
80c51单片机定时器计数器工作原理
80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
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单片机习题与解答单片机作为一种嵌入式计算机芯片,具有体积小、功耗低、性能高的特点,被广泛应用于各个领域。
本文将针对80C51单片机进行一些常见的习题及其解答,旨在帮助读者更好地理解和掌握该单片机的应用。
1. 习题一:如何将80C51的IO口设为输入模式?解答:在80C51的寄存器中,P1是一个8位的数据口,可以通过以下操作将其设为输入模式:```assemblyMOV P1, #0FFH ;将P1口设置为输入模式```2. 习题二:如何用80C51实现定时器功能?解答:80C51具有一个可编程的定时器/计数器,可以通过以下步骤实现定时器功能:- 配置定时器的控制寄存器,选择定时器模式和工作方式;- 设置定时器的初始值;- 启动定时器;- 在定时器溢出时中断或轮询检测。
3. 习题三:如何使用80C51的串口通信功能?解答:80C51具有一个串行通信口(UART),可以通过以下步骤使用串口通信功能:- 配置串口控制寄存器,设置通信参数,如波特率、数据位数、停止位等;- 发送数据时,将要发送的数据写入SBUF寄存器;- 接收数据时,通过中断或轮询的方式读取SBUF寄存器中的数据。
4. 习题四:80C51的中断优先级如何设置?解答:80C51的中断有两级优先级:高优先级和低优先级。
优先级高的中断在发生时会立即被响应,而优先级低的中断则需要等待高优先级中断完成后才能响应。
中断优先级可通过设置中断控制寄存器来实现。
5. 习题五:如何通过80C51实现脉冲宽度调制(PWM)输出?解答:通过80C51的定时器功能和IO控制,可以实现脉冲宽度调制输出。
具体步骤如下:- 配置定时器为PWM模式;- 设置定时器的初始值和占空比;- 配置IO口,将其设为输出模式;- 当定时器计数值超过设定的脉冲宽度时,将IO口置1,否则置0。
6. 习题六:如何在80C51上实现ADC功能?解答:80C51本身没有ADC模块,但可以通过外部ADC芯片来实现模数转换功能。
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单片机的中断与定时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。
微机原理及单片机应用技术第8章 80C51的中断与定时计数器
定时/计数器的结构
T1引脚
TH1
TL1
TH0
T0引脚
TL0
机器周 期脉冲
TH1、TL1
内部总线
TH0、TL0
TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0
TCON
TMOD
TCON
外部中断相关位
T1方式
T0方式
TMOD
2020/10/27
21
计数脉冲源
定时/计数器的工作原理
76543210
TCON TF1 TR1 TF0 TR0
字节地址:88H
TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。 用软件设置TFx可产生同硬件置1或清0同样的效果。
TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2020/10/27
2020/10/27
24
定时/计数器的控制示意图
M1M0 工作方式
说
明
00 方式0 13位定时/计数器
01 方式1 16位定时/计数器
10 方式2 8位自动重装定时/计数器
11
方式3
T0分成两个独立的8位定时/计数器; T1此方式停止计数
注意:TMOD不能进行位寻址
2020/10/27
26
控制寄存器TCON
第八章 80C51的中断系统与定时计数器
8.1 80C51单片机的中断系统 8.2 80C51中断处理过程 8.3 80C51单片机的串行口
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
80C51的定时、计数器
工作方式3将 分成为两个独立的 位计数器TL0和TH0 。 分成为两个独立的8位计数器 工作方式 将T0分成为两个独立的 位计数器 和
5.3.4 定时 计数器用于外部中断扩展 定时/计数器用于外部中断扩展
扩展方法是,将定时 计数器设置为计数器方式 计数器设置为计数器方式, 扩展方法是,将定时/计数器设置为计数器方式,计数初值 设定为满程,将待扩展的外部中断源接到定时/计数器的外部 设定为满程,将待扩展的外部中断源接到定时 计数器的外部 计数引脚。从该引脚输入一个下降沿信号,计数器加1后便产 计数引脚。从该引脚输入一个下降沿信号,计数器加 后便产 生定时/计数器溢出中断 计数器溢出中断。 生定时 计数器溢出中断。 例如,利用 扩展一个外部中断源 扩展一个外部中断源。 例如,利用T0扩展一个外部中断源。将T0设置为计数器方 设置为计数器方 按方式2工作 工作, 的初值均为0FFH,T0允许中 式,按方式 工作,TH0、TL0的初值均为 、 的初值均为 , 允许中 开放中断。 断,CPU开放中断。其初始化程序如下: 开放中断 其初始化程序如下: MOV TMOD,#06H 为计数器方式2 , ;置T0为计数器方式 为计数器方式 MOV TL0,#0FFH , ;置计数初值 MOV TH0,#0FFH , SETB TR0 启动T0工作 ;启动 工作 SETB EA ;CPU开中断 开中断 SETB ET0 允许T0中断 ;允许 中断
GATE:门控位。GATE=0时,只要用软件使 :门控位。 = 时 只要用软件使TCON中的 中的 TR0或TR1为1,就可以启动定时 计数器工作;GATA=1时, 计数器工作; 或 为 ,就可以启动定时/计数器工作 = 时 要用软件使TR0或TR1为1,同时外部中断引脚或也为高电 要用软件使 或 为 , 平时,才能启动定时/计数器工作 计数器工作。 平时,才能启动定时 计数器工作。即此时定时器的启动条 加上了或引脚为高电平这一条件。 件,加上了或引脚为高电平这一条件。 :定时 计数模式选择位。 定时/计数模式选择位 为定时模式; 定时 计数模式选择位。 =0为定时模式; =1 为定时模式 C/T C /T C /T 为计数模式。 为计数模式。 M1M0:工作方式设置位。定时 计数器有四种工作方式, 计数器有四种工作方式, :工作方式设置位。定时/计数器有四种工作方式 进行设置。 由M1M0进行设置。 进行设置
n第八章_80C51单片机的应用系统实例(1)
第八章
80C51单片机的应用系统 实例
② 负电压发生电路主要产生一个-5 V的 电压,为仪表放大器U4(INA118)提供负 电源。电路由U7(7660)和电容C5、C6组 成。 ③仪表放大器U4(INA118)可将压力传 感器桥路输出的毫伏(mV)级电压放大,以 适应VF变换器U5(AD654)的需要。电阻 R7是调节仪表放大器的放大倍数用的。
第八章
80C51单片机的应用系统 实例
图8-2 主机板电路原理图
第八章
80C51单片机的应用系统 实例
(2) 信号电路板 信号电路板电路原理图如图8-3所示。它 通过插座W1与主机板联接,通过插座W与 压力传感器相联,通过插座W′与流速传感 器相联。其中包含压力信号调理电路、流 速信号调理电路和模拟电源控制电路。
第八章
80C51单片机的应用系统 实例
图8-3 信号电路板电路原理图
第八章
80C51单片机的应用系统 实例
(3) 通信接口板电路 通信接口板电路的原理图如图8-4所示。 当系统从井下采集完数据回到地面或进行 标定实验时,该板用插座W1’与主机板上的 W1联接。
第八章
80C51单片机的应用系统 实例
第八章
80C51单片机的应用系统 实例
2) 流速数据采集子程序 设定T0为定时器,定时时间为100 ms/次,采集时 间为6 s=100 ms/次×60次;设定 T1 为计数方 式,所计流量脉冲写入片外RAM中。
第八章
LIU: MOV MOV MOV MOV MOV
80C51单片机的应用系统 实例
第八章
8.1.1
80C51单片机的应用系统 实例
设计目标 本系统使用89C51作为控制芯片,对来自压力 及流速传感器的信号进行采集,并把采集到的数 据存放在数据存储器中。系统可以工作在标定和 实际测量两种工作状态下。标定状态是为了修正 系统误差而在测量前进行一组标准压力和流速数 据的测量。具有可与通用计算机联接的串行通信 接口。在等待状态时,系统工作在低功耗方式。 系统具有工作状态显示系统,可以显示标定、测 量、通信、等待等不同的工作状态。
AT80C51的工作原理
AT80C51的工作原理AT80C51是一款8位微控制器,其工作原理如下:1. 寄存器:AT80C51包含了多个内部寄存器,用于存储数据和控制微控制器的操作。
这些寄存器可以通过特定的地址访问,并且用于存储输入/输出端口、时钟控制、中断向量等信息。
2. CPU:AT80C51的中央处理器(CPU)负责执行指令和处理数据。
它包含一个累加器(ACC)和多个通用寄存器(R0-R7),用于进行算术和逻辑运算。
CPU通过从寄存器中读取数据、执行指令、写入结果来完成计算。
3. 存储器:AT80C51具有内部存储器和外部存储器接口。
内部存储器包括程序存储器(ROM)和数据存储器(RAM)。
ROM用于存储程序指令,RAM用于存储临时数据和变量。
外部存储器接口可以连接额外的存储器设备,以扩展存储容量。
4. 时钟:AT80C51使用时钟来驱动CPU和其他部件的操作。
时钟可以通过内部时钟源或外部时钟源提供。
时钟速度决定了AT80C51的工作频率和指令执行速度。
5. 输入/输出(I/O)端口:AT80C51具有多个可编程输入/输出端口。
这些端口可以连接外部设备,如传感器、显示器、键盘等。
通过读取和写入I/O端口的状态,AT80C51可以与外部设备进行通信。
6. 中断:AT80C51支持中断功能,可以响应外部信号的触发。
当发生中断信号时,CPU会立即暂停当前的任务,并跳转到对应的中断处理程序。
中断可以用于实时响应外部事件,提高系统的实时性能。
总结起来,AT80C51的工作原理是通过CPU执行指令,从寄存器和存储器中读取数据,进行计算和处理,并与外部设备进行通信。
时钟驱动整个系统的运行,而中断机制能够实现实时响应外部事件。
《单片机微型计算机原理与接口技术》第八章 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口为三态双向
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的中断控制
例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个中断源
分为三类:外部中断、定时器/计数
器中断、串行口中断。
外部中断
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继续计数,此模式主要用于做串行口波特率发生器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主程序A 断点
……
响应
返回
RETI 中断服务程序B
中断源 中断请求 中断服务 中断返回 中断系统
2020/7/29
2
8.1.2 80C51的中断源
中断源
外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2020/7/29
5
中断允许控制
74LS74
Q
CLK
主程序:
ORG 0000H START:LJMP MAIN
ORG 0003H LJMP INTO ORG 0030H MAIN:CLR IT0 ;电平 SETB EA SETB EX0 MOV DPTR,#1000H ……
2020/7/29
17
中断服务程序:
ORG 0200H
INT0:PUSH PSW
18
【例】 多外部中断源示例
中断服务程序:
INT0
1
+5V
INT1
1
1
1
80C51
8.2 80C51单片机中断处理过程
8.2.1 中断响应条件和时间 中断响应条件
有中断请求 相应的中断允许位为1 CPU开中断(即EA=1)
遇下面情况之一将不被响应(此间中断条件失效,中断丢失)
正在处理同级或高级中断 当前查询周期不是所执行指令的最后一个机器周期 正在执行RETI或访问IE或IP 的指令
D7
┆
┆
┆
┆
P1.0
D0
80C51
P3.0
CLK
VCC D
74LS74
程序如下:
INT0
Q
CLK
ORG 0000H
START:LJMP MAIN ;跳转到主程序
ORG 0003H
LJMP INTO ;转到中断服务程序
ORG 0030H ;主程序
MAIN:CLR IT0 ;设为电平触发方式
SETB EA
受阻时要附加3~5个机器周期(无同级或高级中断正进行)
查询周期不是当前指令的最后机器周期(如MUL,+3) 查询周期恰逢RETI类指令(且后跟MUL指令+5)
2020/7/29
11
8.2.2 中断响应过程
CPU响应中断过程
将相应优先级状态触发器置1(阻断后来同级或低级中断 ) 执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC ) 执行中断服务程序
; CPU开放中断
SETB EX0 ;允许Int0中断
MOV DPTR,#1000H ;设置数据区地址指针
ORG 0200H ; 中断服务程序
INT0:PUSH PSW
;保护现场
PUSH ACC
CLR P3.0
;由P3.0输出0
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 ┆ ┆
P1.0
80C51
P3.0
INT0
D7 ┆ ┆ D0
CLK
VCC D
几个中断同时申请,先响应高级的中断 正进行的中断服务,同级或低级中断不能对其 中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状 态触发器(用户不能寻址)。
状态触发器的复位由中断返回指令RETI控制。
2020/7/29
8
中断服务程序入口地址和优先级
• 外中断0:0003H • 定时器0:000BH • 外中断1:0013H • 定时器1:001BH • 串口 : 0023H
PUSH ACC
CLR P3.0 ;由P3.0输出0
NOP
NOP
SETB P3.0ቤተ መጻሕፍቲ ባይዱ
MOV P1,#0FFH ;置P1口为输入
MOV A,P1 ;输入数据
MOVX @DPTR,A ;存入数据存储器
INC DPTR ;修改数据指针,指向下一个单元
……
POP ACC
;恢复现场
POP PSW
RETI
2020/7/29
ORG 0030H MAIN:…… ;主程序开始
8.2.3 中断返回
中断服务程序最后指令必须是RETI,其功能:
将断点从堆栈弹送PC,CPU从原断点继续执行 将相应优先级状态触发器清0,恢复原来工作状态
注意
不能用RET代替RETI 中断服务程序中PUSH和POP必须成对使用
2020/7/29
14
P1.7
76543210
IP
PS PT1 PX1 PT0 PX0 字节地址:B8H
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
PT1:T1中断优先级 PS :串口中断优先级
同一优先级的自然顺序: 自高至低:INT0、TO、INT1、T1、串口。
2020/7/29
7
中断优先级遵循的原则
2020/7/29
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个)!
第八章 80C51的中断系统与定时计数器
8.1 80C51单片机的中断系统 8.2 80C51中断处理过程 8.3 80C51单片机的串行口
8.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
与子程序调用相似 但有本质的区别
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
76543210
IE EA
ES ET1 EX1 ET0 EX0 字节地址:A8H
EX0:外中断0允许 ET0:T0中断允许 EX1:外中断1允许
ET1:T1中断允许 ES :串口中断允许 EA :CPU中断允许
2020/7/29
6
中断优先级控制
中断优先级由IP控制(1,高级;0,低级)
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2020/7/29
12
ORG 0000H LJMP MAIN
ORG 0003H LJMP INT0 ;转外中断0
ORG 000BH ;没有用定时器0中断,在此放一条RETI ;万一 “不小心”产生了中断,
RETI ; 也不会有太大的后果。