《单片机原理及应用》课件-第5章_第1页
《单片机原理及应用》课件-第5章_第2页
《单片机原理及应用》课件-第5章_第3页
《单片机原理及应用》课件-第5章_第4页
《单片机原理及应用》课件-第5章_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

80C51的中断系统

01中断系统的基本概念概念目录中断系统的内部结构020103中断响应与中断返回04中断初始化及中断服务程序结构中断系统的基本概念

CPU的改进增加CPU数据总线宽度,各种16位单片机和32位单片机,数据处理能力要优于8位单片机。存储器的发展片内程序存储器普遍采用闪烁(Flash)存储器;加大片内数据存储容量,以满足动态存储的需要。低功耗化CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式,适于电池供电的便携式、手持式的仪器仪表。中断的概念

举例:课堂教学中,当老师正在按备课教案给同学们讲课时,课堂中任何一个同学都可能突然间提出问题,老师暂停正在讲授的课程内容,解答同学的问题,问题解决后,老师接着刚才的内容继续讲授课程。这样一个过程实质上就是一个中断过程。

什么叫中断?老师按教案讲课是“主程序”;提问同学是“中断源”;提问打断老师正常授课过程可称为“中断请求”;老师认为有必要马上回答这个问题,可称为是“中断允许”;暂停正在讲授的课程内容解答同学的疑问,可称为“中断响应”;解答疑问的过程可称为“中断处理”;解答完疑问继续讲授课程内容可称之为“中断返回”。外设电路内装化众多外围电路集成在片内,系统的单片化是目前发展趋势之一。编程及仿真的简单化多数单片机支持程序的在线编程(ISP),只需一条ISP下载线,就可把仿真调试通过的程序写入单片机的Flash存储器内,省去编程器。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。单片机中CPU正在执行原程序,突然,被意外事情打断,转去执行新程序。CPU执行新程序结束后,又回到原程序中继续执行。这样的过程就叫。中断单片机实现上述中断功能的部件称为中断系统。采用中断方式,CPU将只在外部设备提出请求时才中断正在执行的任务,来执行外部设备请求任务,这样极大地提升了CPU的使用效率。2个外部中断源外部中断是由外部事件引起的中断,分别由引脚P3.2和P3.3引入。外部中断请求有两种信号方式,可通过设置控制位ITX(X=0,1)进行定义。2个定时中断源1个串行中断定时中断是为单片机的计数/定时器设置的中断。当定时器Tx对单片机内部定时脉冲或对外部计数脉冲进行计数发生溢出时,置位TFx,并向CPU申请中断。串行中断是为串行数据传送的需要而设置的中断。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。中断系统的结构

80C51单片机的中断源共有5个:80C51的中断系统有5个中断源,2个优先级单片机中断系统的概念单片机中断系统的结构5个中断源,2个优先级,可实现二级中断嵌套。小结中断源、中断请求、中断允许、中断响应、中断处理、中断返回、中断系统。5.2中断系统的内部结构

实例智能小车01中断控制目录02优先级管理0304CPU的改进增加CPU数据总线宽度,各种16位单片机和32位单片机,数据处理能力要优于8位单片机。片内程序存储器普遍采用闪烁(Flash)存储器;加大片内数据容量,以满足动态存储的需要。低功耗化CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式,适于电池供电的便携式、手持式的仪器仪表。TCON——定时器与外部中断控制寄存器

中断控制IT0TF0IE0外部中断0触发方式控制位当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。外部中断0中断请求标志位外部有中断请求时,硬件使IE0置1,硬件清0。T0溢出中断请求标志位T0计数后,从初值开始加1计数,当最高位产生溢出时,由硬件使TF0置“1”,向CPU申请中断。CPU响应中断时,由硬件自动清“0”,TF0也可由软件清“0”。TCON(88H)TF1TR1TF0TR0IE1

IT1IE0IT0众多外围电路集成在片内,系统的单片化是目前发展趋势之一。多数单片机支持程序的在线编程(ISP),只需一条ISP下载线,就可把仿真调试通过的程序写入单片机的Flash存储器内,省去编程器。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。TCON——定时器与外部中断控制寄存器

IE1IT1TF1外部中断1中断请求标志位定时/计数器T1溢出中断请求标志位外部中断1触发方式控制位TCON(88H)TF1TR1TF0TR0IE1

IT1IE0IT0RITIRI(SCON.0),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI,RI必须由软件清除。TI(SCON.1),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,TI必须由软件清除。SCON的中断标志SCON(98H)TIRI中断允许控制

CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。中断允许寄存器IE

ET1EX1ET0CPU中断允许(总允许)位定时/计数器T0中断允许位EAEX0串行口中断允许位外部中断1允许位该位是“1”时,允许中断;该位是“0”时,禁止中断。定时/计数器T1中断允许位外部中断0允许位ESIE(A8H)EA

ESET1

EX1ET0EX0CPU同一时间只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。将5个中断源分成高级、低级两个级别,高级优先,由IP寄存器控制。为什么要有中断优先级?中断优先级51单片机有两个中断优先级,即可实现二级中断服务嵌套,每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的

