第5章 STC89C52单片机中断系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

•5.1中断概念•5.25.2STC89C52单片机中断系统•5.2.1中断系统结构•5.2.2中断源•5.2.3中断请求标志•5.2.4中断控制寄存器•5.3中断响应•5.3.1中断响应条件•5.3.2外部中断响应时间•5.3.3中断请求的撤销•5.4中断程序的设计•本章主要内容:叙述中断概念和基本的中断术语,介绍STC89C52单片机中断系统的组成,详细叙述与中断有关的特殊功能寄存器各位功能和作用,叙述中断响应的硬件处理过程、中断响应的条件、外部中断响应时间、中断请求撤销的方法,叙述中断服务子程序设计要考虑的几个问题、采用中断时的主程序结构、中断服务子程序的流程,最后以边沿触发的外部中断仿真示例结束中断定义:当机器正在执行程序的过程中,一旦遇到一些异常或特殊请求时,就停止正在执行的程序,而转入必要的处理,并在处理完毕后,立即返回断点继续执行。中断响应过程图5-1•关于中断有如下术语:•中断源:发出中断请求的设备称为中断请求源,简称中断源。•中断向量:所谓中断向量就是中断服务程序的入口地址。•中断响应:对于中断请求给出的处理。•中断嵌套:在中断服务程序中又响应了其它中断请求,该过程称为中断嵌套。•高优先级中断请求可以打断低优先级中断,反之,低优先级中断请求不可以打断高优先级及同优先级中断。当两个相同优先级中断同时产生时,将由查询次序来决定系统先响应哪个中断。中断嵌套实现过程:图5-25.2STC89C52单片机中断系统•5.2.1中断系统结构•STC89C51RC/RD+系列单片机的中断系统结构示意图如图5-2所示,该中断系统由中断源、中断标志、中断允许控制寄存器和中断优先级控制寄存器等构成。5.2.2中断源•传统的51系列单片机5个基本中断源为:•外部中断0(),中断服务程序入口地址为0003H,中断请求标志为IE0。•定时器0,中断服务程序入口地址为000BH,中断请求标志为TF0。•外部中断1(),中断服务程序入口地址为0013H,中断请求标志为IE1•定时器1,中断服务程序入口地址为001BH,中断请求标志为TF1。•串行口中断(UART),中断服务程序入口地址为0023H,中断请求标志为TI和RI,INT1INT0•STC89C52单片机在5个中断源基础上增加三个中断源为:•定时器2,中断服务程序入口地址为002BH,中断请求标志为TF2和EXF2。•外部中断2(),中断服务程序入口地址为0033H,中断请求标志为IE2。•外部中断3(),中断服务程序入口地址为003BH,中断请求标志为IE3。•注意:此处INTi(i=0,1,2,3),低电平有效。当外部有中断触发信号时,硬件自动将标志IEi(i=0,1,2,3)置1,定时器i(i=0,1,2)当定时时间到时,硬件自动将标志TFi(i=0,1,2)置1。INT2INT3表5-1中断源、中断向量地址和中断请求标志表返回5.2.3中断请求标志•STC89C52单片机中断请求标志由TCON、SCON、T2CON、XICON特殊功能寄存器相应位来锁定。TCONTF1TR1TF0TR0IE1IT1IE0IT0IT1:外部中断1的中断触发方式控制位IE1:外部中断1的中断请求标志IT1,IE1含义类同外部中断0IT0:外部中断0的中断触发方式控制位。若IT0=0,电平触发,若IT0=1,下降沿触发IE0:外部中断0的中断请求标志若IE0=0,无中断请求,若IE0=1,有中断请求0INT1INT1.TCON•方式寄存器TCON(定时/计数器的控制寄存器)•字节地址:88HD7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H若TF1=1,有中断请求;若TF1=0无中断请求TCONTF1TR1TF0TR0IE1IT1IE0IT0TF0:定时/计数器0溢出中断请求标志计数器满产生溢出,它由硬件置位若TF0=1有中断请求;若TF0=0无中断请求注意:中断响应时,硬件会自动清标志位,也可由软件清0.TR1、TR0这2位与中断系统无关,将在第6章定时器/计数器中介绍TF1:定时/计数器1溢出中断请求标志2.SCON•串行口控制寄存器SCON•字节地址:98H,可位寻址D7D6D5D4D3D2D1D0SCONTIRI位地址99H98H•TI:串行口发送中断请求标志位•TI=1,CPU向串口的发送缓冲器SBUF写入1B的数据,就启动1帧串行数据的发送,送完后,硬件自动置位TI.•TI=0,无发送中断请求•RI:串行口接收中断请求标志位•RI=1串行口接收完1个串行数据帧,硬件自动置位RI.•RI=0,无接收中断请求•注:响应串口中断时,硬件并不清中断标志位,由软件清0.复位后(SCON)=00HSCONTIRI3.T2CON•方式寄存器T2CON(定时/计数器2的控制寄存器)字节地址:C8H,可位寻址D7D6D5D4D3D2D1D0T2CONTF2-------位地址CFHCEHCDHCCHCBHCAHC9HC8HT2CONTF2-------D7位为定时器/计数器2的溢出中断请求标志位TF2,若TF2=1有中断请求;若TF2=0无中断请求D6-D0这7位与中断系统无关,将在第6章定时器/计数器中介绍4.XICON•XICON寄存器为附加的控制寄存器,字节地址为C0H,可位寻址D7D6D5D4D3D2D1D0XICON--IE3IT3--IE2IT2位地址C7HC6HC5HC4HC3HC2HC1HC0HXICON--IE3IT3--IE2IT2IT3:外部中断3的中断触发方式控制位IE3:外部中断3的中断请求标志IT3和IE3含义类同外部中断2.IT2:外部中断2的中断触发方式控制位。若IT2=0,电平触发,若IT2=1,下降沿触发IE2:外部中断2的中断请求标志若IE2=0,无中断请求,若IE2=1,有中断请求注意:对于D2、D3、D6、D7位功能将在本章5.2.4节讲解5.2.4中断控制寄存器•STC89C52单片机中断控制寄存器由IE、XICON、IP、IPH组成,各中断源的中断控制寄存器见表5-6所示。表5.6表5-6RC/RD+系列8051单片机中断特殊功能寄存器一、中断允许控制寄存器•1.IE寄存器•IE寄存器的字节地址为A8H,可位寻址,D7D6D5D4D3D2D1D0IEEA─ET2ESET1EX1ET0EX0位地址AFH─ADHACHABHAAHA9HA8HET1:定时/计数器1的溢出中断允许位。EX1:外部中断1中断允许位ET0:定时/计数器0的溢出中断允许位.EX0:外部中断0中断允许位.IEEA─ET2ESET1EX1ET0EX0注意:各位都是:“1”允许中断,“0”禁止中断ES;串行口中断允许位ET2:定时/计数器2的溢出/外部触发中断允许位.EA:中断允许总开关•若(IE)=85H问:那些中断源打开,那些被屏蔽?(IE)=10000101,外部中断0和外部中断1打开,定时中断0、1、2和串行口中断被屏蔽。•若(IE)=05H问:那些中断源打开,那些被屏蔽?(IE)=00000101,因总中断允许为0,所有中断都被屏蔽。【例1】若允许片内3个定时器/计数器中断,并禁止其他中断源的中断请求,请编写设置IE的相应程序段。(1)用位操作指令CLRESCLREX0CLREX1SETBET0SETBET1SETBET2SETBEA(2)用字节操作指令MOVIE,#AAH;10101010B上述两段程序对IE的设置是相同的。27•2.XICON寄存器•XICON寄存器的字节地址为C0H,可位寻址,数据位D7D6D5D4D3D2D1D0XICON─EX3IE3IT3─EX2IE2IT2位地址C7HC6HC5HC4HC3HC2HC1HC0HXICON─EX3IE3IT3─EX2IE2IT2注意:XICON寄存器中D7、D3功能在本章本节中断优先级控制寄存器叙述.XICON寄存器中D0、D1、D4、D5位功能在本章5.2.3节已有介绍,此处不重复叙述。(1)EX2—附加的外部中断2中断允许位,EX2=1中断允许,EX2=0中断禁止。(2)EX3—附加的外部中断3中断允许位,EX3=1中断允许,EX3=0中断禁止。二、中断优先级控制寄存器STC89C52单片机8个中断源硬件自动配置了相同优先级别的中断查询次序见表5-1,外部中断0最优先,依次是定时/计数器0、外部中断1、定时/计数器1、串行口中断、定时/计数器2、外部中断2、外部中断3为最低。STC89C52单片机有四级中断,通过软件来配置,由中断控制寄存器IP、IPH、XICON来设置。表5-1数据位D7D6D5D4D3D2D1D0IP──PT2PSPT1PX1PT0PX0位地址──BDHBCHBBHBAHB9HB8H1.IP寄存器IP寄存器是中断优先级低位寄存器,字节地址为B8H,可位寻址返回•(D0)PX0—外部中断0中断优先级控制位低位•(D1)PT0—定时器0中断优先级控制位低位•(D2)PX1—外部中断1中断优先级控制位低位•(D3)PT1—定时器1中断优先级控制位低位•(D4)PS—串行口中断优先级控制位低位•(D5)PT2—定时器2中断优先级控制位低位•注意:IP为各中断源中断优先级低位寄存器与各中断源中断优先级高位寄存器IPH配合来配置各个中断源的中断优先级,共有4级。IP──PT2PSPT1PX1PT0PX0数据位D7D6D5D4D3D2D1D0IPHPX3HPX2HPT2HPSHPT1HPX1HPT0HPX0H2.IPH寄存器IPH寄存器是中断优先级高位寄存器,字节地址为B7H,不能进行位寻址返回•(D0)PX0H—外部中断0中断优先级控制位高位•(D1)PT0H—定时器0中断优先级控制位高位•(D2)PX1H—外部中断1中断优先级控制位高位•(D3)PT1H—定时器1中断优先级控制位高位•(D4)PSH—串行口中断优先级控制位高位•(D5)PT2H—定时器2中断优先级控制位高位•(D6)PX2H—外部中断2中断优先级控制位高位•(D7)PX3H—外部中断3中断优先级控制位高位•注意:IP为各中断源中断优先级低位寄存器与各中断源中断优先级高位寄存器IPH配合来配置各个中断源的中断优先级,共有4级。IPHPX3HPX2HPT2HPSHPT1HPX1HPT0HPX0HXICONPX3EX3IE3IT3PX2EX2IE2IT2注意:STC89C52单片机4级中断优先级由软件配置,它是由各个中断源的优先级高位和低位一起来配置,例如:外部中断2优先级高位PX2H和低位PX2配置,PX2HPX2=00,01,10,11,分别配置外部中断2为优先级0(最低),优先级1,优先级2,优先级3(最高),同理知8个中断源各优先级配置方法见表5-1中断优先级设置。PX2位对应附加外部中断2优先级配置的低位,PX3位对应附加外部中断3优先级配置的低位。例如:将定时/计数器2设置为最高中断优先级3级,则有:MOVIP,#20HMOVIPH,#20H返回36IP【例2】IP、IPH寄存器初始化,STC89C52的两个外部中断0和1请求为最高优先级即3级,定时/计数器0和1为中断优先级2级,其他中断请求为最低优先级。编写初始化程序。根据题意知:PX0HPX0=11,PX1HPX1=11,PT0HPT0=10,PT1HPT1=10,PT2HPT2=00,PSHPS=00,PX2HPX2=00,PX3HPX3=00MOVIP,#05H;00000101MOVIPH,#0FH;00001111MOVXICON,#55H;外部中断2和3下降沿触发,中断允许IPHXICON5.3中断响应中断响应的过程:首先由硬件自动生成一条长调用指令“LCALLaddr16”。就是程序存储区中相应的中断入口地址。例如,对于外部中断0的响应,硬件自动生成的长调用指令为LCALL0003H首先将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转

1 / 57
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功