文档详情

c51的中断系统及定时计数器-宋110810

tian****1990
实名认证
店铺
PPT
681.81KB
约62页
文档ID:73321927
c51的中断系统及定时计数器-宋110810_第1页
1/62

第6章 80C51的中断系统及定时/计数器,6.1 中断概述 6.2 中断处理过程 6.3 80C51的中断系统及其控制 6.4 80C51的中断源的扩展 6.5 80C51的定时/计数器及其应用,6.1 中断概述,1. 中断的概念 CPU在正常执行程序过程中,由于一些突发事件或故障的产生,导致CPU暂时中止当前操作,而转去执行处理突发事件或故障的相应程序,并且在该程序执行完成之后,返回原程序继续执行,这样的过程叫做中断 原来正常执行的程序称为主程序; 用来处理突发事件或故障的程序称为中断处理子程序或中断服务子程序; 导致中断产生的原因称为中断源; 主程序被中断源打断,转去执行中断服务子程序的位置称为断点 2. 中断的作用 用于实现突发事件和故障处理 用于实现同步操作 可用于实现实时处理 用于操作系统对硬件的管理 3. 中断源的分类 从中断执行过程的角度来看,可以分成两类: (1)处理器预先考虑的中断 (2)处理器没有预先考虑而需要扩展的中断,6.2 中断处理过程,1. 简单中断(只有一个中断源) (1)中断源识别和中断入口地址查找 (2)保护断点 程序计数器或指令指针入栈,由硬件自动完成。

(3)执行中断服务子程序 保护现场,程序主体,恢复现场 (4)中断返回,2. 复杂中断的执行 系统中多个中断同时发生和发生时正在执行中断服务子程序,则出现了复杂中断管理的问题 (1)中断优先级 给不同的中断源设置不同优先权等级,多个中断源同时申请中断,处理器优先响应优先级高的中断这就是处理器的中断排队原则 (2)中断嵌套 高级中断是否可以打断低级中断; 低级中断是否可以打断高级中断; 同级中断是否可以打断同级中断;,6.3 80C51的中断系统及其控制 1.80C51的中断系统结构及中断源 有5个中断源 定时/计数器0(T0)和定时/计数器1(T1)中断 串行通信接口中断(TX,RX) 外部中断0和外部中断1,2. 中断源和中断申请标志位 复位后所有中断申请标志位清零,表示没有中断申请每个标志位可以按位寻址 (1)TCON TCON的地址是88H,,TF1:定时/计数器1(T1)中断申请标志位,当计数器计数溢出时,该位置为1在中断被响应后,该位由硬件自动清除在查询方式下由软件清除 TF0:定时/计数器0(T0)中断申请标志位具体操作同TF1 IE1:外部中断1中断标志在外部中断设为下降沿触发时,引脚的下降沿设置该位为1,中断被响应后,该位自动清零;在外部中断设为低电平触发时,该位的值与引脚的电平相反。

IE0:外部中断0中断标志位具体操作同IE1 IT1:外部中断1触发方式选择位IT1=1,引脚为下降沿触发;IT1=0,引脚为低电平触发 IT0:外部中断0触发方式选择位具体操作同IT1当定时/计数器计数溢出时,在最近机器周期的S5P2期间向中断标志位进位,从而设置中断标志位TF0或者TF1为1 中断标志位置1后,会一直保持到中断被响应,然后单片机内部硬件自动对它清零;查询方式下,即没有使用中断,只能用软件清零 外部中断: 分别是从(P3.2)和 (P3.3)引脚输入当ITX=0时,外部中断X为低电平触发, ITX=1时为下降沿触发X=0,1),下降沿触发时:在每个机器周期的S5P2期间扫描外部中断输入引脚的电平状态在连续两次扫描到高电平和低电平时,设置中断标志位IEx为1,表示外部有中断申请,该中断申请信号会一直保持到该外部中断被处理器响应后,由硬件自动清除 低电平触发时,引脚变为低电平时,IEx为1,表示有外部中断申请,并一直保持为1,直到外部中断引脚变为高电平,中断标志IEx位才清0 电平触发时,外部中断申请的电平必须保持外部中断输入引脚为低电平,直到中断被响应,而且必须在中断被响应后变成高电平,以撤销中断申请。