。PT0PX1PT1PS外部中断0优先级设定位串行口优先级设定位PX0外部中断1优先级设定位定时/计数器T0优先级设定位定时/计数器T1优先级设定位该位是“1”时,为高级优先级;该位是“0”时,为低级优先级中断优先级控制IP(B8H)PSPT1

PX1PT0PX0

当CPU正在执行某个中断服务程序时,如果发生更高一级的中断源请求中断,CPU可以“中断”正在执行的低优先级中断,转而响应更高一级的中断,这就是中断嵌套。中断嵌套CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。51单片机的中断优先原则高低同一级中的5个中断源的优先顺序外部中断0

定时/计数器T0溢出中断串口中断外部中断1定时/计数器T1溢出中断中断允许标志TCON、SCON寄存器中断允许控制IE寄存器010302小结

优先级管理IP寄存器中断响应与中断返回

2025/10/17275.3

中断响应与中断返回5.3.1中断响应条件有中断请求

相应的中断允许位为1CPU开中断(即EA=1)

遇下面情况之一将不被响应(此间中断条件失效,中断丢失)

正在处理同级或高级中断

当前查询周期不是所执行指令的最后一个机器周期

正在执行RETI或访问IE或IP

的指令

2025/10/1728中断响应时间中断响应至少需要3个完整的机器周期(3~8个)!受阻时要附加3~5个机器周期(无同级或高级中断正进行)

查询周期不是当前指令的最后机器周期(如MUL,+3)查询周期恰逢RETI类指令(且后跟MUL指令+5)2025/10/1729中断响应过程

CPU响应中断过程将相应优先级状态触发器置1(阻断后来同级或低级中断)执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC

)执行中断服务程序

编写中断服务程序注意中断服务程序入口存放指令LJMP或AJMP现场保护与现场恢复2025/10/17305.3.2中断返回中断服务程序最后指令必须是RETI,其功能:将断点从堆栈弹送PC,CPU从原断点继续执行将相应优先级状态触发器清0,恢复原来工作状态注意不能用RET代替RETI

中断服务程序中PUSH和POP必须成对使用1.保存断点CPU执行中断服务程序之前,自动将程序计数器PC的内容(即断点地址)压入堆栈保护起来。2.取中断向量MCS-51单片机有5个中断源,对应5个中断向量地址。各中断源及对应的中断向量地址如表5-2所示。中断源中断向量地址外部中断0()0003H定时器/计数器T0中断000BH外部中断1()0013H定时器/计数器T1中断001BH串行口中断0023H3.执行中断服务程序及中断返回4.响应中断后各中断标志位的清除中断初始化及中断服务程序结构

为实现中断而设计的有关程序称为中断程序。中断程序由中断控制程序和中断服务程序两部分组成。中断控制程序用于实现对中断的控制。中断服务程序用于完成中断源所要求的各种操作。中断程序设计设置堆栈选择中断触发方式开中断设置中断优先级中断控制程序设计

中断控制程序也称中断初始化程序,MCS-51单片机中断系统初始化包括:设置堆栈设置中断优先级开中断中断控制程序设计选择中断触发方式

C51中定义了中断函数,自动实现了相应的现场保护、阻断其他中断、返回时自动恢复现场等处理的程序段。对外部中断而言,可选择电平触发或者跳沿触发。首先是开总中断的开关EA(高电平有效);再打开对应中断(EX0、EX1、ET0、ET1、ES)默认优先级如果需要设定优先级,对应控制位为PS,PT1,PT0,PX1,PX0。CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式,适于电池供电的便携式、手持式的仪器仪表。

中断函数通过使用interrupt关键字和中断号(0到31)来声明。中断号告诉编译器中断程序的入口地址。1032外部中断0定时器/计数器T0外部中断1定时器/计数器T14串行口中断using后面的m用来选择AT89S51的4个不同的工作寄存器区。

函数类型函数名(形式参数)interruptnusingmn为中断号,51子系列取值为0-4,其他值预留。中断服务程序设计CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式,适于电池供电的便携式、手持式的仪器仪表。举例:

voidserial_ISR(void)interrupt4[using1]{/*ISR*/}

上述代码声明了串行通讯中断服务函数。其中,interrupt4说明采用了第四个中断向量(串口中断入口),using1指明采用1区工作寄存器。CMOS化,功耗小,配置有等待状态、睡眠状态、关闭状态等工作方式,适于电池供电的便携式、手持式的仪器仪表。中断源名称中断序号默认优先级顺序中断服务程序入口地址外部中断0()0最高0003H定时器/计数器T0中断1第2000BH外部中断1()2第30013H定时器/计数器T1中断3第4001BH串行口中断4第50023H表5-351系列单片机的中断源的中断序号、默认优先级及对应的中断服务程序入口地址

【例5-1】编写中断初始化程序,设置外部中断0和串行口中断为高级中断,其它中断源为低级中断,外部中断采用边沿触发方式,禁止外部中断1中断,允许其它中断源中断,开总中断。汇编语言的中断初始化程序如下:SETBPX0SETBPSSETBIT0MOVIE,#9BHC51语言的中断初始化程序如下:........PX0=1;PS=1;IT0=1;IE=0x9b;...【例5-2】设外部中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论