单片微机原理第四章42定时、中断、串行课件_第1页
单片微机原理第四章42定时、中断、串行课件_第2页
单片微机原理第四章42定时、中断、串行课件_第3页
单片微机原理第四章42定时、中断、串行课件_第4页
单片微机原理第四章42定时、中断、串行课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

4.2中断系统及应用4.2.1中断有关的概念4.2.28051中断标志及控制寄存器4.2.3中断响应的条件及响应过程

4.2.4中断程序设计思想4.2.5中断应用程序设计举例4.2.1

中断有关的概念中断:利用软硬件配合,根据某种需要断开正在执行的程序而转向另一专门程序,结束后再返回到原断开处继续执行被中止的程序,这个过程称为中断。中断服务程序或中断处理程序:中断后转向执行的程序。断点:原程序被断开的位置(地址)。中断源:发出中断信号的设备。中断请求或中断申请:中断源要求中断服务所发出的标志信号。中断源包括:外部设备如键盘、打印机、磁盘驱动器等,还有内部定时器、故障源,以及根据需要人为设置的中断源等等。中断响应:中断源向CPU发出中断申请,CPU经过判断认为满足条件,则对中断源作出的答复。

中断流程1.外部中断源2个:INT0(P3.2)、INT1(P3.3)

由P3.2端口线引入,低电平或下降沿引起。由P3.3端口线引入,低电平或下降沿引起。2.内部中断源T0溢出中断:定时/计数器0中断,由T0溢出引起。T1溢出中断:定时/计数器1中断,由T1溢出引起。串行口中断TI/RI:串行I/O中断,完成一帧字符发送/接收引起。805l单片机共有5个中断:4.2.28051中断标志及控制寄存器一、中断标志寄存器TCON、SCONTCON是定时/计数器控制寄存器SCON是串行口控制寄存器1.TCON中断标志位TCON寄存器中与中断有关位如下:D7D6D5D4D3D2D1D0

①TF1和TF0定时器溢出中断申请标志位。②IE1和IE0外部中断申请标志位。IE1=1表示外部中断1(1NT1)发出中断申请;IE0=1表示外部中断0(1NT0)发出中断申请。

TF1TR1TF0TR0IE1IT1IE0IT0③IT1和IT0外部中断触发方式控制位。

IT1=1边沿触发方式INT1端有下跳变↓时,发出中断申请,把IE1置“1”;

IT1=0电平触发方式

INT1端加低电平时,发出中断申请,把1E1置“1”。只有外部中断才有中断触发方式控制。在边沿触发方式,中断响应后由硬件自动清除中断标志IE1和IE0。在电平触发方式,无论硬件或软件均不能清除中断标志位,只有把INT1或INT0端的低电平撤掉,才能清除IT1或IT0。二、中断优先级控制寄存器IP8051单片机内有5个中断。若有两个以上中断同时发出中断请求,先响应哪一个的申请则是CPU必须解决的问题中断优先级:根据每个中断源的重要程度和中断请求的紧急程度,事先排好一个响应中断的顺序,这个顺序叫中断优先级。1.自然优先级(机器内预先安排好的中断顺序)

外部中断0(INT0)最高级定时器T0中断外部中断1(INT1)定时器T1中断串行口中断最低级

T0、T1同时发出中断申请,CPU自然会先响应T0的中断请求。因为T0的优先级比T1优先级高。2.优先级设定通过对优先级控制寄存器IP的设置,把中断源分成两大类:高优先级中断源和低优先级中断源。若同一级有几个中断源申请,则按自然优先级顺序响应。IP(B8H)格式如下:

D7D6D5D4D3D2D1D0

INT0中断优先级控制位T0中断优先级控制位INT1中断优先级控制位T1中断优先级控制位串行口中断优先级控制位PSPT1PX1PT0PX0指令MOVIP,#09H;把T1、INT0设置为高优先级,其余为低优先级。若T1、INT0同时发出中断申请,按自然优先级,先响应外部中断即INT0,后响应定时器T1的中断。例如,若允许T0中断,禁止其它中断,则中断允许控制字为82H(EA=1,ET0=1),由送数指令设置。方法一:程序MOVIE,#82H;IE寄存器送入控制字方法二:

由于IE寄存器可以位寻址,也可用位寻址指令设置它。程序SETBEA;开总中断SETBET0;T0中断允许805l系统复位后,IE、IP都被清0,若使用中断必须由程序事先对二者进行设置。4.2.3中断响应的条件及响应过程中断源发出中断请求后,要得到CPU的响应是有条件的。基本条件如下:①首先中断源要发出中断请求,即把中断标志寄存器TCON、SCON相应位置“1”。②中断总允许位EA=1,CPU允许响应中断申请。③IE寄存器相应中断允许位置“1”,允许该中断源发出中断申请,进行中断。④没有更高一级中断响应。4.2.3中断响应的条件及响应过程中断响应过程:

