AT89S52中断系统及应用(汇编)
AT89S52 基本性能介绍

主要性能● 与MCS-51单片机产品兼容● 8K字节在线系统可编程Flash存储器● 1000次擦写周期● 4.0V-5.5V工作电压● 全静态操作:0Hz~33Hz● 三级加密程序存储器● 256*8字节的内部数据存储器● 32个可编程I/O口线● 三个16位定时器/计数器● 八个中断源● 全双工UART串行通道● 低功耗空闲和掉电模式● 掉电后中断可唤醒● 看门狗定时器● 双数据指针● 掉电标识符● 快速编程周期● 灵活ISP编程(字节和模式)● 绿色(-免费)工作包操作1功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在线系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2. 引脚结构3. 引脚描述3.1 VCC : 电源3.2 GND: 地3.3 P0 口:P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL 逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
at89s52中断资源原理

at89s52中断资源原理
AT89S52是一种微控制器,具有多个中断源。
这些中断源包括两个外部中
断(INT0和INT1),三个定时器中断(定时器0、1、2),以及一个串行口中断。
每个中断源都可以通过设置或清除特殊寄存器IE中的相关中断允
许控制位来启用或禁用。
此外,还有一个中断允许总控制位EA,可以一次
禁止所有中断。
具体来说,外部中断0(INT0)和外部中断1(INT1)的中断请求信号由相应的脚输入,其标志分别为IE0和IE1。
定时器/计数器T0和T1计数溢出
发出的中断请求标志分别为TF0和TF1。
串行口的中断请求标志为发送中断TI或接收中断RI。
而定时器2的中断请求源有两个:计数溢出(TF2)和“捕捉”(EXF2),这两种中断请求标志共用一个中断矢量。
这些中断请求标志分别由TCON、SCON和T2CON的相应位锁存。
其中,TCON寄存器是定时器/计数器的控制寄存器,字节地址为88H,可位寻址。
在程序进入中断服务后,这些标志位可以被硬件清零。
对于某些标志位,如TF0和TF1,它们的值在计数溢出的那个周期的S5P2被置位,并一直保持
到下一个周期被电路捕捉下来。
而对于定时器2的标志位TF2,它在计数溢出的那个周期的S2P2被置位,并在同一个周期被电路捕捉下来。
请注意,为了保持代码的简洁性和易于维护,用户软件不应给位和位写入1。
它们是为AT99系列新产品预留的。
以上内容仅供参考,如需更多信息,建议查阅AT89S52的官方数据手册或
咨询专业技术人员。
7、AT89S52单片机中断系统

