单片机的内部资源.ppt
《单片机的内部资源.ppt》由会员分享,可在线阅读,更多相关《单片机的内部资源.ppt(197页珍藏版)》请在三一办公上搜索。
1、第5章 51单片机的内部资源 本章介绍了51单片机的内部资源,包括定时与中断以及串口通信,中断功能使单片机具有了实时处理能力,定时功能使单片能够处理与时间和计数相关的问题的能力,串口通信使单片机可以与其他单片机、计算机或其它设备相连,在实际的工程应用中非常广泛。学习过程中要注意掌握相关的基础知识和基本原理,重点是相关寄存器的功能和设置方法,并注意与实际操作相结合,不断提高实践能力。,5.1 51单片机的中断系统 中断系统主要用于实时测控,要求单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求。中断方式大大地提高了CPU的工作效率。5.1.1 中断的概念 CPU正在执行程序时,单片
2、机外部或内部发生的某一事件,请求CPU迅速去处理。CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。CPU处理事件的过程,称为CPU的中断响应过程。,如下图所示。对事件的整个处理过程,称为中断处理(或中断服务)。,执行主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求,称为中断请求(或中断申请)。进入中断保护现场中断处理恢复现场 中断返回 当有几个中断源同时申请中断时,或者CPU正在处理
3、某中断源服务程序时,又有另一中断源申请中断,那么CPU必须要确定优先去处理谁的能力,称为中断优先级。优先级高的事件可以中断CPU正在处理的低级的中断服务程序,待完成了高级中断服务程序之后,再继续被打断的低级中断服务程序。这是中断嵌套问题。,5,引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,单片微机的中断系统需要解决的问题 单片微机的中断系统需要解决的问题主要有三点,即:当单片微机内部或外部有中断申请时,CPU能及时响
4、应中断,停下正在执行的任务,转去处理中断服务子程序,中断服务处理后能回到原断点处继续处理原先的任务;当有多个中断源同时申请中断时,应能先响应优先级高的中断源,实现中断优先级的控制;当低优先级中断源正在使用中断服务时,若这时优先级比它高的中断源也申请中断,要求能停下低优先级中断源的服务程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并能逐级正确返回原断点处。,中断的主要功能:实现CPU与外部设备的速度配合(分时操作)由于应用系统的许多外部设备速度较慢,可以通过中断的方法来协调快速CPU与慢速外部设备之间的工作。实现实时控制 在单片微机中,依靠中断技术能实现实时控制。实时控制要求计算机能及时
5、完成被控对象随机提出的分析和计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请求,CPU必须作出快速响应、及时处理。,中断的主要功能:实现故障的及时发现及处理 单片微机应用中由于外界的干扰、硬件或软件设计中存在问题等因素,在实际运行中会出现硬件故障、运算错误、程序运行故障等,有了中断技术,计算机就能及时发现故障并自动处理。实现人机联系 比如通过键盘向单片微机发出中断请求,可以实时干预计算机的工作。,5.1.2 MCS-51中断系统的结构 MCS-51的中断系统包括中断源、中断允许寄存器IE、中断优先级寄存器IP、中断矢量等。MCS-51有5个中断请求源,两个中断优先级,
6、可两级嵌套。MCS-51五个中断源中包括二个外部中断源和三个内部中断源。二个外部中断源INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0或INT1引脚输入。三个内部中断源为定时器/计数器T0和T1的定时/计数谥出中断源和串行口发送或接收中断源。中断系统结构示意图如下图所示。,5.1.3 中断请求源51单片机的五个中断请求源:(1)INT0外部中断请求0,由引脚INT0(P3.2)输入,中断请求标志为IE0。(2)INT1外部中断请求1,由引脚INT1(P3.3)输入,中断请求标志为IE1。外部中断请求有二种信号触发方式,即电平有效方式和跳变有效方式,可通过设置有关控制位
7、进行定义。当设定为电平有效方式时,若INT0或INT1引脚上采样到有效的低电平,则向CPU提出中断请求;当设定为跳变有效方式时,若INT0或INT1引脚上采样到有效负跳变,则向CPU提出中断请求。,51单片机的五个中断请求源:(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0(P3.4)。(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1(P3.5)。定时中断是为满足定时或计数的需要而设置的。当计数器发生计数溢出时,表明设定的定时时间到或计数值已满,这时可以向CPU申请中断。由于定时器/计数器在单片微机芯片内部,所以定时中断属于内部中断。(5)串行口中断请求,中断请求标志为TI
8、或RI。串行中断是为串行数据传送的需要而设置的。每当串行口发送或接收一组串行数据时,就产生一个中断请求。,当CPU响应中断时,由硬件直接产生一个固定的地址,即矢量地址,由矢量地址指出每个中断源设备的中断服务程序的入口,这种方法通常称为矢量中断。很显然,每个中断源分别有自已的中断服务程序,而每个中断服务程序又有自已的矢量地址。当CPU识别出某个中断源时,由硬件直接给出一个与该中断源相对应的矢量地址,从而转入各自中断服务程序。中断矢量地址见右表。,中断矢量(中断入口地址):,中断向量地址的使用规则,中断向量就是程序存储器的地址,CPU从0000H开始执行的常规方式:在“ORG 00H”之后即执行“
9、JMP START”,这里的地址标号START理论上是在所有中断向量之后,方能避免冲突,标准格式如下:,ORG 0000H;程序从00H地址开始 JMP START;跳至START ORG 0003H;INT0中断向量 JMP#1;执行#1中断子程序 ORG 0013H;INT1中断向量 JMP#2;执行#1中断子程序:START:,中断向量空间范围,观察左边的中断源与中断向量,可以发现两个中断向量之间,只有个地址的存贮空间,个字节是很难写出实用的中断程序的,通常的原则是只在这个地址放置“JMP#”之指令,#才是真正的中断子程序。,中断标志:特殊功能寄存器TCON和SCON的相应位锁存各中断请
10、求标志。TCON为定时器/计数器的控制寄存器,字节地址为88H。包含INT0,INT1,T0 及 T1的中断标志。(1)T0和T1的溢出中断请求标志位TF1和TF0(2)外部中断请求标志位IE1与IE0。,各标志位的功能:(1)IT0选择外中断请求0为跳沿触发方式还是电平触发方式:IT0=0,为电平触发方式。IT0=1,为跳沿触发方式。可由软件置“1”或清“0”。(2)IE0外部中断请求0的中断请求标志位。IE0=0,无中断请求。IE0=1,外部中断0有中断请求。当CPU响应该中断,转向中断服务程序时,由硬件清“0”IE0。(3)IT1外部中断请求1为跳沿触发方式还是电平触发方式,意义与IT0
11、类似。(4)IE1外部中断请求1的中断请求标志位,意义与IE0类似。,(5)TF0T0溢出中断请求标志位。T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中断时,硬件自动清“0”TF0,TF0也可由软件清0。(6)TF1T1的溢出中断请求标志位,功能和TF0类似。TR1、TR0 2个位与中断无关。当MCS-51复位后,TCON被清0,则CPU关中断,所有中断请求被禁止。,SCON为串行口控制寄存器,字节地址为98H。串行口的发送中断和接收中断的中断请求标志TI和RI,格式如下:各标志位的功能:(1)TI发送中断请求标志位。串口每发送完一帧串行数据后,硬件自动置“1”
12、TI。响应中断后,必须在中断服务程序中用软件对TI标志清“0”。(2)RI接收中断请求标志位。串口接收完一个数据帧,硬件自动置“1”RI标志。响应中断后,必须在中断服务程序中用软件对RI标志清“0”。,5.1.4 中断控制 1 中断允许寄存器IE CPU对中断源的开放或屏蔽,由片内的中断允许寄存器IE控制。字节地址A8H,可位寻址。格式如下:IE寄存器中各位设置:为0时,禁止中断;为 1时,允许中断。系统复位后IE寄存器中各位均为0,即此时禁止所有中断。MCS-51复位后,IE清0,所有中断请求被禁止。若使某一个中断源被允许中断,除了IE相应的位的被置“1”,还必须使EA位=1。,IE对中断的
13、开放和关闭为两级控制 总的开关中断控制位EA(IE.7位):EA=0,所有中断请求被屏蔽。EA=1,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。IE中各位的功能如下:(1)EA:中断允许总控制位0:CPU屏蔽所有的中断请求(CPU关中断);1:CPU开放所有中断(CPU开中断)。(2)ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。,(3)ET1:定时器/计数器T1的溢出中断允许位0:禁止T1溢出中断;1:允许T1溢出中断。(4)EX1:外部中断1中断允许位0:禁止外部中断1中断;1:允许外部中断1中断。(5)ET0:定时器/计数器T
14、0的溢出中断允许位0:禁止T0溢出中断;1:允许T0溢出中断。(6)EX0:外部中断0中断允许位。0:禁止外部中断0中断;1:允许外部中断0中断。,改变IE的内容,可由位操作指令来实现,即:SETB bit;CLR bit。例1 若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段(1)用位操作指令来编写如下程序段:CLR ES;禁止串行口中断 CLR EX1;禁止外部中断1中断CLR EX0;禁止外部中断0中断 SETB ET0;允许定时器/计数器T0中断 SETB ET1;允许定时器/计数器T1中断 SETB EA;CPU开中断,(2)用字节操作指令来编写:
15、MOV IE,#8AH或者用:MOV 0A8H,#8AH;A8H为IE寄存器字节地址,对同时发生多个中断申请时:不同优先级的中断同时申请(很难遇到)先高后低相同优先级的中断同时申请(很难遇到)按序执行正处理低优先级中断又接到高级别中断 高打断低正处理高优先级中断又接到低级别中断 高不理低,优先级的控制处理原则,2 中断优先级寄存器IP,中断优先原则:(概括为四句话)1、低级不打断高级2、高级不睬低级3、同级不能打断4、同级、同时中断,事先约定。,CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能
16、被高优先级中断请求所中断。这称之为“中断嵌套”。,优先级对中断响应的影响,事件1,事件2,子程序2,子程序1,中断嵌套的概念:,主程序,中断,中断,若CPU正在执行高优先级的中断,则不能被任何中断源所中断。中断优先级寄存器IP,其字节地址为B8H。IP各个位的含义:(1)PS串行口中断优先级控制位1:高优先级中断;0:低优先级中断。(2)PT1定时器T1中断优先级控制位1:高优先级中断;0:低优先级中断。,(3)PX1外部中断1中断优先级控制位1:高优先级中断;0:低优先级中断。(4)PT0定时器T0中断优先级控制位1:高优先级中断;0:低优先级中断。(5)PX0外部中断0中断优先级控制位1:
17、高优先级中断;0:低优先级中断 由软件可改变各中断源的中断优先级。系统复位后IP寄存器中各位均为0,即此时全部设定为低中断优先级。,中断优先级控制,除了中断优先级控制寄存器之外,还有两个不可寻址的“优先级激活触发器”:一个用来指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个用来指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。在中断执行过程中,高中断优先级可以中断低中断优先级的中断过程。但是若在中断服务程序中,关掉所有中断(CLR EA)或关掉部分中断时除外。在同时收到几个同一优先级的中断请求时,优先响应哪一个中断,取决于内部的查询顺序。查询顺序如下:
18、,中断源 中断级别外部中断0 最高T0溢出中断外部中断1T1溢出中断串行口中断 最低 MCS-51是一个二级中断系统。但是通过软件可以模仿第三优先级。,例2 设置IP寄存器的初始值,使2个外中断请求为高优先级,其它中断请求为低优先级。(1)用位操作指令 SETB PX0;2个外中断为高优先级 SETB PX1 CLR PS;串口为低优先级中断CLR PT0;2个定时器/计数器低优先级中断CLR PT1(2)用字节操作指令 MOV IP,#05H或:MOV 0B8H,#05H;B8H为IP寄存器的字节地址,5.1.5 响应中断请求的条件 一个中断请求被响应,需满足以下必要条件:(1)IE寄存器中
19、的中断总允许位EA=1。(2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。(3)该中断源的中断允许位=1,即该中断没有被屏蔽。(4)无同级或更高级中断正在被服务。中断响应的主要过程:首先由硬件自动生成一条长调用指令:LCALL addr16 接着就由CPU执行该指令,将PC的内容压入堆栈以保护断点,再将中断入口地址装入PC。各中断源服务程序的入口地址固定。,中断响应是有条件的,遇到下列三种情况之一时,中断响应被封锁:(1)CPU正在处理同级的或更高优先级的中断。(2)所查询的机器周期不是所当前正在执行指令的最后一个机器周期。只有在当前指令执行完毕后,才能进行中断响应。(3)正在
20、执行的指令是RETI或是访问IE或IP的指令。需要再去执行完一条指令,才能响应新的中断请求。如果存在上述三种情况之一,CPU将丢弃中断查询结果,不能对中断进行响应。,5.1.6 外部中断的响应时间 外部中断的最短的响应时间为3个机器周期:(1)中断请求标志位查询占1个机器周期。(2)子程序调用指令LCALL转到相应的中断服务程序入口,需2个机器周期。外部中断响应的最长的响应时间为8个机器周期:(1)发生在CPU进行中断标志查询时,刚好是开始执行RETI或是访问IE或IP的指令,则需把当前指令执行完再继续执行一条指令后,才能响应中断,当前指令执行完最长需2个机器周期。,(2)接着再执行一条指令,
21、按最长指令(乘法指令MUL和除法指令DIV)来算,也只有4个机器周期。(3)加上硬件子程序调用指令LCALL的执行,需要2个机器周期。所以,外部中断响应最长时间为8个机器周期。如果中断请求被前面所列三个条件之一所阻止,不能产生硬件长调用LCALL指令,那么所需的响应时间就更长些。如果已在处理同级或更高级中断,响应时间无法计算。在一个单一中断的系统里,MCS-51单片机对外部中断请求的响应的时间总是在38个机器周期之间。,5.1.7 外部中断的触发方式选择 外部中断有两种触发方式:电平触发方式和跳沿触发方式。这两种触发方式可由设置TCON寄存器中的IT1(TCON2)、IT0(TCON0)中断申
22、请触发方式控制位来选择:设置IT1、IT00,选择电平触发方式;设置IT1、IT0l,选择跳变触发方式,即当INT0,INT1引脚检测到前一个机器周期为高电平、后一个机器周期为低电平时,则置位IE0、IE1且向CPU申请中断。由于CPU每个机器周期采样INT0,INT1引脚信号一次,为确保中断请求被采样到,外部中断源送INT0,INT1引脚的中断请求信号应至少保持一个机器周期。,1 电平触发方式 CPU在每个机器周期采样到的外部中断输入线的电平。外部中断源送INT0,INT1引脚请求中断的低电平有效信号,应一直保持到CPU响应中断为止。否则CPU返回主程序后会再次响应中断。适于外中断以低电平输
23、入且中断服务程序能清除外部中断请求(即外部中断输入电平又变为高电平)的情况。2 跳沿触发方式 连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断请求标志,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持1个机器周期。,5.1.8 中断请求的撤消 CPU响应中断请求,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,中断请求信号必须撤除,否则将会再一次引起中断而出错。中断请求撤除的方式有三种,即:1 由单片微机内部硬件自动复位(定时器/计数器中断请求的撤消)。对于定时器计数器T0、T1 的溢出中断和采用跳变触发方式
24、的外部中断请求,在CPU响应中断后,由内部硬件自动清除中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。(硬件置位,硬件清除)。,2采用外加 硬件结合软件清除中断请求(外部中断请求的撤消)(1)跳沿方式外部中断请求的撤消是自动撤消的。(2)电平方式外部中断请求的撤消:对于采用电平触发方式的外部中断请求,中断标志的撤消是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清“0”的IE0、IE1标志重新置“1”,再次申请中断。为保证在CPU响应中断后、执行返回指令前,撤除中断请求,必须在中断响应后把中断请求信号引脚从低电平强制改变为高电平。可在系统中加入如图所示电路
25、。,从上图中可看到,用D触发器锁存外部中断请求低电平,并通过触发器输出端Q送或,所以D触发器对外部中断请求没有影响。但在中断响应后,为了撤消低电平引起的中断请求,可利用D触发器的直接置位端SD来实现。采用80C51的一根I/O口线来控制SD端。只要在SD端输入一个负脉冲即可使D触发器置“1”,从而撤消了低电平的中断请求信号。(硬件置位,硬、软件结合清除)。只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可通过在中断服务程序中增加如下两条指令得到:ORL P1,#01H;P1.0为“1”,SD无效 ANL P1,#0FEH;P1.0为“0”,Q置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 内部 资源

链接地址:https://www.31ppt.com/p-6449692.html