若低电平时间太短,则可能导致中断不会被响应;若太长,在中断子程序执行完成后仍为低电平,IEx会保持为1不变,会被认为是新的中断申请,导致一次中断申请多次响应TI:串口发送完成中断标志TI=1,表示一帧数据发送完毕 RI:串口接收数据中断标志RI=1,表示串口接收到一帧新的数据2)SCON中的标志位及串口中断 SCON的地址是98H,串口发送中断: 把数据写入SBUF后,硬件自动逐位从TX引脚发出数据,最后一个数据发送完成后,在最近机器周期的S5P2期间,置位TI中断标志位,表示数据发送完毕该标志位一直有效,且不会硬件自动清除,只能软件清除串口接收中断: 当RX上有数据输入时,串行通信接口电路自动接收数据,在接收到完整的一帧数据后,在最近机器周期的S5P2期间,置位RI中断标志位,表示接收到新的串口数据该标志位一直有效,且不会硬件自动清除,只能软件清除3.中断控制 中断使能寄存器IE的地址是A8H,,EA:全局中断使能控制位只有EA=1,所有中断才可能被响应;EA=0,所有中断都不能被响应 ES:串口中断使能控制位ES=1,允许响应串口发送中断和接收中断;ES=0,禁止响应串口发送中断和接收中断。

ET1:定时/计数器1中断使能控制位ET1=1,允许响应定时/计数器1中断,ET1=0禁止响应定时/计数器1中断 EX1:外部中断1使能控制位EX1=1,允许响应外部中断1,EX1=0禁止 响应外部中断1 ET0:定时/计数器0中断使能控制位具体操作同ET1 EX0:外部中断0使能控制位具体操作同EX14.中断优先权管理和中断嵌套原则 单片机有两个优先权等级,其中断优先处理的原则是: 高级中断和低级中断同时申请中断时,优先响应高级中断; 同级有多个中断同时发生时,按以下自然优先级顺序处理中断嵌套的原则是: 高级中断可以打断低级中断,低级中断不能打断高级中断,同级中断不能打断同级中断中断优先级寄存器IP的地址是B8H,,PS:串口中断优先权设置位 PS=1,串口中断设为高级中断; PS=0,串口中断设为低级中断下同) PT1:定时/计数器1中断优先权设置位 PX1:外部中断1优先权设置位 PT0:定时/计数器0中断优先权设置位 PX0:外部中断0优先权设置位5.中断服务程序的执行 当前面所有的中断响应的条件都满足时,处理器会在结束当前指令后的下一个机器周期,由硬件执行一条LCALL指令。

自动转到满足中断条件的中断源入口地址去执行中断服务程序在80C51单片机中,中断程序的入口地址是固定的6. 中断服务子程序的编写,,ORG 0030H ;地址由用户自己设定 INT_EX0_HADLE: ;此例中外部中断0子程序从地址0030H开始 CLR EA ;保护现场之前,关中断 PUSH PSW ;保护状态寄存器PSW PUSH ACC ;保护累加器 PUSH … ;保护中断服务子程序中其他使用到的寄存器 SET EA ;保护现场完成后,开中断 ;此处也可不写,表示不允许中断嵌套, … ;中断服务子程序的主体,由用户编写 CLR EA ;恢复现场之前,关中断 ;若前面没有开中断,则此句可不写 POP … ;恢复现场 POP ACC POP PSW SET EA ;中断完成后,开中断 RETI ;中断返回,中断服务子程序结束7. 中断撤销 外部中断: 下降沿触发的外部标志是在中断响应后硬件自动清除的; 低电平触发的外部中断标志只能通过使外部信号变为1来撤销申请 定时/计数器: 在中断响应后硬件自动清除的;在查询方式时需由软件清0 串口中断:均由软件清除8. 中断响应时间 处理器收到中断请求后,下一个机器周期是否转去执行中断服务子程序,还受到以下影响: ① 若当前机器周期不是处理器正在执行的指令的最后一个机器周期,则需要等到指令执行完成。

