您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 51单片机中断系统及应用
【本章提要】本章介绍MCS-51单片机重要功能硬件中断系统、定时/计数器、串行口的工作原理及应用。通过本章学习,熟悉中断的基本概念;掌握中断系统的硬件组成和中断系统的程序结构、初始化编程的设计方法;掌握定时/计数器、串行口的结构工作原理与应用。MCS-51单片机中断系统及应用中断计数流水灯电路【项目任务】本项目采用外部中断方式实现0~9循环计数和流水灯控制电路。在单片机I/O口连接一个按键,当开关断开时,单片机电路进行循环计数;当开关按下时,计数停止,单片机控制流水灯点亮。当流水灯点亮两轮后,计数按照中断时的计数值继续计数。通过本项目设计制作,熟悉单片机中断的基本概念,掌握MCS-51单片机中断系统的硬件结构、外部中断的基本原理和应用。4.2.1问题的提出——中断的概念中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因而必须终止原程序的执行,转去完成相应紧迫任务的处理程序,待处理结束之后再返回继续执行被中断原程序的过程。实现这种中断功能的硬件系统和软件系统统称为中断系统。中断方式是单片机提高工作效率的最佳途经,掌握中断技术是学习单片机应用技术的重要内容之一。4.2.2中断响应过程主程序运行响应中断时,程序计数器PC的值称为断点;中断程序的地址称为中断程序入口;响应中断后执行的程序称为中断服务程序;中断程序执行完返回断点重新执行主程序称为中断返回。图4-3中断响应过程流程图中断检测由于中断发生时间是随机的,因此程序的断点是不确定的。当中断发生时产生时,低电平向CPU发中断请求信号,CPU在每个机器周期的S5P2期间采样是否为0,如果为0中断标志自动将IE0置1,如图4-4所示。图4-4CPU在S5P2检测中断请求信号中断入口表4-3中断入口地址表两个中断入口之间只有8个单元,一般情况都放不下中断服务程序,因此,通常将中断入口放置一条无条件转移指令。如LJMPI001单片机响应中断后,进入中断入口0003H,然后转移到代表I001的地址去执行中断服务程序I001。4.2.3MCS-51中断系统结构图4-5MCS-51单片机中断系统下一页上一页P3.4P3.2P3.3P3.5P3.0P3.11.5个中断源1.:外部中断0请求,由P3.2脚输入。它受外部电路控制实现中断0请求,由P3.2脚输入。通过IT0位来决定中断请求信号是低电平有效还是下降沿有效。一旦输入信号有效,则向CPU申请中断,并建立IE0标志。2.:外部中断1请求,由P3.3脚输入。通过IT1位来决定是低电平有效还是下降沿有效。一旦输入信号有效,则向CPU申请中断,并建立IE1标志。3.T0:定时/计数器T0溢出中断请求。当T0工作在计数状态时,计数脉冲从P3.4脚输入。当定时器T0产生溢出时,定时/计数器T0中断请求标志位置位(由硬件自动执行),请求中断处理。0INT1INT下一页上一页4.T1:定时器T1溢出中断请求。当T1工作在计数状态时,计数脉冲从P3.5脚输入。当定时器T1产生溢出时,定时器T1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。5.RX/TX:串行中断请求。当接收或发送完一串行帧时,内部串行口中断请求标志位RI(SCON.0)或TI(SCON.1)置位(由硬件自动执行),请求中断。串行口应用时,一般是RX、TX同时使用,相互配合完成串行数据传输工作。1.5个中断源下一页上一页2.4个中断有关的控制寄存器(1)中断控制寄存器TCON中断控制寄存器TCON有两个作用,即除了控制定时/计数器T0和T1的溢出中断外,还控制外部中断的触发方式和锁存外部中断请求标志位。TCON字节地址为88H,可位寻址,位地址范围为88H~8FH。地址位8FH8EH8DH8CH8BH8AH89H88H位定义TF1TR1TF0TR1IE1IT1IE0IT0图4—6中断控制寄存器TCON各位定义下一页上一页地址位AFHAEHADHACHABHAAHA9HA8H位定义EAESET1EX1ET0IT0(2)串行口控制寄存器SCON串行口控制寄存器用于外部IO口扩展和单片机与计算机、单片机、外部设备之间通信,与外部中断控制无关,将在串行口应用中介绍。(3)中断允许控制寄存器IEMCS-51对中断源的开放或屏蔽是由中断允许寄存器IE控制的。IE的字节地址为A8H,可以按位寻址。2.4个中断有关的控制寄存器下一页上一页2.4个中断有关的控制寄存器IP规定了两个中断级别,称为低级优先级和高级优先级。每一个中断源均可由程序设置为高级优先级中断或低级优先级中断,从而实现中断嵌套。同一优先级中按照自然优先级的次序响应中断。在同一优先级同时发生几个的中断请求时,响应哪个中断取决于内部查询次序。(4)中断优先级控制寄存器IP表4-4同级内中断查询次序下一页上一页先同级查询次序后3.3级中断控制开关设置1.第一级开关——中断触发方式开关IT0/IT1=1时,外部中断信号取下降沿触发方式。IT0/IT1=0时,外部中断信号取电平触发方式,低电平维持时间过长时,一个中断申请会引发多个中断,因此必须采用措施撤消中断申请。2.第二级开关——中断允许和开放中断开关五个中断源各有一个开关进行控制,通过软件对IE的某位置1操作,实现相应中断允许开关闭合,于是某个中断申请被允许。注意,无论哪个或哪几个中断被允许,能否实现中断还必须开放总中断,即用软件设置EA=1。3.第三级开关——中断优先级开关设置中断优先级控制寄存器IP的字节地址是B8H,可以字节寻址,也可以位寻址。各位定义如下:图4—8中断优先寄存器IP各位定义3.3级中断控制开关设置PS:串行口中断优先级控制位PT1:定时器T1中断优先级控制位PX1:外部中断1中断优先级控制位PT0:定时器T0中断优先级控制位PX0:外部中断0中断优先级控制位2.中断服务子程序的结构(1)保护现场主程序使用一些常用特殊功能寄存器和工作存储器,例如ACC、DPTR、Rn等。一般在中断服务程序中可能也要应用这些常用的特殊功能寄存器、工作寄存器,执行中断程序之前,必须将这些单元的内容保存起来,这样在执行完中断服务程序返回主程序是能够恢复这些单元的内容,使主程序能够继续按照中断前的状态继续执行。4.2.4中断服务程序的结构图4-9中断程序结构图保护现场的主要指令有PUSH。下一页上一页(2)中断服务程序主体中断服务程序主体是中断系统中独立的子程序,根据中断的要求来设计。(3)恢复现场为了使中断服务程序返回主程序能够继续执行主程序,中断返回之前必须恢复堆栈的数据到原工作寄存器中。注意堆栈操作必须遵循后进先出的原则。恢复现场的指令有POP。(4)中断返回中断服务程序返回指令必须是RETI。CPU执行RETI时自动从SP中取回断点地址,继续执行主程序。4.2.4中断服务程序的结构下一页上一页【例4-2】某中断系统使用作外部中断控制端,低电平触发方式,设中断服务子程序名为EXINT0,试写出其初始化程序。ORG0000HLJMPMAINORG0003HLJMPEXINT0ORG0100HMAIN:……;主程序CLRIT0;设置为电平触发方式SETBEX0;允许中断SETBEA;开中断……EXINT0:……;中断服务子程序RETI;中断返回……END4.2.5中断计数流水灯硬件电路设计中断方式计数流水灯电路如图4-10所示,单片机P2口接一共阳极数码管显示器,实现0~9的循环计数显示。P0口接8个LED作流水灯,图中电阻均为限流电阻。中断由P3.2口(INT0)上连接一个开关SW1,作外部中断控制信号。发光二极管D9是指示开关状态而设立的。当开关断开时,单片机运行循环计数主程序;当开关闭合时,单片机运行流水灯中断程序,执行完中断程序后返回继续执行计数显示主程序。4.2.5中断计数流水灯硬件电路设计图4-10中断计数流水灯电路下一页上一页
本文标题:51单片机中断系统及应用
链接地址:https://www.777doc.com/doc-5892083 .html