您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 电气技术 > 80C51单片机的中断与定时
单片机原理与应用第5章80C51单片机的中断与定时中断概述80C51单片机的中断系统80C51的定时器/计数器123本章主要内容5.1中断概述看书电话铃响接电话继续看书中断响应中断返回中断请求生活中的中断:中断程序记录页码中断断点单片机程序的中断:主程序PC值入堆栈执行中断服务(或处理)程序继续执行主程序中断响应中断返回中断请求中断断点中断信号有效中断程序所谓的中断就是,当CPU正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求CPU暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。实现这种功能的部件称为中断系统(中断机构)。产生中断的请求源称为中断源。中断过程中又有中断发生称为中断嵌套。中断执行的程序称为中断服务程序。中断技术的优点分时操作——CPU可以同多个外设“同时”工作实时处理——CPU及时处理随机事件故障处理——电源掉电、存储出错、运算溢出中断与调用子程序的区别中断调用子程序中断信号有效产生通过调用指令产生既保护断点,又保护现场只保护断点为外设服务和处理各种事件服务主要为主程序服务一、8051单片机有5个中断源:外部中断源:外部中断0(INT0)外部中断1(INT1)内部中断源:定时/计数中断0(T0)定时/计数中断1(T1)串行中断5.280C51单片机的中断系统:1.外部中断源外部中断0(INT0):来自引脚P3.2外部中断1(INT1):来自引脚P3.3外部中断请求两种方式:电平触发方式(低电平有效)下降沿触发方式(脉冲的下降沿有效,至少要维持一个机器周期)2.内部中断源▲定时/计数中断0(T0):定时/计数发生溢出时,产生中断请求。▲定时/计数中断1(T1):定时/计数发生溢出时,产生中断请求。▲串行中断:为完成串行数据传送而设置。单片机完成接受或发送一组数据时,产生中断请求。说明:外部中断源中断请求需设置,而内部中断源中断请求不需设置,自动产生。二、中断控制中断允许控制中断请求标志中断优先控制外中断触发方式控制主要通过四个专用寄存器来实现控中断允许控制中断允许控制寄存器(IE)中断请求标志、外中断触发方式控制定时器控制寄存器(TCON)中断有限控制中断优先级控制寄存器(IP)串行口控制寄存器(SCON)1.中断允许寄存器IE作用:控制CPU对中断源的开放或屏蔽(禁止),以及每个中断源是否允许中断。IEA8HEAESET1EX1ET0EX076543210CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位EA——总中断允许位,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,0禁止相应中断源的中断。中断允许ESET0EX0EX1ET1EA例:允许外中断0中断:SETBEASETBEX0或MOVIE,#81H注意:该寄存器可以位寻址。2、定时器控制寄存器作用:保存外部中断请求以及定时器的计数溢出。TF1TF0IE1IT1IE0IT0TCON76543210CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。T1溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。TF1TF0IE1IT1IE0IT0TCON76543210TF1TF0IE1IT1IE0IT0TCON88H出现有效中断请求时,IE0(或IE1)位由硬件置“1”。当中断响应完成转向中断服务程序时,由硬件把IE0(或IE1)清零。外部中断INT1触发方式控制位(TCON.2):IT1=0,电平触发方式IT1=1,下降沿触发方式765432103.SCON寄存器作用:串行口发送或接收控制TI(SCON.1)——串行发送中断标志。RI(SCON.0)——串行接收中断标志。TIRISCON98H765432104、中断优先级控制寄存器(IP)作用:设定中断的优先级高低PSPT1PX1PT0PX0IPB8H76543210如果有两个或3个中断源同时申请中断,CPU如何处理?CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断标志位单片机中有两个中断优先级,即高优先级中断和低优先级中断(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT1对同时发生多个中断申请时:☞不同优先级的中断同时申请(很难遇到)——先高后低☞相同优先级的中断同时申请(很难遇到)——按序执行☞正处理低优先级中断又接到高级别中断——高打断低☞正处理高优先级中断又接到低级别中断——高不理低中断优先级处理原则自然优先级:INT0高T0INT1T1RI/TI低CPU正在执行低中断源高中断源RETIRETI寄存器名称D7D6D5D4D3D2D1D0定时器控制寄存器TCON(88H)TF1TF0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H串行口控制寄存器SCON(98H)TIRI位地址9FH9EH9DH9CH9BH9AH99H98H中断允许寄存器IE(A8H)EAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中断优先级寄存器IP(B8H)PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8H中断控制寄存器汇总例如,某软件中对寄存器IE、IP设置如下:MOVIE,#8FHMOVIP,#06H中断设计举例则此时该系统中:CPU中断允许;允许外部中断0、外部中断1、定时器/计数器0、定时器/计数器1提出的中断申请;允许中断源的中断优先次序为:定时器/计数器0外部中断1外部中断0定时器/计数器1。在中断服务程序编程时,首先要对中断系统进行初始化,也就是对几个特殊功能寄存器的有关控制位进行赋值。初始化的内容包括:(1)开相应中断源的中断(2)设置所用中断源的优先级;(3)若是外部中断,则应规定是电平触发还是边沿触发。中断初始化例1:若规定外部中断1为电平触发方式,高优先级,试写出有关的初始化程序。SETBEA;开中断SETBEX1;允许外中断1中断SETBPX1;外中断1定为高优先级CLRIT1;电平触发例2:使用外部中断0(INT0)和外部中断1(INT1),INT1为高优先级,电平触发方式,INT0为低优先级,下降沿触发方式。则初始化程序如下:MOVIP,#04HMOVTCON,#01HMOVIE,#85HMOVIP,#04HMOVTCON,#01HSETBEASETBEX0SETBEX1或使用位操作指令如下:未完待续!
本文标题:80C51单片机的中断与定时
链接地址:https://www.777doc.com/doc-3977529 .html