6、定时器/计数器T2溢出中断请求(1)TF2(T2CON.7); 定时器/计数器T 溢出中断请求 中断请求( 定时器 (2)EXF2(T2CON.6).定时/计数器T2溢出中断请求标志为 为 TF2 TF2 或 EXF2。当定时/计数器T2发生溢出时,置位TF2,并 。 向CPU申请中断。或外部输入端T2EX发生负跳沿时,向CPU 请求中断。(软件复位)
D7 IE 位地址 EA AFH
D6 — 9EH
D5 ET2 ADH
D4 ES ACH
D3 ET1 ABH
D2 EX1 AAH
D1 ET0 A9H
D0 EX0 A8H 字节地址: A8H 可位寻址
(6)ET0:定时器/计数器T0的溢出中断允许位 ET0 定时器/计数器T 0:禁止T0溢出中断;1:允许T0溢出中断。 禁止T 溢出中断; 允许T 溢出中断。 (7)EX0:外部中断0中断允许位。 EX0 外部中断0中断允许位。 0:禁止外部中断0中断;1:允许外部中断0中断。 禁止外部中断0中断; 允许外部中断0中断。 MCS-51复位后,IE清 MCS-51复位后,IE清0,所有中断请求被禁止。 复位后 所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE相应的位的被置“ 若使某一个中断源被允许中断,除了IE相应的位的被置“1” , IE相应的位的被置 还必须使EA位=1。 还必须使EA位=1。 EA
D7 IE 位地址 EA AFH
D6 — 9EH
D5 ET2 ADH
D4 ES ACH
D3 ET1 ABH
D2 EX1 AAH
D1 ET0 A9H
D0 EX0 A8H 字节地址: A8H 可位寻址
IE中各位的功能如下: IE中各位的功能如下: 中各位的功能如下 (1)EA:中断允许总控制位 EA: 0:CPU屏蔽所有的中断请求(CPU关中断); CPU屏蔽所有的中断请求(CPU关中断) 屏蔽所有的中断请求(CPU关中断 1:CPU开放所有中断(CPU开中断)。 CPU开放所有中断(CPU开中断) 开放所有中断(CPU开中断
单片机原理及应用之AT89S52

单片机原理及应用之AT89S52AT89S52是一款由Atmel公司生产的8位单片机,采用CMOS工艺制造,并且内部集成了丰富的功能模块和外设接口。
它具有较高的性能和良好的稳定性,广泛应用于各种电子设备中。
AT89S52单片机的基本原理是通过控制器对内部资源进行配置和控制,从而实现各种功能。
它的主要构成部分包括中央处理器(CPU),存储器(RAM和ROM),输入/输出接口(IO),定时/计数器(Timer/Counter)和串行通信接口等。
首先,AT89S52单片机的CPU是其心脏部件,它采用基于8051内核的结构,具有8位数据总线和16位地址总线。
CPU负责执行程序指令,以及对数据进行运算和处理。
其次,AT89S52内部集成了包括RAM、ROM和EEPROM等多种存储器。
其中,RAM用于临时存储数据和程序,ROM用于存储程序代码,EEPROM可用于存储非易失性数据。
AT89S52还具有强大的输入/输出接口,用于与外部设备进行通信。
它具有多个I/O引脚,可以用于连接传感器、显示器、键盘等外部设备,并通过程序控制实现数据的输入和输出。
除此之外,AT89S52还内置了多个定时/计数器模块,用于生成精确的时间延迟和计算时间。
这些定时/计数器可以用于测量时间、产生脉冲信号、控制外设设备等。
此外,AT89S52还支持多种串行通信接口,如UART、SPI和I2C等。
这些接口可以与其他设备进行数据传输和通信,实现单片机与外部设备的数据交互。
AT89S52单片机应用广泛。
它既可以作为独立的控制芯片,也可以作为其他数字电路和模拟电路的核心控制部分。
在家电、电子仪器、工业自动化和电子玩具等领域,AT89S52都有着重要的应用。
具体来说,AT89S52可以用于控制家电设备,如洗衣机、空调、微波炉等。
它通过连接传感器和执行器,实现对温度、光照强度等参数的检测和控制。
此外,AT89S52还可以用于仪器设备的控制。
例如,可以将其用作控制面板上的核心处理器,实现对仪器设备的各种参数监测和控制。
第四章 AT89s52指令系统

第四章 AT89S52指令系统
1
寄存器间接寻址
• 例4-11 • MOV R0,#06H ;06H→ (R0) • MOVX A,@R0 ;((R0))→ (A) • 例4-12 MOV DPTR,#0EFFFH;0EFFFH→ (DPTR0) MOVX A, @DPTR;((DPTR0))→ (A)
• (1002H)=19H
(1006H)=2DH
• (1003H)=4DH
(1007H)=35H
第四章 AT89S52指令(系1统008H)=31H
1
4.DW(Define Word)定义双 字节数据伪指令
• 格式: Yn
[标号:] DW Y1,Y2,Y3,……,
• 该伪指令与DB伪指令的不同之处是,DW定义
第四章 AT89S52指令系统
1
变址间接寻址
• 变址间接寻址指令由基址寄存器和变址寄存器组成, 16位寄存器DPTR(数据指针)或PC(程序计数器)作为 基址寄存器,8位累加器A作为变址寄存器。
• 基址寄存器内容和变址寄存器内容相加形成新的16 位地址,该地址即为操作数的存储地址。这是一种 独特的寻址方式,A中的内容可以随程序的运行动 态变化,所以可以实现动态寻址。
• 也可写成
•
MOV A, 90H ;(90H)→ (A)
第四章 AT89S52指令系统
1
直接寻址
• MOV 0A0H , #20H ; #20H→(P2)
• MOV A, 0A0H;直接寻址,(P2) → (A)
• MOV R0, #0A0H
• MOV @R0, #40H ;#40H→(0A0)
AT89S52单片机中断过程

AT89S52单片机中断过程AT89S52单片机中断分为四个阶段:中断采样、中断查询、中断响应、中断返回。
执行中断时,必须满足以下三个条件:(1) 中断源有中断申请;(2) 此中断源的中断允许位为1;(3) CPU开中断,即总开关EA=1;1.中断采样中断采样针对外部中断请求信号而言,在S5P2对相应引脚采样,根据其电平状态高/低,判断相应的中断请求。
2.中断查询在每个机器周期的S5P2后,由硬件自动地去查询相应的中断标志位,先查询高级中断,再查询低级中断,同级中断按内部中断优先级顺序查询。
如果查询到有中断标志位为1,则说明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始开展中断响应。
3.中断响应CPU响应中断时,先置位相应的优先级激活触发器,封锁同级和低级的中断。
然后程序根据中断源的类别,在硬件的控制下转向相应的中断入口单元,执行中断服务程序。
中断响应的过程如下图。
图中断响应过程4.中断返回中断服务程序的最后一条指令必须是中断返回指令RETI。
CPU执行完这条指令后,把响应中断时所置位的优先级激活触发器清0,然后从堆栈中弹出两个字节内容(断点地址)装入程序计数器PC中,CPU就从原来被中断处重新执行被中断的程序。
5. 中断的响应时间中断响应时间是指从查询中断请求标志位开始到转向中断矢量地址所需的机器周期数。
响应中断的时间依中断请求发生的情况不同有长有短,因此,AT89S52单片机发生中断的时间根据中断类型和中断执行的方式不同而不同。
外部中断和的电平在每个机器周期的S5P2时被采样并锁存到IE0和IE1中,这个置入到IE0和IE1的状态在下一个机器周期才被查询电路查询。
如果产生了一个中断请求,而且满足响应的条件,CPU响应中断,查询中断请求标志位,同时这个周期恰好是指令的最后一个周期,则在这个机器周期结束后,中断请求被CPU 响应,产生一条硬件自动生成的长调用指令LCALL,以使CPU转到相应的服务程序入口。
AT89S52说明书

主要性能● 与MCS-51 单片机产品兼容● 8K 字节在系统可编程Flash 存储器● 1000 次擦写周期● 全静态操作:0Hz~33Hz● 三级加密程序存储器● 32 个可编程I/O 口线● 三个16 位定时器/计数器● 八个中断源● 全双工UART 串行通道● 低功耗空闲和掉电模式● 掉电后中断可唤醒AT89S528位微控制器R● 看门狗定时器● 双数据指针● 掉电标识符功能特性描述AT89S52 是一种低功耗、高性能CMOS8 位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52 具有以下标准功能:8k 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2 种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8K字节在系统可编程FlashAT89S52Rev. 1919-07/011AT89S52 引脚结构2AT89S52 方框图引脚功能描述3VCC :电源GND:地AT89S52P0口:P0 口是一个8 位漏极开路的双向I/O 口。
作为输出口,每位能驱动8 个TTL 逻辑电平。
对P0 端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0 口也被作为低8 位地址/数据复用。
第4章-AT89S52中断系统

14
(2)RI—串行口接收中断请求标志位。串行口接收完一个串 行数据帧,硬件自动使RI中断请求标志置“1”。必须在中断服 务程序中用指令对RI清“0”。
3.定时器2的控制寄存器T2CON
特殊功能寄存器T2CON的字节地址为C8H,可位寻址,位地址 为C8H~CFH。格式见图4-5。
27
在同时收到几个同优先级的中断请求时,哪一个中断请求能 优先得到响应,取决于内部的查询顺序。这相当于在同一个优 先级内,还同时存在另一个辅助优先级结构,其查询顺序见表 4-1。
28
由此可见,各中断源在相同优先级的条件下,外部中断0的 中断优先权最高,T2溢出中断或EXF2中断的中断优先权最低。
5
4.1 中断技术概述 中断技术主要用于实时监测与控制,要求单片机能及时地响
应中断请求源提出的服务请求,并作出快速响应、及时处理。 这是由片内的中断系统来实现的。
当中断请求源发出中断请求时,如果中断请求被允许,单片 机暂时中止当前正在执行的主程序,转到中断服务处理程序处 理中断服务请求。
中断服务处理程序处理完中断服务请求后,再回到原来被中 止的程序之处(断点),继续执行被中断的主程序。
2
4.6 外部中断的触发方式选择 4.6.1 电平触发方式 4.6.2 跳沿触发方式
4.7 中断请求的撤销 4.8 中断服务子程序的应用设计 4.9 多外部中断源系统设计
4.9.1 定时器/计数器作为外部中断源的使用方法 4.9.2 中断和查询结合的方法 4.9.3 用优先权编码器扩展外部中断源
3
为定时器/计数器的控制寄存器,字节地址为88H,可位寻 址。特殊功能寄存器TCON的格式如图4-3所示。
图4-3 特殊功能寄存器TCON的格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1第5章AT89S52中断系统及应用本章要点:➢了解中断的基本概念、中断的作用及中断请求方式➢掌握AT89S52单片机中断结构➢掌握AT89S52单片机6个中断源的中断请求、中断屏蔽、优先级设置等初始化编程方法➢掌握非接触式IC卡门禁系统的中断应用方法5.1中断的概念为了提高CPU的工作效率以及对实时系统的快速响应,产生了中断控制方式的信息交换。
在日常生活中广泛存在着“中断”的例子。
例如一个人正在看书,这时电话铃响了,于是他将书放下去接电话。
为了在接完电话后继续看书,他必须记下当时的页号,接完电话后,将书取回,从刚才被打断的位置继续往下阅读。
由此可见,中断是一个过程。
计算机是这样处理的,当有随机中断请求后,CPU暂停执行现行程序,转去执行中断处理程序,为相应的随机事件服务,处理完毕后CPU恢复执行被暂停的现行程序。
在这个过程中,应注意如下几方面:✓外部或内部的中断请求是随机的,若当前程序允许处理应立即响应;✓在内存中必须有处理该中断的处理程序;✓系统怎样能正确地由现行程序转去执行中断处理程序;✓当中断处理程序执行完毕后怎样能正确地返回。
现在再从另一方面分析,整个中断的处理过程就像子程序调用,但是本质的差异是调用的时间是随机的,调用的形式是不同的。
因此,是否可以认为处理中断的过程是一种特殊的子程序调用。
如图5.1和图5.2 所示。
中断有两个重要特征:程序切换(控制权的转移)和随机性。
图5.1 子程序调用过程图5.2中断的执行过程5.2AT89S52中断源与中断向量地址中断源就是向CPU发出中断请求的来源。
AT89S52共有六个中断源:2个外部中断(INT0和INT1)、3个定时器中断(定时器0、1和2)和1个串行中断。
如图5.3所示。
2 5.2.1外部中断外部中断包括外部中断0和外部中断1。
它们的中断请求信号分别由单片机引脚/P3.2和/P3.3输入。
外部中断请求有两种信号方式:电平方式和脉冲方式。
电平方式的中断请求信号是低电平有效,即只要在或引脚上出现低电平时,就激活外部中断标志。
脉冲方式的中断请求信号则是脉冲的负跳变有效。
在这种方式下,在两个相邻机器周期内,或引脚电平状态发生变化,即在第一个机器周期内位为高电平,第二个机器周期内为低电平,就激活外部中断标志。
5.2.2内部定时和外部计数中断单片机芯片内部有三个定时器/计数器,对脉冲信号进行计数。
若脉冲信号为内部振荡器输出的脉冲(机器周期信号),则计数脉冲的个数反映了时间的长短,称为定时方式。
若脉冲信号为来自T0/P3.4、T1/P3.5、T2/P1.0的外部脉冲信号,则计数脉冲的个数仅仅反映外部脉冲输入的多少,称为计数方式。
当定时器/计数器发生溢出(计算器状态由FFFFH再加1,变为0000H状态),CPU查询到单片机内部硬件自动设置的一个溢出标志位为1时,便激活中断。
定时方式中断由单片机芯片内部发生,不需要在芯片外部设置引入端。
计数方式中断外部输入脉冲(负跳变)引起,脉冲加在引脚T0/P3.4、T1/P3.5、T2/P1.0端。
5.2.3串行中断串行中断是为串行通信的而需要设置的。
当串行口发送完或接收完一帧信息时,单片机内部硬件便自动串行发送或接收中断标志位置1。
当CPU查询到这些标志位为1时,便激活串行中断。
串行中断是由单片机内部自动发生的,不需要在芯片外设置引入脚。
5.2.4中断矢量地址中断源发出请求,CPU响应中断后便转向中断服务程序。
中断源引起的中断服务程序入口地址即为中断矢量地址。
中断向量地址是固定的,用户不可改变。
中断服务入口地址如表5.1所示。
表5.1 中断源及其对应的矢量地址中断源中断标志位中断矢量地址外部中断0()IE00003H 定时器0(T0)中断TF0000BH 外部中断1()IE10013H 定时器1(T1)中断TF1001BH串行口中断发送中断TI0023H 接收中断RI定时器2(T2)中断T2溢出中断TF2002BH T2EX中断EXF2由于两个相邻的中断服务程序入口地址间隔仅为8字节,一般的中断服务程序是容纳不下的。
通常是在相应的中断服务程序入口地址中放一条长跳转指令LJMP,这样就可以转到64KB的任何可用区域了。
若在2KB范围内转移,则可存放AJMP指令。
由于0003H~002BH是中断矢量地址区,因此,单片机应在程序入口地址0000H处放一条无条件转移指令(如LJMP XXXXH),转到指定的主程序地址。
5.3中断标志与控制要实现中断,首先中断源要提出中断申请,而中断请求的过程是单片机内部特殊功能寄存器TCON和SCON相关状态位—中断请求标志位置1的过程,当CPU响应中断时,中断请求标志位才由硬件或软件清0。
5.3.1定时器/计数器控制寄存器TCONTCON主要用于寄存外部中断请求标志、定时器溢出标志、和外部中断触发方式的选择。
该寄存器的字节地址是88H,可以位寻址;位地址是88H~8FH。
其格式如下:位序D7D6D5D4D3D2D1D0位标志TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H其中与中断有关的控制位共6位:IE0和IE1:外部中断请求标志。
当CPU采样到(或)端出现有效中断请求(低电平或脉冲下降沿)时,IE0(或IE1)位由片内硬件自动置1;当中断响应完成转向中断服务程序时,由片内硬件自动清0。
IT0和ITl:外部中断请求信号触发方式控制标志。
IT0(或IT1)=1,(或)信号为脉冲触发方式,脉冲负跳沿有效;IT0(或IT1)=0,(或)信号电平触发方式,低电平有效。
IT0(或IT1)位可由用户软件置1或清0TF0和TFl:定时器/计数器溢出中断请求标志。
当定时器0(或定时器1)产生计数溢出时,TF0(或TF1)由片内硬件自动置1;当中断响应完成转向中断服务程序时,由片内硬件自动清0。
TR0和TR1:TR0(或TR1)=1,表示启动定时器0(或定时器1);该标志位也可用于查询方式,即用户程序查询该位状态,判断是否应转向对应的处理程序段。
待转如处理程序后,必须由软件清0。
5.3.2串行口控制寄存器SCONSCON的字节地址是98H,可以位寻址;位地址是98H~9FH。
其格式如下:位序D7D6D5D4D3D2D1D0位标志SM0SM1SM2REN TB8RB8TI RI位地址9FH9EH9DH9CH9BH9AH99H98H其中与中断有关的控制位共2位:TI:串行口发送中断请求标志。
当串行口发送完一帧信号后,由片内硬件自动置1。
但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。
RI:串行口接收中断请求标志。
当串行口接收完一帧信号后,由片内硬件自动置1。
但CPU响应中断时,并不清除RI,必须在中断服务程序中由软件对其清0。
应当指出,AT89S52系统复位后,TCON和SCON中各位被复位成“0”状态,应用时要注意各位的初始状态。
5.3.3中断允许控制寄存器IECPU对中断源的开放和屏蔽,以及每个中断源是否被允许中断,都受中断允许寄存器IE控制。
中断允许控制寄存器IE对中断的开放和关闭实行两级控制。
即有一个总中断位EA。
5个中断源还有各自的控制位进行控制。
,力量看来,-IE寄存器的字节地址是A8H,可以位寻址;位地址是A8H~AFH。
其格式如下:位序D7D6D5D4D3D2D1D0位标志EA—ET2ES ET1EX1ET0EX0位地址AF AEH ADH ACH ABH AAH A9H A8H其中与中断有关的控制位共7位:EA:中断允许总控制位。
EA=0时,中断总禁止,禁止一切中断;EA=1时,中断总允许,而每个中断源允许与禁止,分别由各自的允许位确定。
EX0和EX1:外部中断允许控制位。
EX0(或EX1)=0,禁止外部中断(或);EX0(或EX1)=1,允许外部中断(或)。
ET0和ET1:定时器中断允许控制位。
ET0(ET1)=0,禁止定时器0(或定时器1)中断;ET0(ET1)=1,允许定时器0(或定时器1)中断。
ES:串行中断允许控制位。
ES=0,禁止串行(TI或RI)中断;ES=1,允许串行(TI或RI)中断。
ET2:定时器2中断允许控制位。
ET2=0,禁止定时器2(TF2或EXF2)中断;ET2=1,允许定时器2(TF2或EXF2)中断;在单片机复位后,IE各位被复位成“0”状态,CPU处于关闭所有中断的状态。
所以,在单片机复位以后,用户必须通过程序中的指令来开放所需中断。
5.3.4中断优先级控制寄存器IPAT89S52单片机具有高、低2个中断优先级。
高优先级用“1”表示,低优先级用“0”表示。
各中断源的优先级由中断优先级寄存器IP进行设定。
IP寄存器字节地址为B8H,可以位寻址;位地址为0BFH~0B8H。
寄存器的内容及位地址表示如下:位序D7D6D5D4D3D2D1D0位标志——PT2PS PT1PX1PT0PX0位地址BF BEH BDH BCH BBH BAH B9H B8H其中与中断有关的控制位共6位:PX0:外部中断0()中断优先级控制位;PT0:定时器0(T0)中断优先级控制位;PX1:外部中断1()中断优先级控制位;PT1:定时器1(T1)中断优先级控制位;PS:串行口中断优先级控制位;PT2:定时器2(T2)中断优先级控制位。
各中断优先级的设定,可用软件对IP的各位置1或清0,为1时是高优先级,为0时是低优先级。
当系统复位后,IP各位均为0,所有中断源设置为低优先级中断。
例如:CPU开中断可由以下两条指令来实现:SETB 0AFH ;EA置1或0RL IE,#80H ;按位“或”,EA置1CPU关中断可由以下两条指令来实现:CLR 0AFH ;EA清0或ANL IE,#7FH ;按位“与”,EA清0又如设置外部中断源为高优先级,外部中断源为低优先级,可由下面指令来实现:SETB 0B8H ;PX0置1CLR 0BAH ;PXl清0或MOV IP,#000××0×1B ;PX0置1,PXl清05.4优先级结构中断优先级只有高低两级,所以在工作过程中必然会有两个或两个以上中断源处于同一中断优先级。
若出现这种情况,内部中断系统对各中断源的处理遵循以下两条基本原则:1.低优先级中断可以被高优先级中断所中断,反之不能;2.一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。
当CPU同时收到几个同一优先级的中断请求时,CPU将按自然优先级顺序确定应该响应哪个中断请求。
其自然优先级排列如下:中断源同级自然优先级外部中断0 最高级定时器0中断外部中断1定时器1中断串行口中断定时器2中断最低级【例5.1】设AT89S52的片外中断为高优先级,片内中断为低优先级。