AT89C51单片机中断系统

合集下载

(完整)AT89C51单片机的概述

(完整)AT89C51单片机的概述

AT89C51单片机的概述(1)AT89C51单片机的结构AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大[3]。

AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。

上图为AT89C51单片机的基本组成功能方块图.由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。

下面介绍几个主要部分。

外时钟源外部事件计数外中断控制并行口串行通信AT89C51 功能方块图(2)AT89C51的管脚说明ATMEL公司的AT89C51是一种高效微控制器.采用40引脚双列直插封装形式。

AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。

VCC:供电电压.GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。

AT89C51单片机说明

AT89C51单片机说明
此外,在将程序代码烧录至 8751 内部 EPROM、89C51 内部 FALSH 时,可以利用此引 脚来输入提供编程电压(8751 为 2lV、AT89C51 为 12V、8051 是由生产厂方一次性加工好)。
PSEN 此为"Program Store Enable"的缩写。访问外部程序存储器选通信号,低电平有效。在访
(60KB)
0FFFFH
1000H
外部 程序 存储器
0FFFH
EA=0 (4KB)
0000H
0FFFFH
外 部 数 据 存 储 器
(64KB)
0000H
图 2-2 只读程序存储器
图 2-3 外部数据存储器
直接地址
2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 位寻址区 27H 3F 3E 3D 3B 3C 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2B 2C 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 0F 0E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 1FH

AT89C51单片机简单介绍

AT89C51单片机简单介绍
• Flash存储器编程时,该引脚加上+12V的编 程允许电源Vpp,当然这必须是该器件是使 用12V编程电压Vpp。
简单的程序
• LOOP: SETB P10; 让P10灯灭 LCALL DELAY; //长跳转指令 (当遇到RET,则回到此下行程
序) CLR P10; //让灯P10亮 LCALL DELAY; AJMP LOOP; //绝对跳转到LOOP
AT89C51
AT89C51是美国ATMEL公司生产的低 电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器和 128bytes的随机存取数据存储器(RAM), 器件采用ATMEL公司的高密度、非易失性 存储技术生产,兼容标准MCS-51指令系统, 片内置通用8位中央处理器(CPU)和flash 存储单元。
FLASH编程和校验时,P1口作为第八位地址接收。
P2口
• P2口:P2口为一个内部上拉电阻的8位双向I/O口, P2口缓冲器可接收,输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,P2口的管脚被外 部拉低,将输出电流。这是由于内部上拉的缘故。 P2口当用于外部程序存储器或16位地址外部数据 存储器进行存取时,P2口输出地址的高八位。在 给出地址“1”时,它利用内部上拉优势,当对外 部八位地址数据存储器进行读写时,P2口输出其 特殊功能寄存器的内容。P2口在FLASH编程和校 验时接收高八位地址信号和控制信号。
放大器的输入和输出。该反向放大
器可以配置为片内振荡器。石晶振
荡和陶瓷振荡均可采用。如采用外
部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一
个二分频触发器,因此对外部时钟

AT89C51系列单片机介绍

AT89C51系列单片机介绍

3.1 AT89C51系列单片机介绍3.1.1 AT89C51系列基本组成及特性AT89C51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。

而这种单片机对开发设备的要求很低,开发时间也大大缩短。

AT89C51基本功能描述如下:AT89C51是一种低损耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。

它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。

AT89C51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。

只要程序长度小于4k, 四个I/O口全部提供给用户。

可用5V电压编程,而且写入时间仅10毫秒, 仅为8751/87C51 的擦除时间的百分之一,与8751/87C51的12V电压擦写相比, 不易损坏器件, 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。

AT89C51 芯片提供三级程序存储器锁定加密,提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。

另外,AT89C51 还具有MCS-51系列单片机的所有优点。

128×8 位内部RAM, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。

AT89C51有间歇、掉电两种工作模式。

间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU可根据工作情况适时地进入睡眠状态, 内部RAM和所有特殊的寄存器值将保持不变。

单片机AT89C51应用及结构功能

单片机AT89C51应用及结构功能