② 若正在执行RETI指令或者是其他读写与中断有关的寄存器IE、IP的指令,则需要在执行完该指令后,再执行一条指令,然后再转入中断服务子程序 ③ 中断返回后至少执行一条指令后才能响应新的中断 中断申请到执行第一条中断服务程序的最短时间是3个机器周期(优先权扫描1机器周期,LCALL指令2个机器周期)若遇到不是执行指令的最后一个机器周期和正在执行RET、RETI或任何访问IE或IP寄存器指令时,则需要最长的等待时间不超过8个机器周期(3个最短周期,和5个最长等待周期9. 中断系统的应用 初始化的内容包括打开全局中断、中断中断控制位、中断源的优先权 例:使用外部中断0,下降沿触发,定时器1中断,串口接收中断,其他中断关闭不用,串口中断具有最高优先级 MOV IE, #00011001B MOV IP, #00010000B SETB IT0 SETB EA,,,6.4 80C51的中断源的扩展,,一种通过外部中断入口和并口结合扩展中断的方法ORG 0000H AJMP MAIN_START ORG 000BH AJMP INT_EX0_HANDLE ORG 0030H INT_EX0_HANDLE: CLR EA PUSH PSW ;保护状态寄存器PSW PUSH ACC ;保护累加器 PUSH … JNB P1.0, INT_EEX0 ;查询扩展外部中断0 JNB P1.1, INT_EEX1 ;查询扩展外部中断1 JNB P1.2, INT_EEX2 ;查询扩展外部中断2 JNB P1.3, INT_EEX3 ;查询扩展外部中断3,END_INT_EX0_HANDLE: POP … ;恢复现场 POP ACC ; POP PSW ; SET EA ;中断完成后,开中断。

RETI INT_EEX0: … ;扩张外部中断0处理 AJMP END_INT_EX0_HANDLE: INT_EEX1: … ;扩张外部中断1处理 AJMP END_INT_EX0_HANDLE: INT_EEX2: … ;扩张外部中断2处理 AJMP END_INT_EX0_HANDLE: INT_EEX3: … ;扩张外部中断3处理 AJMP END_INT_EX0_HANDLE: ORG 0100H MAIN_START: SETB EX0 ;打开外部中断0 SETB EA ;开全局中断 …,6.5 80C51的定时/计数器及其应用,计数器常用的实现方法: ① 使用专门设计的硬件电路实现 ② 使用软件来实现 ③ 使用可编程定时/计数器来实现 80C51系列单片机,集成了2个可编程16位定时/计数器每个定时/计数器独立工作,可以工作在计数和定时两种模式,有4种工作方式1. 定时/计数器的结构,2. 定时/计数器的时钟源 选择内部时钟时,时钟频率固定,常用作定时器; 选择外部输入信号时,常用来对外部事件计数 (1)选择内部时钟 由80C51单片机主时钟的12分频产生的,如果选择12MHz的晶振或者外部输入12MHz时钟,则计数器时钟周期为:,,,,,(2)选择外部时钟 由引脚T0(P3.4)、T1(P3.5)输入。

计数时钟下降沿有效由于采样一个下降沿需要两个机器周期,因此外部计数时钟的最高频率是fosc/24 使用外部时钟时,常用来对外部事件计数设置计数初值为零,然后对外部事件计数,计数结束后,读取计数结果3. 定时/计数器的控制寄存器和模式寄存器,(1) 模式寄存器TMOD TMOD地址是89H,GATE:计数器门控位 C/T:时钟选择控制位 M1M0:工作方式选择位—,—,—,,,(2)控制寄存器TCON TCON地址是88H,TF1:定时/计数器1中断申请标志位,当计数器计数溢出时,该位为1在中断被响应后,该位由硬件自动清除在查询方式下由软件清除 TR1:定时/计数器1的启动控制位当GATE=0时,TR1=1启动计数器1计数,TR1=0,计数器1停止计数,保持原值;当GATE=1时,TR1=1且。

下载提示
相似文档
正为您匹配相似的精品文档