预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共54页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章AT89C51单片机中断系统教学目标5.1中断概述2.为什么要设中断3.中断源及其优先级4.中断源的管理5.2AT89C51中断系统的结构5.2.1中断源及中断系统构成5.2.2中断标志与中断控制表5.1TCON的结构、位名称、位地址和功能表5.1TCON的结构、位名称、位地址和功能(2)SCON的中断标志表5.2SCON的结构、位名称、位地址和功能1)TI:为串行口发送中断标志位,位地址为99H。在串行口发送完一组数据时,TI由硬件自动置位(TI=1),请求中断,当CPU响应中断进入中断服务程序后,TI状态不能被硬件自动清除,而必须在中断程序中由软件来清除。2)RI:为串行口接收中断标志位,位地址为98H。在串行口接收完一组串行数据时,RI由硬件自动置位(RI=1),请求中断,当CPU响应中断进入中断服务程序后,也必须由软件来清除RI标志。1)中断允许控制寄存器IE表5.3IE的结构、位名称、位地址和功能表5.3IE的结构、位名称、位地址和功能(1)EA(IE.7):总允许控制位,位地址为AFH。EA状态可由软件设定,若EA=0,禁止AT89C51所有中断源的中断请求;若EA=1,则总控制被开放,但每个中断源是允许还是被禁止CPU响应,还受控于中断源的各自中断允许控制位的状态。(2)ET2(IE.5):定时器T2溢出中断允许控制位,位地址是ADH。(3)ES(IE.4):串行口中断允许控制位,位地址是ACH。(4)ET1(IE.3):定时器T1的溢出中断允许控制位,位地址为ABH。(5)EX1(IE.2):外部中断的中断请求允许控制位,位地址是AAH。(6)ET0(IE.1):定时器T0的溢出中断允许控制位,位地址是A9H。(7) EX0(IE.0):外部中断的中断请求允许控制位,位地址是A8H。2)中断优先级控制寄存器IP表5.4IP的结构、位名称、位地址和功能如果同样优先级的请求同时接收到,则内部对中断源的查询次序决定先接受哪一个请求,表5.5列出了同(一优先)级中断源的内部查询顺序。中断优先级三条原则:5.2.3中断处理过程2.中断响应(3)屏蔽同级的中断请求。(4)将中断源入口地址(固定的)送入PC寄存器,自动转入相应中断程序入口地址。中断源口地址如表5.6所示。表5.6AT89C51中断入口地址表4.中断请求的撤除(2)对采用边沿触发方式的外部中断,CPU响应中断时,硬件也会自动清除相应的中断请求标志IE0或IE1。(3)对采用电平触发方式的外部中断,CPU响应中断时,虽也用硬件自动清除相应的中断请求标志IE0或IE1,但相应引脚(P3.2或P3.3)的低电平信号若继续保持下去中断请求标志IE0或IE1就无法清零,也会发生上述重复响应中断的情况。(4)对串行口中断(包括串发TI、串收RI),CPU响应中断后并不能自动清除相应的中断请求标志TI或RI,因此在响应串行口中断请求后,必须由用户在中断服务程序的相应位置通过指令将其清除(复位)。5.3中断系统的应用2.定义中断优先级根据中断源的轻重缓急,划分高优先级和低优先级。3.定义外部中断触发方式一般情况下,应定义边沿触发方式为宜。若外部中断必须采用电平触发方式时,应在硬件电路上和中断服务程序中采取撤除中断请求信号的措施。4.开放中断由于AT89C51采用了二级中断控制方式,因此开放中断必须同时开放二级中断控制,即同时置位EA和需要开放中断的中断允许控制位。5.3.2中断服务主程序(4)若是外部中断电平触发方式,应有中断标志撤除操作。若是串行收发中断,应有对RI、TI清0指令。ORG0000HSTART:LJMPMAIN;跳转到主程序ORG0003HLJMPINTO;转中断服务程序ORG0030H;主程序MAIN:CLRIT0;设为电平触发方式SETBEA;CPU开放中断SETBEX0;允许中断MOVDPTR,#1000H;设置数据区指针……ORG0200HINT0:PUSHPSW;保护现场PUSHACCCLRP3.0;由P3.0输出0NOPNOPSETBP3.0;由P3.0输出1,撤除MOVA,P1;输入数据MOVX@DPTR,A;存入数据存储器INCDPTR;修改指针,指向下一单元……POPACC;恢复现场POPPSWRETI;中断返回例5.2利用定时器作外部中断源。AT89C51内部有两个定时器/计数器,当它们选择为计数器工作方式时,T0(P3.4)或T1(P3.5)引脚上发生的负跳变将使T0或T1计数器加1计数。因此,可将P3.4、P3.5作为外部中断请求输入线,将T0或T1计数初值设定为满量程(#0FFH)。当T0、T1引脚上的电平发生负跳变时,计数器加1计数溢出,引起中断,因而可当作外中断使用,以计数器T0为例,初始化程序如下:MOVTMOD,#06H