AT89C51单片机功能及应用和来源参考主要性能参数:与MCS-51产品指令系统完全兼容4K字节可重檫写Flash闪速存储器1000次檫写周期全静态操作:0HZ-24MHZ三级加密程序存储器128*8字节内部RAM32个可编程I/O口线2个16位定时/记数器6个中断源可编程串行UART通道低功耗空闲和掉电模式功能特性概述:AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/记数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/记数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作直到下一个硬件复位。

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89C51方框图引脚功能说明·Vcc:电源电压·GND:地·P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在FIash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

AT89C51单片机的基本结构和工作原理

AT89C51单片机的基本结构和工作原理

A T89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和(1)运算器运算器主要用来实现算术、逻辑运算和位操作。

其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。

ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

累加器是CPU使用最频繁的一个寄存器。

ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。

单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。

B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。

运算结果存于AB寄存器中。

(2)控制器控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。

AT89C51单片机说明

AT89C51单片机说明

EA A8H AF
ET2 ES
ET1 EX1 ET0 EX0
AD AC AB AA A9 A8 IE
A0H A7 A6 A5 A4 A3 A2 A1 A0 P2
SM0 SM1 SM2 REN TB8 RB8 TI
RI
98H 9F 9E 9D 9C 9B 9A 99 98 SCON
90H 97 96 95 94 93 92 91 90 P1
工作寄存器组3 18H
17H 工作寄存器组2
10H
0FH 工作寄存器组1
08H
07H 工作寄存器组0
00H
图 2-4 内部低 128 个字节地址 RAM 空间
第 3 页 共 9页
附录
AT89C51 单片机说明
寄存器符号 ACC B PSW SP
DPTR
P0 P1 P2 P3 IP IE TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON
IP 中断优先次序寄存器
位地址 - - BD BC BB BA B9 B8
符号
- - PT2 PS PT1 PX1 PT0 PX0
-(IP.7) :保留位,无定义。 -(IP.6) :保留位,无定义。 PT2(IP.5) :设定计时器 2 的优先次序(8052 使用)。 PS(IP.4) :设定串行端口的中断优先次序。 PT1(IP.3) :设定时/计时器 1 的优先次序。 PX1(IP.2) :设定外部中断 INT1 的优先次序。 PT0(IP.1) :设定计时器 0 的优先次序。 PX0(IP.0) :设定外部中断 INT0 的优先次序。
(60KB)
0FFFFH
1000H
外部 程序 存储器

单片机AT89C51

单片机AT89C51

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.主要特性:·8031 CPU与MCS-51 兼容· 4K字节可编程FLASH存储器(寿命:1000写/擦循环)· 全静态工作:0Hz-24KHz· 三级程序存储器保密锁定· 128*8位内部RAM· 32条可编程I/O线· 两个16位定时器/计数器·6个中断源· 可编程串行通道· 低功耗的闲置和掉电模式· 片内振荡器和时钟电路2.管脚说明:VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

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

AT89C51单片机中断系统5.1 中断的基本概念在CPU 与外设交换信息时,存在着一个快速的CPU 与慢速的外设之间的矛盾。

为解决这个问题,发展了中断的概念。

单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。

中断现象在现实生活中也会经常遇到,例如,你在看书——手机响了——你在书上作个记号——你接通电话和对方聊天——谈话结束——从书上的记号处继续看书。

这就是一个中断过程。

通过中断,你一个人在一特定的时刻,同时完成了看书和打电话两件事情。

用计算机语言来描述,所谓的中断就是,当CPU 正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求CPU 暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。

从中断的定义我们可以看到中断应具备中断源、中断响应、中断返回这样三个要素。

中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后应进行中断返回,返回被中断的地方继续执行原来被中断的程序。

5.2 MCS-51单片机的中断系统5.2.1 MCS-51单片机的中断源MCS-51单片机的中断源共有两类,它们分别是:外部中断和内部中断1. 外部中断源●外部中断0():来自P3.2引脚,采集到低电平或者下降沿时,产生中断请求。

●外部中断1():来自P3.3引脚,采集到低电平或者下降沿时,产生中断请求。

2. 内部中断源●定时器∕计数器0(T):定时功能时,计数脉冲来自片内;计数功能时,计数脉冲来自片外P3.4引脚。

发生溢出时,产生中断请求。

●定时器∕计数器1(T):定时功能时,计数脉冲来自片内;计数功能时,计数1脉冲来自片外P3.5引脚。