当中断条件满足后,CPU响应中断。这时,硬件自动产生长调用LCALL指令。此指令把主程序断点地址压入堆栈,然后把中断服务程序入口地址装入PC。在PC指引下进入中断服务程序。中断服务程序最后都必须有一条中断返回指令RETI。当执行RETI时把程序断点弹出并送往PC,这样程序又返回到主程序断点处,继续执行主程序。4.2.4中断程序设计思想中断系统虽是硬件系统,但必须由相应软件配合才能正确使用。设计中断程序需要弄清以下几个方面的问题。一、中断程序设计的任务①设置中断允许控制寄存器IE,允许相应中断源中断。②设置中断优先级寄存器IP,选择、分配所使用中断源的优先级。③若是外部中断源,还要设置中断请求触发方式IT1或IT0,决定采用边沿触发方式还是电平触发方式。④编写中断服务程序,处理中断请求。前3条一般放在初始化主程序中。

例如,假设允许外部中断0中断,并设定它为最高级中断,其它中断源为低级中断,采取边沿触发方式。在主程序中可使用如下指令:SETBEA;开总中断SETBEX0;允许外部中断0产生中断SETBPX0;外部中断0为高级中断SETBIT0;外部中断0申请信号为边沿触发方式二、中断入口地址中断入口地址和中断源是一一对应关系。MCS—51系列有5个中断对应5个入口地址:中断源入口地址INT00003HT0000BHINT10013HT1001BH串行口0023H中断服务程序必须从相应入口地址开始存放。当中断响应时由硬件生成的长调用指令(LCALL)先把断点压入堆栈保存,然后把上述相应入口地址装入PC。中断服务程序从入口地址开始执行,直到返回指令RETI为止。四、中断服务程序基本结构关中断↓保护现场↓开中断↓中断处理↓关中断↓恢复现场↓开中断↓中断返回4.2.5中断应用程序设计举例例1

使用定时器定时,每隔10s使与P1.0口连接的发光二极管闪烁10次;设P1.0高电平灯亮,反之灯灭。分析:中断源T0,入口地址000BH。当T0溢出时TF0为“l”发出中断申请,条件满足CPU响应,进入中断处理程序。

置循环常数T0初始值闪烁常数开中断启动T0置循环常数YYN重装常数10s?灯闪10次?置循环常数N主程序框图中断服务程序框图主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁。程序如下:ORG0000H;程序起始地址LJMPMAIN;主程序入口地址ORG000BH;T0中断入口地址LJMPINT;中断人口地址ORG0100HMAIN:MOVR0,#200;10s循环次数MOVTMOD,#01H;T0定时方式1MOVTH0,#3CH;50MS初值高位MOVTL0,#0B0H;50ms初值低位MOVR1,#10;闪烁次数SETBEA;开总中断SETBET0;开T0中断SETBTRO;启动T0LP:SJMPLP;循环等待中断定时/计数器及中断系统综合【例】设MCS-51单片机系统时钟频率fosc为6MHz,请编出利用定时/计数器T0在P1.0引脚上产生周期为2秒,占空比为50%的方波信号的程序(1)主程序任务:1)T0工作方式的设定:选择方式1(16位方式)(最大定时131ms)2)定时常数的设定:TC=216-100ms/2μs=15536=3CB0H即:TH0应装3CH,TL0应装B0H。3)中断管理:允许T0中断,开放总中断即:IE应装10000010B。4)启动定时器T0:SETB TR05)设置软件计数器初值:(如使用R7)即R7应装0AH6)动态停机:SJMP $完整程序如下: ORG0000HAJMPMAIN ORG000BHAJMP TOINT ORG0030HMAIN: MOV TMOD,#01H MOVTH0,#3CH MOV TL0,#0B0H MOVIE,#82HSETB TR0 MOV R7,#0AH SJMP $TOINT: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R7,NEXT CPL P1.0MOV R7,#0AHNEXT: RETI END返回本节

例2设计交通十字路口特种车优先通过的程序。要求:正常情况,东西南北十字路口的灯按要求正常行驶,一旦特种车(如救护车、消防车等)到达,则给外部中断INT0(P3.2)端一个负跳变,发出中断申请。条件满足后转中断处理程序,使东西南北四个方向灯全“红”,一切车全停,只有特种车可以畅通无阻地通过,10s后各种车辆恢复正常运行。重点介绍程序结构。特种车优先通过的交通灯程序框图如图4-4所示。

主程序结构ORG0000HLJMPMAINORG0003HLJMPINTORG0200HMAIN:SETBEA;INT0中断设置SETBEX0SETBIT0↓

正常行驶程序↓

中断服务程序结构

ORG1000HINT:PUSHACC;保护现场PUSHPSW

四个方向红灯全亮特种车通过延时10sPOPPSW;恢复现场POPACCRETI;中断返回4.2.6设计与调试中断程序应注意的几个问题一、调试时注意开发机上使用的中断入口地址若开发机监控程序占用一部分地址(如占用2000H或4000H以前地址),在开发机监控程序中一般把中断入口地址处都加一条无条件转移指令,跳转到用户可使用的最小地址加上中断入口地址处。

温馨提示

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

评论

0/150

提交评论