单片机技术与应用 高级 教学课件 PPT 作者 许志刚 第5章 单片机的内部功能

上传人:E**** 文档编号:89355089 上传时间:2019-05-23 格式:PPT 页数:133 大小:761KB
返回 下载 相关 举报
单片机技术与应用 高级  教学课件 PPT 作者 许志刚 第5章 单片机的内部功能_第1页
第1页 / 共133页
单片机技术与应用 高级  教学课件 PPT 作者 许志刚 第5章 单片机的内部功能_第2页
第2页 / 共133页
单片机技术与应用 高级  教学课件 PPT 作者 许志刚 第5章 单片机的内部功能_第3页
第3页 / 共133页
单片机技术与应用 高级  教学课件 PPT 作者 许志刚 第5章 单片机的内部功能_第4页
第4页 / 共133页
单片机技术与应用 高级  教学课件 PPT 作者 许志刚 第5章 单片机的内部功能_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《单片机技术与应用 高级 教学课件 PPT 作者 许志刚 第5章 单片机的内部功能》由会员分享,可在线阅读,更多相关《单片机技术与应用 高级 教学课件 PPT 作者 许志刚 第5章 单片机的内部功能(133页珍藏版)》请在金锄头文库上搜索。

1、第5章 单片机的内部功能,5.1 中断系统,5.1.1 中断的有关概念 一、中断和中断源 中断就是指由于外部或内部事件,改变原来CPU正在执行指令顺序的一种工作机制。,CPU在执行程序的过程中,外部或内部产生了中断事件,有必要尽快中止当前正在执行的程序,而去执行相应的处理程序,等到处理完成后,再返回原来的程序中继续执行。,这种程序在执行过程中由于外界的原因而被中间打断的现象,就是中断事件。 引起中断的外部或内部事件称为中断源。 8051单片机共有五个中断源,它们是:外部中断0、外部中断1、定时器/计数器中断0、定时器/计数器中断1和串行口中断。,二、中断请求与中断标志,中断源向CPU提出要求服

2、务的请求称为中断申请或中断请求。 每个中断源都有一个自己的标志位,当标志位为1时,告诉CPU,相应的中断产生了。,五个中断源有6个中断标志位,其中,串行接口中断有两个标志位,分别是接收数据标志位和发送数据标志位。 这6个中断标志如下。,1IE0:外部中断0中断请求标志位。当有外部中断请求时,IE0自动置1,在CPU响应中断后,硬件自动将其清0。,2IE1:外部中断1中断请求标志位。同IE0一样,当有外部中断请求时,IE1自动置1,在CPU响应中断后,硬件自动将其清0。,3TF0:定时器/计数器T0的溢出中断标志位。当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,硬件自动将其清0。,

3、4TF1:定时器/计数器T1的溢出中断标志位。同T0一样,当T1计数产生溢出时,由硬件置位TF1。当CPU响应中断后,硬件自动将其清0。,5TI、RI:串行口发送、接收中断标志位,当串行口发送或接收完成后,TI或RI自动置1。TI、RI必须用软件清0。,这6个中断标志分别占据寄存器TCON和寄存器SCON中的6个相应位。 如下所示,它们都可进行位寻址,或用TCON、SCON寄存器进行字节寻址。,TCON(定时器/计数器控制寄存器,在特殊功能寄存器区中的地址为88H),SCON(串行接口控制寄存器,在特殊功能寄存器区中的地址为98H),三、中断嵌套与中断优先级,8051单片机有两级中断嵌套,即有

4、两个中断优先级。 中断优先级的设定由专用寄存器IP统一管理,IP称为中断优先级寄存器,其在特殊功能寄存器区中的地址及各位如下所示。 IP(B8H),其中,各位意义如下。 PS:串行口中断优先级控制位。 PS = 1,设定串行接口为高优先级中断;PS = 0,串行接口为低优先级中断。,PT1:T1中断优先级控制位。 PT1 = 1,设定定时器/计数器T1为高优先级中断;PT1 = 0,设定定时器/计数器T1为低优先级中断。 PX1:外部中断1优先级控制位。 PX1 = 1,设定外部中断1为高优先级中断;PX1 = 0,设定外部中断1为低优先级中断。,PT0:T0中断优先级控制位。 PT0 = 1