发生溢出时,产生中断请求。

●串行口:为完成串行数据传送而设置。

单片机完成接受或发送一组数据时,产生中断请求。

5.2.2 中断控制的专用寄存器MCS-51单片机为用户提供了四个专用寄存器,来控制单片机的中断系统。

1.定时器控制寄存器(TCON)该寄存器用于保存外部中断请求以及定时器的计数溢出。

进行字节操作时,寄存器地址为88H。

按位操作时,各位的地址为88H~8FH。

寄存器的内容及位地址表示如下:位地址8FH8EH 8DH8CH8BH8AH89H88H位符号TF1 TR1 TF0TRIE1IT1IE0IT0●IT0 和IT1——外部中断请求触发方式控制位IT0(IT1)=1 脉冲触发方式,下降沿有效IT0(IT1)=0 电平触发方式,低电平有效●IE0和IE1——外中断请求标志位当CPU采样到(或)端出现有效中断请求时,IE0(IE1)位由硬件置“1”。

当中断响应完成转向中断服务程序时,由硬件把IE(或IE)清零。

●TR0和TR1——定时器运行控制位TR0(TR1)=0 定时器/计数器不工作TR0(TR1)=1 定时器/计数器开始工作●TF0和TF1——计数溢出标志位当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”。

当转向中断服务时,再由硬件自动清“0”。

计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。

2. 串行口控制寄存器(SCON)进行字节操作时,寄存器地址为98H。

按位操作时,各位的地址为98H~9FH。

寄存器位地址9FH9EH 9DH 9CH 9BH 9AH 99H 98H位符号SM0SM1SM2R EN TB8RB8TI RI其中与中断有关的控制位共2位:●TI——串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。

●RI——串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。

串行中断请求由TI和RI的逻辑或得到。

就是说,无论是发送标志还是接收标志,都会产生串行中断请求。

3. 中断允许控制寄存器(IE)进行字节操作时,寄存器地址为0A8H。

按位操作时,各位的地址为0A8H~0AFH。

寄存器的内容及位地址表示如下:位地址0AFH 0AEH0ADH 0ACH 0ABH 0AAH 0A9H 0A8H位符号EA / / ES ET1EX1ET0EX0其中与中断有关的控制位共6位:●EA——中断允许总控制位EA=0 中断总禁止,禁止所有中断EA=1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位进行设置。

●EX0和EX1——外部中断允许控制位EX0(EX1)=0 禁止外部中断EX0(EX1)=1 允许外部中断●ET0和ET1——定时器/计数器中断允许控制位ET0(ET1)=0 禁止定时器/计数器中断ET0(ET1)=0 允许定时器/计数器中断●ES——串行中断允许控制位ES=0 禁止串行中断ES=1 允许串行中断可见,MCS-51单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制。

即以EA位作为总控制位,以各中断源的中断允许位作为分控制位。

当总控制位为禁止时,关闭整个中断系统,不管分控制为状态如何,整个中断系统为禁止状态;当总控制位为允许时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。

MCS-51单片机复位后(IE)=00H,因此中断系统处于禁止状态。

单片机在中断响应后不会自动关闭中断。

因此在转中断服务程序后,应根据需要使用有关指令禁止中断,即以软件方式关闭中断。

4. 中断优先级控制寄存器(IP)MCS-51单片机的中断优先级控制比较简单,因为系统只定义了高、低2个优先级。

高优先级用“1”表示,低优先级用“0”表示。

各中断源的优先级由中断优先级寄存器(IP)进行设定。

IP其中:PX0——外部中断0优先级设定位;PT0——定时中断0优先级设定位;PX1——外部中断1优先级设定位;PT1——定时中断1优先级设定位;PS——串行中断优先级设定位。

以上各位设置为“0”时,则相应的中断源为低优先级;设置为“1”时,则相应的中断源为高优先级。

优先级的控制原则是:●低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。

●如果一个中断请求已被响应,则同级的其它中断服务将被禁止。

即同级不能嵌套。

●如果同级的多个中断同时出现,则按CPU查询次序确定哪个中断请求被响应。

其查询次序为:外部中断0→定时中断→外部中断→定时中断→串行中断。

