




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章AT89S52单片机的
中断系统第4章
AT89S52单片机的中断系统单片机中断技术概述AT89S52的中断系统结构中断允许与中断优先级的控制响应中断请求的条件外部中断的响应时间外部中断的触发方式选择中断请求的撤销中断服务子程序的应用设计多外部中断源系统设计2单片机外设的编程形式编程形式——查询式与中断式3【例】单片机管理洗衣机的外设类型按键电磁阀(注水阀、排水阀等)电机定时器数码管显示LED指示灯串行口……查询方式4单片机主程序里设定成一个大循环,为了确保事件发生不会遗漏,CPU依次轮循各个事件的状态标志位,根据标志位开展相关的处理服务。服务程序执行完成,单片机会继续查询下一个事件是否发生。程序设计较简单。由于要遍历所有的事件状态位,程序随着事件的增多而严重影响执行效率。中断方式5中断方式下,CPU大大解放,程序执行效率高。中断方式下,单片机可以选择特定的中断进行响应和处理,屏蔽那些不需要响应和处理的中断。而轮询下,单片机必须响应和处理每一个设备。中断方式下,如果有多个中断同时发生,单片机可以根据需要优先响应和处理某一中断。而查询方式下,单片机需要逐一访问所有设备,有需要就得服务,没有优先顺序之分。中断方式的程序设计较复杂,且需要硬件支持配合。中断(Interrupt)技术概述
中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。
生活中的中断与单片机的中断:
6某人看书执行主程序日常事务电话铃响中断信号如INT=0中断请求暂停看书暂停执行主程序中断响应书中作记号当前PC入栈保护断点电话谈话执行中断程序中断服务继续看书返回主程序中断返回当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。7①中断源②中断申请③开放中断④保护现场⑤中断服务⑥恢复现场⑦中断返回(前面提到的电话)(电话发出信号提出申请)(乙方同意传送)(安排好当前的工作)(响应乙方的要求)(打完收工……)(继续做打断前的工作)中断涉及的几个环节8AT89S52中断系统结构中断系统有6个中断请求源(简称中断源),2个中断优先级,可实现两级中断服务程序嵌套。每一中断源可用软件独立控制为允许中断或关中断状态,中断优先级均可用软件来设置。9中断请求源AT89S52中断系统共有6个中断请求源:INT0*—外部中断请求0,中断请求信号由INT0*脚输入,中断请求标志为IE0。INT1*—外部中断请求1,中断请求信号由INT1*脚输入,中断请求标志为IE1。定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。定时器/计数器T1计数溢出发出的中断请求,中断请求标志为TF1。串行口中断请求,中断请求标志为发送中断TI或接收中断RI。T2的中断请求源,含有计数溢出(TF2)和“捕捉”(EXF2)两种中断请求标志,经或门共用一个中断矢量。两种中断触发是由T2的两种不同工作方式决定的。10中断请求标志寄存器1.TCON寄存器——定时器/计数器的控制寄存器字节地址为88H(可位寻址)。TF1—定时器/计数器T1的溢出中断请求标志位。T1—计数溢出时由硬件使TF1=1,向CPU申请中断。CPU响应TF1中断时,TF1自动清0,也可由软件清0。TF0—定时器/计数器T0的溢出中断请求标志位,功能与TF1类似。IE1—外部中断请求1的中断请求标志位。IE0—外部中断请求0中断请求标志位,功能与IE1类似。IT1—选择外部中断请求1为跳沿触发还是电平触发。IT1=0,电平触发方式,引脚上低电平有效且IE1=1,转向中断服务程序时,由硬件自动把IE1清0。IT1=1,跳沿触发方式,加到引脚上的外部中断请求输入信号电平从高到低的负跳变有效,并把IE1=1,转向中断服务程序时,由硬件自动把IE1清“0”。IT0—选择外部中断请求0为跳沿触发方式还是电平触发方式,其意义与IT1类似。CPU复位后,TCON被清“0”,6个中断源的中断请求标志均为0。
112.SCON寄存器——串行口控制寄存器
字节地址为98H,可位寻址。串行口的发送中断请求标志TI和接收中断的中断请求标志RITI—串行口的发送中断请求标志位。每发送完一帧串行数据后,TI自动置1,必须由软件清0RI—串行口接收中断请求标志位。串行口接收完一个串行数据帧,硬件自动使RI中断请求标志置1,必须用指令清0123.T2CON——定时器2的控制寄存器字节地址为C8H,可位寻址,位地址为C8H~CFH。TF2:当T2的计数器计数计满溢出回0时,由内部硬件置位TF2发出中断请求,必须由软件清0。但是当RCLK位或TCLK位为1时将不予置位。EXF2:当由引脚T2EX上的负跳变引起“捕捉”或“重新装载”且EXEN2位为1,则置位EXF2标志位,向CPU发出中断请,求必须由软件清0。
13中断允许与中断优先级的控制中断允许控制由中断允许寄存器IE控制(第一级管理)
中断优先级控制由中断优先级寄存器IP控制(第二级管理)IE——中断允许寄存器字节地址为A8H,可位寻址。EA—中断允许总开关控制位。
ES—串行口中断允许位。ET1——定时器/计数器T1的溢出中断允许位。EX1——外部中断1中断允许位。ET0——定时器/计数器T0的溢出中断允许位。EX0——外部中断0中断允许位。复位以后,IE被清“0”,所有的中断请求被禁止。改变IE的内容,可由位操作指令来实现(即SETBbit;CLRbit),也可用字节操作指令实现14IE【例】若允许片内2个定时器/计数器T1、T0中断,并禁止其他中断请求,请编写设置IE的相应程序段。用位操作指令CLR ES ;禁止串行口中断CLR EX0 ;禁止外部中断0中断CLR EX1 ;禁止外部中断1中断CLR ET2 ;禁止定时器/计数器T2中断SETB ET0 ;允许定时器/计数器T0中断SETB ET1 ;允许定时器/计数器T1中断SETB EA ;总中断开关位开放用字节操作指令MOVIE,#8AH15IE中断优先级寄存器IP字节地址为B8H,可位寻址。可用程序改变其中断优先级AT89S52的中断请求源有两个中断优先级,由软件分别设置为高优先级中断或低优先级中断,可实现两级中断嵌套各中断源的中断优先级关系低优先级可被高优先级中断,高优先级不能被低优先级中断。如果某一中断源被设置为高优先级中断,则不能被任何其他的中断源的中断请求所中断。任何一种中断一旦得到响应,不会再被它的同级中断源所中断。16PT2—定时器T2中断优先级控制位PS—串行口中断优先级控制位PT1—定时器T1中断优先级控制位PX1—外部中断1中断优先级控制位PT0—定时器T0中断优先级控制位PX0—外部中断0中断优先级控制位IP用位操作指令或字节操作指令更新,以改变中断优先级。复位后IP内容为0,各个中断源均为低优先级中断。17IPAT89S52中断系统有两个不可寻址的“优先级激活触发器“一个指示某高优先级的中断正在执行,所有后来的中断均被阻止另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。18对同时发生多个中断申请时不同优先级的中断同时申请(很难遇到)——先高后低相同优先级的中断同时申请(很难遇到)——按序执行正处理低优先级中断又接到高级别中断
——高打断低正处理高优先级中断又接到低级别中断
——高不理低19【例】
IP寄存器初始化,AT89S52的两个外中断请求为高优先级,其他中断请求为低优先级。用位操作指令SETBPX0 ;外中断0设置为高优先级SETBPX1 ;外中断1设置为高优先级CLRPS ;串行口设置为低优先级CLRPT0 ;定时器/计数器T0为低优先级CLRPT1 ;定时器/计数器T1为低优先级CLRPT2 ;定时器/计数器T2为低优先级用字节操作指令MOVIP,#05H20IP响应中断请求的条件总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。该中断源发出中断请求,即对应的中断请求标志为1。该中断源的中断允许位EA=1,即该中断被允许。无同级或更高级中断正在被服务。CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。21中断响应过程先使相应优先级状态触发器置1;执行一个硬件子程序的调用,硬件清零相应中断请求标志(TI、RI除外)由硬件自动执行一条长调用指令“LCALLaddr16“(程序存储区中相应的中断入口地址)
如:对于外部中断INT1的响应,硬件自动生成的长调用指令为
LCALL0013H将程序计数器PC的内容压入堆栈以保护断点,再将中断入口地址装入PC,使程序转向响应中断请求的中断入口地址2223返回过程:(RETI执行后)使相应优先级状态触发器清0。从堆栈中弹出栈顶的两个字节内容送PC——恢复断点。CPU接着中断处继续执行原程序。各中断源服务程序的入口地址(中断矢量)是固定的当遇到下列三种情况之一时中断响应被封锁:CPU正在处理同级或更高优先级的中断。所查询的机器周期不是当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应,以确保当前指令执行的完整性。正在执行的指令是RETI或是访问IE或IP的指令,在执行完这些指令后,需要再执行完一条指令,才能响应新的中断请求。24外部中断的响应时间外部中断的最短响应时间为3个机器周期。中断请求标志位查询占1个机器周期,而这个机器周期恰好处于指令的最后一个机器周期。在这个机器周期结束后,中断即被响应,CPU接着执行一条硬件子程序调用指令LCALL到相应中断服务程序入口,需要2个机器周期。外部中断响应的最长时间为8个机器周期。执行RETI或访问IE或IP的指令,最长需要2个机器周期接着再执行一条指令,最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期再加上硬件子程序调用指令LCALL的执行,需要2个机器周期。如果已经在处理同级或更高级中断,外部中断请求的响应时间取决于正在执行的中断服务程序的处理时间。25外部中断的触发方式选择电平触发方式和跳沿触发方式。电平触发方式外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入引脚的电平变化而变化。在中断服务程序返回之前,外部中断请求输入必须无效(即外部中断请求输入已由低电平变为高电平),否则会再次响应中断。本方式适合于外部中断以低电平输入且中断服务程序能清除外部中断请求源(即外中断输入电平又变为高电平)的情况。26跳沿触发方式外部中断申请触发器能锁存外部中断输入线上的负跳变。CPU通过相继连续两次采样,发现一个机器周期为高,下一个机器周期采样为低,则中断申请触发器置1,直到CPU响应此中断时清0。输入的负脉冲宽度至少保持12个时钟周期,才能被采样到。适合于以负脉冲形式输入的外部中断请求。中断请求的撤销1.定时器/计数器T0、T1中断请求的撤销硬件会自动把中断请求标志位(TF0或TF1)清0,自动撤销。2.外部中断请求的撤销(2种)跳沿方式外部中断请求的撤销包括两项:中断标志位清0是在中断响应后
由硬件自动完成的。外中断请求信号的撤销,由于跳
沿信号过后也消失了就自动撤销。电平方式外部中断请求的撤销中断标志位清0(硬件自动完成)在中断响应后把中断请求信号输入引脚从低电平强制变为高电平可在中断服务程序中增加如下指令:
ORLP1,#01H;P1.0为“1”ANLP1,#0FEH;P1.0为“0”ORLP1,#01H;P1.0为“1”273.串行口中断请求的撤销串行口中断请求的撤销只能使用软件的方法,在中断服务程序中进行:
CLRTI ;清TI标志位 CLRRI ;清RI标志位4.定时器/计数器T2中断请求的撤销定时器/计数器T2的中断请求包括两种:TF2和EXF2。中断结束后,中断请求标志位TF2或EXF2必须由软件清0。所以定时器/计数器T2中断请求的撤销只能使用软件的方法,在中断服务程序返回前完成。28中断服务子程序的设计设计中断服务子程序需要首先明确:1.中断服务子程序设计的任务设置中断允许控制寄存器IE,允许相应中断请求源中断。设置中断优先级寄存器IP,确定所用中断源的优先级。若是外部中断源,还要设置中断请求的触发方式决定采用电平触发方式还是跳沿触发方式。编写中断服务子程序,处理中断请求。前3条一般放在主程序的初始化程序段中。【例】假设允许外部中断0中断,设定为高级中断,采用跳沿触发方式,其他中断源为低级中断。初始化程序:
SETBEA ;EA位置1,总中断开关位开放 SETBEX0 ;EX0位置1,允许外部中断0产生中断 SETBPX0 ;PX0位置1,外部中断0为高优先级中断 SETBIT0 ;IT0位置1,外部中断0为跳沿触发方式29
采用中断时的主程序结构程序必须先从主程序起始地址0000H执行。所以,在0000H起始地址的几个字节中,用无条件转移指令,跳向主程序。一般在进入中断后,用一条无条件转移指令,把中断服务子程序跳转到远离其他中断入口的入口地址处。
【注】如果有多个中断源,就有多个“ORGX1X2X3X4H”的入口地址,多个“中断入口地址”必须依次由小到大排列。主程序MAIN的起始地址Y1Y2Y3Y4H,根据具体情况来安排。30中断服务子程序的流程31(1)现场保护和现场恢复现场保护:为使中断服务子程序的执行不破坏这些数据或状态,要送入堆栈保存起来。现场保护一定要位于中断处理程序的前面,把保存的现场内容从堆栈中弹出恢复原有内容,即现场恢复。现场恢复一定要位于中断处理的后面。堆栈操作指令:“PUSHdirect”和“POPdirect”,是供现场保护和现场恢复使用的。(2)关中断和开中断
现场保护前和现场恢复前关中断。在现场保护和现场恢复之后开中断,为下一次中断做准备。中断处理可以被打断,但原现场保护和现场恢复不能变。对于不允许被其他的中断嵌套。可在现场保护前先关闭总中断开关位EA,待中断处理完毕后再开EA。(3)中断处理根据任务的具体要求来编写中断处理程序。(4)中断返回中断服务子程序最后一条指令必须是返回指令RETI。【例】设现场保护只将PSW寄存器和累加器Acc的内容压入堆栈中保护,一个典型的中断服务子程序如下:32【例】通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。已知:(B)=01H,要求采用边沿触发,低优先级。实际意义:在INT1*引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务是依次点亮8盏灯中的一盏。33P1.0P1.7INT1300ORG0000HLJMPMAINORG0013H ;中断矢量
LJMPINTORG1000HMAIN:SETBEA ;开总中断允许“开关”
SETBEX1 ;开分中断允许“开关”
CLRPX1 ;0优先级(也可不要此句)
SETBIT1 ;边沿触发
MOVB,#01H;给B寄存器赋初值 SJMP$ ;原地等待中断申请INT:MOVA,B ;自B寄存器中取数
RLA ;左环移一次
MOVB,A ;存回B,备下次取用
(MOVP1,A) ;输出到P1口
RETI ;中断返回中断服务程序34IEEX0ET0EX1ET1ES—
EAIPPX0PT0PX1PT1PS——————35多外部中断源系统设计——中断/查询相结合
如果两个外部中断请求源不够用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- arcgis软件的认识与使用实验报告
- 桥梁设计施工方案
- 高轨星载北斗GNSS接收机规范 编制说明
- 2025年哈尔滨电力职业技术学院单招职业倾向性测试题库参考答案
- 2025年信阳艺术职业学院单招职业技能测试题库新版
- 2025年广安职业技术学院单招职业倾向性测试题库附答案
- 2025年毕节职业技术学院单招职业倾向性测试题库新版
- 2023一年级数学上册 2 位置教学实录 新人教版
- 提高办公效率的智能化管理策略
- 9生活离不开他们(教学设计)-2023-2024学年道德与法治四年级下册统编版
- 对氯氰苄、α-异丙基对氯苯基乙酰氯、邻氟苯甲酰氯和2-氯-4-甲砜基苯甲酸项目可行性研究报告书
- 老旧供热管网改造工程技术标投标方案
- 碲化镉薄膜太阳电池
- 机械制造工艺学课程设计阶梯轴夹具设计
- 2022云南专升本《地理学》考试试题与答案
- Q-CR 9521-2018 高速铁路信号工程细部设计和工艺质量标准
- GB/T 9161-2001关节轴承杆端关节轴承
- GB/T 2820.7-2002往复式内燃机驱动的交流发电机组第7部分:用于技术条件和设计的技术说明
- GB/T 26060-2010钛及钛合金铸锭
- 基础写作全套课件507
- 应急监测培训课件
评论
0/150
提交评论