5、,设定定时器/计数器T0为高优先级中断;PT0 = 0,设定定时器/计数器T0为低优先级中断。,PX0:外部中断0优先级控制位。 PX0 = 1,设定外部中断0为高优先级中断;PX0 = 0,设定外部中断0为低优先级中断。,当系统复位后,IP全为0,所有中断源为低优先级中断。 如果五个中断源同时向CPU发出申请,对CPU先响应哪一个中断,系统作了如下规定。,1当五个中断源在同一个优先级时,CPU响应的优先顺序由高至低为: 外部中断0定时器/计数器中断0外部中断1定时器/计数器中断1串行口中断,2当五个中断源不在一个级别中时,则高优先级中断可以打断低优先级中断,而低优先级中断不能打断高优先级中断

6、。,四、中断入口地址,当某个中断源的中断申请被CPU响应之后,CPU将把此中断源的入口地址装入PC中,并从此处开始执行中断服务程序。 这个入口地址亦称中断矢量。,五个中断源的入口地址如下。 外部中断0的中断入口地址为0003H。 定时器/计数器T0的中断入口地址为000BH。 外部中断1的中断入口地址为0013H。 定时器/计数器T1的中断入口地址为001BH。 串行口的中断入口地址为0023H。,五、中断允许控制,IE(A8H),EA:CPU中断总允许位。当EA = 1时,CPU开放中断;当EA = 0时,CPU屏蔽所有的中断请求,即关闭全部中断。 ES:串行口中断允许位。ES = 1时,允

7、许串行口中断;ES = 0时,禁止串行口中断。,ET1:定时器/计数器T1中断允许位。 ET1 = 1时,允许T1中断;ET1 = 0时,禁止T1中断。 EX1:外部中断1允许中断位。 EX1 = 1时,允许外部中断1中断;EX1 = 0时,禁止外部中断1中断。,ET0:定时器/计数器T0中断允许位。 ET0 = 1时,允许T0中断;ET0 = 0时,禁止T0中断。 EX0:外部中断0允许中断位。 EX0 = 1时,允许外部中断0中断;EX0 = 0时,禁止外部中断0中断。,编写中断初始化程序。 要求:主程序中使用四个中断源,外部中断0为低电平触发,外部中断1为下降沿触发,串行口中断和定时器/

8、计数器中断T1为高优先级中断。,初始化程序如下。 一、用位寻址法 SETB IT1 SETB PT1 SETB PS SETB EX0 SETB EX1,SETB ET1 SETB ES SETB EA 二、用字节寻址法 SETB IT1 MOV IP,#18H MOV IE,#9DH,5.1.2 中断的处理过程,一、中断响应 所谓中断响应是在满足中断响应条件之后,CPU对中断源中断请求的回答。 在这一阶段,CPU要完成中断服务前所有的准备工作,包括保护断点、把程序转向中断服务程序的入口地址。 1中断响应条件。,CPU响应中断的基本条件如下。 (1)有中断源发出中断申请。 (2)中断总允许位和

9、相关中断允许位为1。,但如果有以下情况中的任何一种存在,中断不会马上得到CPU的响应,CPU只是把该中断请求锁存在各自的中断标志位中,等到以下情况消失,再响应。,(1)CPU正在执行一个同级或高一级中断的中断服务程序。,(2)当前的机器周期不是正在执行的指令的最后一个周期,即正在执行的指令完成前,任何中断请求都得不到响应。,(3)正在执行RETI指令或者正在对寄存器IE,IP进行读/写操作,则CPU至少再执行一条指令才响应中断。,2中断响应时间。 最短时间需要3个机器周期:第1个机器周期用于查询中断标志位状态和进行中断优先排队;后2个周期用来保护断点、关CPU中断和自动转入相应中断的中断入口地

10、址处执行。 这3个周期是任何一次中断必需的时间,也是响应中断的最短时间。,最长响应时间的情况是:遇到同级或高级中断服务正在进行,则后来的中断请求需要等待的时间将取决于正在进行的中断服务程序。,如果现行的机器周期不是指令的最后一个机器周期,则等待的时间取决于这条指令的执行时间,51单片机中最长执行时间是4周期指令。,因此,这种情况下最长等待时间为3个机器周期;如果当前正执行的指令是返回指令(RETI)或访问IP、IE寄存器等与中断有关的指令,则等待的时间可能达5个机器周期:完成本条与中断有关的指令需要1个机器周期,加上完成下一条完整指令需要14个机器周期。,综上所述,中断响应时间最短为3个机器周