中断优先级控制,除了中断优先级控制寄存器之外,还有两个不可寻址的优先级状态触发器。

其中一个用于指示某一高优先级中断正在进行服务,从而屏蔽其它高优先级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级的中断。

此外,对于同级的多个中断请求查询的次序安排,也是通过专门的内部逻辑实现的。

上述四个专用寄存器的用途可以用图5.1说明。

图5.1 MCS-51中断系统5.2.4 中断响应过程中断响应过程为,中断源发出中断请求→对中断请求进行响应→执行中断服务程序→返回主程序。

这个过程可分为三个阶段来完成。

1.中断采样对于外部中断请求,中断请求信号来自于单片机外部,计算机要想知道有没有中断请求发生,必须对信号进行采样。

①电平触发方式的外中断请求(IT0/IT1=0)采样到高电平时,表明没有中断请求,IE0或IE1继续为“0”。

采样到低电平时,IE0/IE1由硬件自动置“1”,表明有外中断请求发生。

②脉冲触发式的外中断请求(IT0/IT1=1)在相邻的机器周期采样到的电平由高电平变为低电平时,则IE0/IE1由硬件自动置“1”,否则为“0”。

2. 中断查询由CPU测试TCON和SCON中的各个中断标志位的状态,确定有那个中断源发生请求,查询时按优先级顺序进行查询,即先查询高优先级再查询低优先级。

如果同级,按以下顺序查询:→→→→S如果查询到有标志位为“1”,表明有中断请求发生,接着就从相邻的下一机器周期开始进行中断响应。

3.中断响应当CPU查询到中断请求时,由硬件自动产生一条LCALL指令,LCALL指令执行时,首先将PC内容压入堆栈进行断点保护,再把中断入口地址装入PC,使程序转向相应的中断区入口地址。

LCALL指令的形式如下:LCALL addr16 ;addr16:中断入口地址入口地址已由系统设定,如下:中断源入口地址0003HT0000BH0013HT1001BHS 0023H从表中可以看出,每个中断区只有8个单元,很难安排下一个中断程序,一般是在中断入口地址处加一条跳转指令,跳转到用户的服务程序入口。

编写中断服务程序的格式一般如下:ORG 0000HSJMP MAINORG 0003HAJMP 1NJERRVPMAIN:···HERE:SJMP HERE1NJERRVP:···;中断响应程序RETI并不是所有的请求都被响应,当遇到下列情况之一时不响应这些中断请求:(1)CPU正在处理一个同级或者高级的中断服务(2)当前指令还没有执行完毕(3)当前指令是RET、RETI或者是访问IP、IE的指令,执行完这些指令后,还必须再执行一条指令,才响应中断请求。

注意:MCS-51单片机对中断查询结果不作记忆,当有新的查询结果出现时,因为以上原因而被拖延的查询结果将不复存在,其中断请求也就不能再被响应了。

5.2.5 中断请求的撤销中断响应后,TCON和SCON的中断请求标志位应及时撤销。

否则意味着中断请求仍然存在,有可能造成中断的重复查询和响应,因此需要在中断响应完成后,撤销其中断标志。

1. 定时中断请求的撤销硬件自动把TF0(TF1)清0,不需要用户参与。

2. 串行中断请求的撤销需要软件清零。

3. 外部中断请求的撤销(1)脉冲触发方式的外中断请求撤销中断标志位的清零是自动的,脉冲信号过后就不存在了,因此其撤销是自动的。

(2)电平触发方式的外中断请求撤销中断标志位的清零是自动的,但是如果低电平持续存在,在以后的机器周期采样时,又/IE1)置位。

为此,需要外加电路,把中断请求信号从低电平强会把中断请求标志位(IE制为高电平。

电路如图5.2所示:图5.2 电平触发方式的外中断请求撤销通过直接置位端使中断请求信号强制从低电平变为高电平,要实现此功能需要在中断入口地址处加入如下两条指令:ORL P1, #01HANL P1, #0FEH5.2.6 MCS-51单步执行工作方式所谓单步执行就是按一次键,CPU执行一条指令。

假设利用外部中断0实现。

需要做两项准备工作。

(1)建立单步执行的外部电路,不按键时产生低电平,按键时产生高电平。

(2)设置为电平触发方式。

相关文档
最新文档