




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片微型计算机原理及应用A
Microcontroller’sPrinciple
andApplications课程主讲:訾学博第1章:微机原理概述第2章:单片机概述第3章:MCS-51单片机的硬件结构(*)第4章:MCS-51单片机指令系统(*)第5章:MCS-51单片机程序设计(*)第7章:MCS-51的定时器/计数器(*)第6章:MCS-51的中断系统(*)第8章:MCS-51的串行口(*)第9章:系统扩展技术第10章:模拟接口第11章:人机交互接口课程内容2本讲主要内容8051单片机的中断系统8051单片机的中断处理过程8051单片机的中断服务程序设计8051的多中断源系统设计第6章8051的中断系统3某人看书——某人正在处理一件事A手机铃响——出现另一件须立即解决的事B暂停看书——中止A 书中作记号——记录断点,便于接续电话谈话——处理B 继续看书——继续A的工作 保护断点中断响应中断请求中断返回
(1)现实生活中的中断:6.1.1中断的概念6.1
8051单片机的中断系统4
中断原因:
一个人不可能同时完成两项任务。
单片机只有一个CPU,一旦面临多任务,它也会中断吗?先接电话,然后再继续看书,这样效率最高!5(2)单片机的中断
CPU进行工作A时发生了事件B,请求CPU马上处理
CPU暂时中断当前工作A,转去处理事件B
事件B处理完后,回到工作A被中断的地方继续处理A工作中断源
中断请求
中断服务
中断返回中断系统中断的优点利用率高
实时性强可靠性好中断当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事件请求CPU立即去处理,于是,CPU暂时中止当前的工作,转去处理这个紧急事件,待处理完毕后,再回到原来被中止的地方,继续原来的工作。中断系统能够实现中断处理功能的部件中断处理过程①中断请求②中断响应③中断服务④中断返回7主程序中断请求→响应中断请求返回主程序中断服务程序继续执行主程序中断源引起中断的原因,或者是能发出中断申请的来源又被称作“中断请求源”中断请求中断源向CPU提出的处理请求外部中断0和1(INT0、INT1)采集到低电平或者脉冲下降沿时,产生中断请求。INT0来自P3.2引脚INT1来自P3.3引脚定时/计数器0和1(T0、T1)定时功能时,计数脉冲来自片内计数功能时,计数脉冲来自片外T0来自P3.4引脚T1来自P3.5引脚计数值由8个1变成8个0时,产生中断请求。串行中断发送或接收完一个字节数据时,产生中断请求发送来自P3.0引脚接收来自P3.1引脚8MCS-51的中断源中断技术的应用并行处理
CPU可以与多台外设并行工作,并分时与他们进行信息交换,提高了CPU的工作效率。实时控制
单片机应用系统可能随机请求CPU提供服务。有了中断系统,CPU就可以立即响应并予以处理。故障处理
单片机系统在工作时可能会出现一些突发故障,如电源断电,存储器出错,程序执行错误(如除数为0)等,一旦出现故障,CPU就可及时转去执行故障处理程序,而不必停机。9中断系统为实现中断功能而配置的硬件和编写的软件就是中断系统。中断由谁来实施?中断功能由中断系统来执行。1011IT0=0IT0=1IE0TF0IE1TF1TIRIT0T1TXRX+ESET1EX1ET0EX010PT010PT110PX110PS10PX0矢量地址自然优先级矢量地址自然优先级低级中断请求PC高级中断请求PCIEIPIT1=0IT1=1硬件查询硬件查询源允许总允许优先级中断请求标记中断触发方式中断源中断请求中断允许中断优先级中断响应8051中断系统的结构5个中断源、2个中断优先级6.1.2中断源——中断的申请方8051单片机有5个中断源。见下表
哪些部件可以向CPU申请中断呢?中断源说明外部中断从P3.2引脚引入的外部中断申请定时器T0中断定时器T0溢出时引发中断申请外部中断从P3.3引脚引入的外部中断申请定时器T1中断定时器T1溢出时引发中断申请串行口中断一次串行发送或接收完成后,发出中断申请能够向CPU发出中断申请的部件称为中断源。6.1.3中断控制——中断的控制“工具”中断允许寄存器IE中断优先级寄存器IP定时/计数器及外部中断控制寄存器TCON串口控制寄存器SCON单片机通过对4个特殊功能寄存器实施中断控制:13触发方式设置及中断标志
76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字节地址:88H外部中断触发方式位IT1、IT0(用ITx表示)电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中断后IEx不自动清0(INTx引脚状态)。边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中断后IEx自动清0。外部中断标志IE1、IE0(用IEx表示)两种触发方式比较:
电平方式时,INTx低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断返回之后将再次产生中断。
例,8255的中断请求线在接受读或写操作后即被复位,因此以其去请求电平触发方式的中断比较方便。边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。若CPU暂时不能响应,申请标志也不会丢失,直到响应时才清0。
例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可以作为8051的INTx信号。溢出中断标志TF1、TF0(用TFx表示)溢出中断请求标志TFx,Tx启动后就开始由初值进行加1计数,直至最高位产生溢出使TFx=1向CPU请求中断。CPU响应中断后TFx自动清0。
SCON的中断标志76543210SCONTIRI字节地址:98HRI:串口接收中断标志,响应中断时不能自动清除
TI:串口发送中断标志,响应中断时不能自动清除
外部中断INTi(i=0,1)电平方式触发中断ITi设置为0CPU在每个机器周期的S5P2采样INTi引脚,若INTi引脚为低电平时,则置IEi为1,产生中断请求。跳沿方式触发中断ITi设置为1加到INT0上的信号电平从高跳变到低时,触发中断当CPU响应中断后,IEi由硬件自动复位定时/计数器中断Ti(i=0,1)Ti产生溢出(计数值由8个1变成8个0)时,TFi由0变成1,向CPU发出中断请求。中断响应后,TFi自动复位。串行中断发送(TX)发送完一个字节数据时,TI由0置1,向CPU发出中断请求。中断响应后,必须用指令复位TI。接收(RX)接收完一个字节数据时,RI由0置1,向CPU发出中断请求。中断响应后,必须用指令复位RI。17S1S2S3S4S5S6P1P2P1P2P1P2P1P2P1P2P1P218位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0TF1TF0:当定时/计数器产生溢出时,由硬件置“1”,并申请中断。当转向中断服务时,再由硬件自动清“0”。IE1IE0:当CPU采样到外部中断请求时,由硬件置“1”。当转向中断服务时,再由硬件自动清“0”。IT1IT0:为1时,脉冲触发方式,下降沿有效为0时,电平触发方式,低电平有效位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRITI:当串行口发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”RI:当串行口接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”中断请求所影响到的位地址中断允许控制中断源的开放和屏蔽由IE控制(1,开放;0,禁止)
76543210IEEAESET1EX1ET0EX0字节地址:A8HEX0:外中断0允许ET0:T0中断允许
EX1:外中断1允许ET1:T1中断允许ES:串口中断允许
EA:CPU中断允许
20位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0EA:中断允许总控制位。0禁止,1允许。ES:串行中断允许控制位。0禁止,1允许。ET1:定时计数器1中断允许控制位。0禁止,1允许。EX1外部中断1允许控制位。0禁止,1允许。ET0定时计数器0中断允许控制位。0禁止,1允许。EX0外部中断0允许控制位。0禁止,1允许。中断允许21【例】若允许片内2个定时/计数器中断,禁止其他中断源的中断请求,试编写出设置IE的程序段。CLRES;ES=0,禁止串行口中断CLREX0;EX0=0,禁止外部中断0CLREX1;EX1=0,禁止外部中断1SETBET0;ET0=1,允许定时/计数中断0SETBET1;ET1=1,允许定时/计数中断0SETBEA;CPU开中断(方法1)用位操作指令(方法2)用字节操作指令MOVIE,#10001010BIE位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX010001010中断优先级控制中断优先级由IP控制(1,高级;0,低级)
76543210IPPSPT1PX1PT0PX0字节地址:B8HPX0:外中断0优先级
PT0:T0中断优先级PX1:外中断1优先级PT1:T1中断优先级PS:串口中断优先级同一优先级的自然顺序:自高至低:INT0、T0、INT1、T1、串口。
23位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX0PX0:外部中断0的优先级设定位,1为高,0为低PT0:定时中断0的优先级设定位,1为高,0为低PX1:外部中断1的优先级设定位,1为高,0为低PT0:定时中断0的优先级设定位,1为高,0为低PX:串行中断的优先级设定位,1为高,0为低中断优先级中断优先级遵循的原则几个中断同时申请,先响应高级的中断正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。
为此,中断系统内设有对应高、低2个优先级状态触发器(用户不能寻址)。状态触发器的复位由中断返回指令RETI控制。25【例】设置IP寄存器的初始值,使得MCS-51系统的2个外中断请求为高优先级,其他中断请求为低优先级SETBPX0;PX0=1,外中断0为高优先级SETBPX1;PX1=1,外中断1为高优先级CLRPT0;PT0=0,定时中断0为低优先级CLRPT1;PT1=0,定时中断1为低优先级CLRPS;PS=0,串行中断为低优先级(方法1)用位操作指令(方法2)用字节操作指令MOVIP,#00000101B位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX000000101IP6.2.1中断响应条件和时间中断响应条件①CPU开中断②中断源发出中断请求③中断源的中断允许位为1④无同级或更高级中断正在被服务6.2
8051单片机中断处理过程中断响应的过程①由硬件根据中断源的类型自动生成一条长调用指令LCALLaddr16。Addr16为程序存储器中相应的中断入口地址②CPU执行LCALLaddr16(1)将PC的内容压入堆栈,以保护断点(2)将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址。27中断源入口地址外部中断00003H定时/计数器T0000BH外部中断10013H定时/计数器T1001BH串行中断0023H两个中断入口间隔只有8个字节,一般情况下难以安排下一个完整的中断服务程序,通常只是在中断入口地址处放置一条无条件转移指令,使程序执行转向在其他地址存放的中断服务程序。中断响应被封锁的三种情况①CPU正在处理同级的或更高优先级的中断。一个中断被响应时,要把中断优先级状态触发器设置为“1”(该触发器指出CPU处理的中断优先级别),从而封锁低级中断和同级中断请求。②查询到中断请求的机器周期不是当前正在执行指令的最后一个机器周期。只有当前指令执行完毕后,才能响应中断请求,以确保当前指令完整的执行。③正在执行的指令是RETI或是访问IE或IP的指令。MCS-51中断系统规定,在执行完上述指令后,需要再去执行完一条指令,才能响应新的中断请求。28中断响应时间中断响应至少需要3个完整的机器周期(3~8个)!受阻时要附加3~5个机器周期(无同级或高级中断正进行)
查询周期不是当前指令的最后机器周期(如MUL,+3)查询周期恰逢RETI类指令(且后跟MUL指令+5)6.2.2中断响应过程
CPU响应中断过程将相应优先级状态触发器置1(阻断后来同级或低级中断)执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC)执行中断服务程序
编写中断服务程序注意中断服务程序入口存放指令LJMP或AJMP现场保护与现场恢复6.2.3中断返回中断服务程序最后指令必须是RETI,其功能:将断点从堆栈弹送PC,CPU从原断点继续执行将相应优先级状态触发器清0,恢复原来工作状态注意不能用RET代替RETI
中断服务程序中PUSH和POP必须成对使用6.2.4中断请求的清除
CPU响应某中断后,在中断返回前,中断请求应被撤除,否则会引起另一次中断。1、定时器0和定时器1中断
CPU在响应中断后用硬件自动清除有关的中断请求标志TF0或TF1。2、边沿触发的外部中断在硬件CPU在响应中断后用硬件自动清除有关的中断请求标志IE0或IE1。3、电平触发的外部中断在硬件上CPU对/INT0、INT1没有控制,因此必须另外采取措施—加外部硬件控制和软件编程。4、串行口中断
CPU在响应中断后没有用硬件自动清除中断请求标志RI和TI,必须在中断服务程序中用软件清除之,以撤除中断请求。3233ORG0000H;程序开始LJMPSTART;=LJMP1000HORG0003H;外部中断0入口地址LJMPINTORG1000H;主程序入口START:MOVP1,#0AAH;0AAH=10101010BSETBEX0;允许外部中断0SETBPX0;设置外部中断0为高优先级SETBIT0;设置外部中断0为负跳变触发SETBEA;开中断SJMP$;原地跳转,等待中断INT:CLREA;关中断PUSHPSW;现场保护PUSHACC;SETBEA;开中断CPLA;对累加器A按位取反MOVP1,A;累加器A值送P1端口CLREA;关中断POPACC;现场保护POPPSW;SETBEA;开中断RETI;关中断现场保护开中断中断处理关中断现场恢复开中断中断返回中断服务程序的基本流程6.38051中断程序设计34为了防止此时有高一级的中断进入,以免现场保护的执行过程被中断。关中断现场保护开中断中断处理关中断现场恢复开中断中断返回35关中断现场保护开中断中断处理关中断现场恢复开中断中断返回所谓现场是指中断时刻单片机中某些寄存器和存储器单元中的数据或状态。为了不让中断服务程序的执行破坏这数据或状态,以免中断返回后影响主程序的运行,需要将他们送入堆栈保存起来。36关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了允许有更高级的中断进入。这样一来,除了现场保护和现场恢复外,中断处理的过程仍允许中断嵌套的功能37关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了防止此时有高一级的中断进入,以免现场恢复的执行过程被中断。38关中断现场保护开中断中断处理关中断现场恢复开中断中断返回中断处理结束后,在返回主程序前,把保存的现场的内容从堆栈中弹出,以恢复那些寄存器和存储单元中的原有内容39关中断现场保护开中断中断处理关中断现场恢复开中断中断返回为了允许有更高级的中断进入。现场恢复后,仍允许中断嵌套的功能。40关中断现场保护开中断中断处理关中断现场恢复开中断中断返回必须是返回指令RETI。CPU执行完这条指令后,把响应中断时所置“1”的优先级状态触发器清“0”,然后从堆栈中弹出栈顶上的两个字节的断点地址送到程序计数器PC,弹出的第一个字节送入PCH,第二个字节送入PCL,CPU从断点处重新执行被中断的主程序【例6-1】单外部中断源示例ORG0000HLJMPMAIN
ORG0003H
LJMPINT0
ORG0030HMAIN:CLRIT0;电平
SETBEA
SETBEX0
MOVDPTR,#1000H……
主程序:中断服务程序:ORG0200HINT0:PUSHPSWPUSHACCCLRP3.0;由P3.0输出0NOPNOPSETBP3.0MOVP1,#0FFH;置P1口为输入
MOVA,P1;输入数据
MOVX@DPTR,A;存入数据存储器
INCDPTR;修改数据指针,指向下一个单元
……POPACC;恢复现场
P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学水处理技术指南
- 2025至2030中国超级计算机行业市场深度研究及发展前景投资可行性分析报告
- 化工企业废弃物处理方案
- 增加销售额的利器大揭秘
- 农学领域水稻种植管理规程
- 化工企业企业社会责任报告
- 企业员工薪酬调整方案
- 品牌管理制度的建模方案
- 2025台州路桥区公开招聘中小学教师40人笔试备考试题及答案解析
- 2025年老年病学全科综合护理实践考核答案及解析
- 中国移动通信网运行维护规程(修订版)
- 烧结岗位安全操作培训-PPT课件
- 【课件】1.2 点线传情——造型元素之点线面 课件-2021-2022学年高中美术人美版(2019)选修绘画
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- 运动处方(课堂PPT)
- 物资储备与物流方案
- 财务报销流程培训PPT模板课件
- 关于加强铁路企业年金管理的指导意见
- 幼儿园体检结果分析评价表
- 资金筹集业务核算培训教材(共39页).ppt
- 区域生态环境建设.ppt
评论
0/150
提交评论