11、期,没有同级或高优先级中断服务时,最多需要8个周期。 如遇到同级或高优先级中断服务时,中断响应时间将取决于同级或高优先级中断服务程序的执行情况。,3中断响应过程。 CPU响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈保存,然后根据中断标志,将相应的中断入口地址送入PC ,程序自动转到中断入口处,通常在中断入口处安排一条无条件转移指令,直接跳到中断服务程序执行。,中断服务程序完成后,执行中断返回指令RETI,CPU把堆栈中保存的地址取出,送回PC,程序从主程序的中断处继续往下执行。,二、中断处理子程序和中断程序设计,中断处理子程序(中断服务程序)一般包括两部

12、分内容:一是保护现场,二是处理中断源的请求。,已知单片机系统晶振频率为12MHz,电路正常工作时,接在P1.0口的直流电机转0.5s停0.5s,不断地转停。 当外界电路出现故障即P3.2口出现一个低电平时,电路报警,接在P1.1口的蜂鸣器以500Hz的频率鸣叫报警。,直到P3.3口出现一个低电平时,电路解除报警,恢复报警以前的状态,电路如图5.2所示。 编程要求:外部中断0用下降沿触发方式。,图5.2 电机报警电路,一、PROTEUS电路设计 二、编写程序,并编译形成目标文件,在单片机中导入.HEX文件,ORG 0000H AJMP START ORG 0003H AJMP ZDD ;中断入口

13、地址处安排一条跳转指令,直接跳到ZDD执行中断子程序 ORG 0030H,START: MOV SP,#60H CLR P1.1 SETB IT0 ;设置外部中断0为下降沿触发方式 SETB EX0 ;开外部中断0的中断允许位 SETB EA ;开中断总允许位 AA: CPL P1.0 ACALL DELAY SJMP AA,DELAY: MOV R0,#5 ;500ms延迟 子程序 DE1: MOV R1,#100 DE2: ACALL DELAY1 DJNZ R1,DE2 DJNZ R0,DE1 RET DELAY1: MOV R2,#200 ;1ms延迟子程序,LAY: NOP NOP

14、NOP DJNZ R2,LAY RET ZDD: PUSH 00H ;外部中断0子程序 PUSH 01H ;保护R0、R1、R2中的内容,PUSH 02H CLR EX0 ;关闭中断 CLR P1.0 ;停止电机转动 BB: CPL P1.1 ACALL DELAY1 JB P3.3,BB SETB EX0 ;开启中断,POP 02H ;恢复现场 POP 01H POP 00H RETI END 三、在PROTEUS VSM中进行交互式仿真,5.2 定时器/计数器,5.2.1 定时器/计数器的工作原理 一、定时器与计数器的概念 二、定时器/计数器工作原理 16位的定时器/计数器实质上是一个加1

15、计数器,以定时器/计数器T0为例,其结构电路如图5.3所示。,图5.3 定时器/计数器0工作原理,对于T0来说,计数值放在TH0、TL0中,高位在TH0中,低位在TL0中;对于T1来说,计数值放在TH1、TL1中。 四个寄存器可以单独访问。,除了TL0、TH0和TL1、TH1以外,还有两个特殊功能寄存器TMOD和TCON。 分别控制定时器工作方式和定时器的中断标志、启动与停止。 当对外部脉冲进行计数时,外部脉冲信号从T0(P3.4)和T1(P3.5)输入。,当定时器/计数器工作在定时器方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器增1,直至16位计数器计满溢出为

16、止。 因此,最高计数频率fcount同振荡频率fosc的关系为,对外部脉冲进行计数时,最高计数频率fcount同振荡频率fosc的关系为,三、定时器/计数器专用寄存器,1定时器/计数器T0、T1的工作方式寄存器TMOD。 TMOD是特殊功能寄存器,它不可进行位寻址,其地址和各位意义如下。 TMOD(89H),GATE:门控位。 :计数器、定时器方式选择位。 M1、M0:定时器/计数器方式选择位。 其选择方式如表5.1所示。,表5.1 定时器/计数器工作方式选择,2定时器/计数器控制寄存器TCON。 TCON(88H),TF1:前面中断中已提到,TF1是定时器/计数器1的中断溢出标志位。当定时器/计数器1计满溢出时,TF1 = 1。 TR1:定时器/计数器1运行控制位。当TR1 = 1时,启动T1运行。 工作原理参见图5.2。,TF0:前面中断中已提到,TF0是定时器/计数器0的中断溢出标志位。当定时器/计数器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号