51单片机的中断体系结构_中断的响应过程

51单片机的中断系统十分重要,分为外部中断和定时器中断。本文主要详解51单片机的中断体系结构以及中断的响应过程,具体的跟随小编一起来了解一下。
51单片机的中断体系结构详解 80c51的中断系统有5个中断源(8052有 6个) ,2个优先级,可实现二级中断嵌套 。mcs-51系列单片机中断系统的机构如下:
与中断系统相关的特殊寄存器:
1)中断允许控制寄存器(ie)------ 控制各中断的开放和屏蔽
2)中断优先级控制寄存器(ip)------设置各中断的优先级
3)定时器/计数器控制寄存器(tcon)----定时器和外部中断的控制
4)串行口控制寄存器(scon)------串行中断的控制
中断类型分为三类:
1)t0、t1是2个定时器/计数器中断,由片内定时器提供;
2)int0、int1是2个外部中断,由引脚p3.2和p3.2提供;
3)rx、tx为串行口中断所用,由片内串口提供。
1、(p3.2)/(p3.3)可由it0(tcon.0)/it1(tcon.2)选择其为低电平有效还是下降沿有效。当cpu检测到p3.2/p3.3引脚上出现有效的中断信号时,中断标志ie0(tcon.1)/ie1(tcon.3)置1,向cpu申请中断。
2、tf0(tcon.5)/tf1(tcon.7),片内定时/计数器t0/t1溢出中断请求标志。当定时/计数器t0/t1发生溢出时,置位tf0/tf1,并向cpu申请中断。
3、ri(scon.0)或ti(scon.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位ri或当串行口发送完一帧串行数据时置位ti,向cpu申请中断。
1)定时器中断的使用(以定时器0为例)
……
tmod |= 0x01 | 0x04; //使用模式1,16位计数器,使用“|”符号可以在使用多个定时器时不受影响
th0=0xff; //给定初值
tl0=245; //从245计数到255
ea=1; //总中断打开
et0=1; //定时器中断打开
tr0=1; //定时器开关打开
void timer0_isr(void) interrupt 1 using 1 //中断服务程序
{
th0=0xff; //重新给定初值
tl0=245;
……
}
2)外部中断的使用(以外部中断0为例)
…………
ea=1; //全局中断开
ex0=1; //外部中断0开
it0=0; //电平触发
void isr_key(void) interrupt 0 using 1 //中断服务程序
{
…………
}
中断的响应过程 若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,而且①当前正在执行的那条指令已被执行完
1、当前末响应同级或高级中断
2、不是在操作ie,ip中断控制寄存器或执行reh指令则单片机响应此中断。
在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。中断得到响应后,自动清除中断请求标志(对串行i/o端口的中断标志,要用软件清除),将断点即程序计数器之值(pc)压入堆栈(以备恢复用);然后把相应的中断入口地址装入pc,使程序转入到相应的中断服务程序中去执行。
各个中断源在程序存储器中的中断入口地址如下:
中断源 入口地址
int0(外部中断0) 0003h
tf0(to中断) 000bh
int1(外部中断1) 0013h
tfl(t1中断) 001bh
ri/ti(串行口中断) 0023h
由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令,以转入到安排在那儿的中断服务程序。以t1中断为例,其过程下如图四所示。
由于5个中断源各有其中断请求标志0,tf0,iel,tfl以及ri/ti,在中断源满足中断请求的条件下,各标志自动置1,以向cpu请求中断。如果某一中断源提出中断请求后,cpu不能立即响应,只要该中断请求标志不被软件人为清除,中断请求的状态就将一直保持,直到cpu响应了中断为止,对串行口中断而言,这一过程与其它4个中断的不同之处在于;即使cpu响应了中断,其中断标志ri/ti也不会自动清零,必须在中断服务程序中设置清除ri/ti的指令后,才会再一次地提出中断请求。
cpu的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执行reti中断返回指令后,断点值自动从栈顶2字节弹出,并装入pc寄存器,使cpu继续执行被打断了的程序。
下面给出一个应用定时器中断的实例。
现要求编制一段程序,使p1.0端口线上输出周期为2ms的方波脉冲。设单片机晶振频率
fosc=6mhz.
1、方法:利用定时器t0作1ms定时,达到定时值后引起中断,在中断服务程序中,使p1.0的状态取一次反,并再次定时1ms。
2、定时初值:机器周期mc=12/fosc=2us。所以定时lms所需的机器周期个数为500d,亦即0lf4h。设t0为工作方式1(16位方式),则定时初值是(01f4h)求补=feoch
串行端口的控制寄存器:
串行端口共有2个控制寄存器scon和pcon,用以设置串行端口的工作方式、接收/发送的运行状态、接收/发送数据的特征、波特率的大小,以及作为运行的中断标志等。
①串行口控制寄存器scon
scon的字节地址是98h,位地址(由低位到高位)分别是98h一9fh。scon的格式如图五所示。
smo,sml:
串行口工作方式控制位。
00--方式0;01--方式1;
10--方式2;11--方式3。
sm2:
仅用于方式2和方式3的多机通讯控制位
发送机sm2=1(要求程控设置)。
当为方式2或方式3时:
接收机 sm2=1时,若rb8=1,可引起串行接收中断;若rb8=0,不
引起串行接收中断。sm2=0时,若rb8=1,可引起串行接收中断;若
rb8=0,亦可引起串行接收中断。
ren:
串行接收允许位。
0--禁止接收;1--允许接收。
tb8:
在方式2,3中,tb8是发送机要发送的第9位数据。
rb8:
在方式2,3中,rb8是接收机接收到的第9位数据,该数据正好来自发
送机的tb8。
ti:
发送中断标志位。发送前必须用软件清零,发送过程中ti保持零电平,
发送完一帧数据后,由硬件自动置1。如要再发送,必须用软件再清零。
ri:
接收中断标志位。接收前,必须用软件清零,接收过程中ri保持零电平,接收完一帧数据后,由片内硬件自动置1。如要再接收,必须用软件再清零。
电源控制寄存器pcon
pcon的字节地址为87h,无位地址,pcon的格式如图六所示。需指出的是,对80c31单片机而言,pcon还有几位有效控制位。
smod:波特率加倍位。在计算串行方式1,2,3的波特率时;0---不加倍;1---加倍。

金融和大模型的“两层皮”问题
意法半导体推出汽车级6轴惯性传感器满足先进自动驾驶系统需求
树米科技计划加快完善大数据建模与企业SaaS标准化服务
plc无线通讯方案
如何让水货笔记本英文操作系统支持中文
51单片机的中断体系结构_中断的响应过程
ob2500pcp电源代换芯片PN8370/PN8680
xR的概念、原理与前景分析
新型半导体纳米材料成为解决当前全球能源与环境危机的一种理想途径之一
基于FPGA实现的一款逻辑分析仪DSLogic介绍
可穿戴设备与AI技术在医疗领域中相结合
诺基亚公布其5G商用合同达到100个
荣耀V9评测:华为荣耀V9你不知道的两项功能,还不看看?
区块链永续合约交易所开发币币交易所开发
直流电源的测试与规范
中际联合:风电高空安全作业设备“隐形冠军”
嵌入式C编码文件头申明规范
猎板宣布多层板工艺再次升级
E现场:vivo z5x性能实力派
中国建设银行开设全自动化分行