单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器

上传人:E**** 文档编号:89491333 上传时间:2019-05-25 格式:PPT 页数:36 大小:641.50KB
返回 下载 相关 举报
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器_第1页
第1页 / 共36页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器_第2页
第2页 / 共36页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器_第3页
第3页 / 共36页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器_第4页
第4页 / 共36页
单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器》由会员分享,可在线阅读,更多相关《单片机原理与应用---基于Proteus虚拟仿真技术 第2版 教学课件 ppt 作者 徐爱钧 第5章 中断系统与定时器计数器(36页珍藏版)》请在金锄头文库上搜索。

1、中断系统与定时器/计数器,在程序的执行过程中,由于某种外界的原因,必须终止当前执行的程序,而去执行相应的处理程序,待处理结束后,再回来继续执行被终止的程序。这个过程叫中断。,中断的概念,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,5个中断源,具有二个中断优先级,可实现二级中断服务程序的嵌套。每个中断源均可软件编程为高优先级或低优先级中断,允许或禁止向CPU请求中断。 有关的特殊功能寄存器(SFR)有: 中断允许寄存器IE 中断优先级控制寄存器IP 中断源寄存器(TCON、SCON中的有关位) 注:均可位寻址。,中断系统结构,中断请求标志,1,高级,

2、低级,内 部 查 询,内 部 查 询,入口地址,入口地址,中断允许控制,中断优先级,EA,中断源,中断系统结构图,8051单片机共有5个中断源,分别是2个外部中断、 2个定时中断和1个串行中断。 外部中断是: 外部中断0-INT0,由P3.2提供, 外部中断1INT1,由P3.3提供,,外部中断有两种触发方式,即低电平方式和负边沿方式。,定时器和串行口中断分别是: T0溢出中断; 由片内定时/计数器0提供 T1溢出中断; 由片内定时/计数器1提供 串行口中断RI/TI; 由片内串行口提供,中断源,中断方式,单片机的中断为向量中断,即一响应中断就转入固定入口地址执行中断服务程序。 具体如下: 中

3、断源 入口地址 INT0 0003 T0 000BH INT1 0013H T1 001BH RI/TI 0023H 在这些单元中往往放一条跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。,与中断有关的特殊功能寄存器,与中断有关的特殊功能寄存器有四个:,TCON-定时控制寄存器, IE-中断允许控制寄存器, IP-中断优先级控制寄存器, SCON-及串行口控制寄存器。,(1)定时控制寄存器TCON,中断请求标志,触发方式选择,0 低电平1 下降沿,注意:电平触发时,在中断返回前应撤除中断源。,(2)串行口控制寄存器SCON,串行中断 请求标志,(3)中断允许控制寄

4、存器IE,(4)中断优先级控制寄存器(IP),0 禁止 1允许,0 低级别 1高级别,实现两级控制 注意:复位时,禁止所有中断,每一中断源可编程为高优先级或低优先级中断,以实现二级嵌套。默认的优先次序为:INT0、C/T0、INT1、C/T1、串行口中断(依次从高到低),注意:响应中断后,CPU并不清零中断标志位,必须软件清零。,中断响应,响应条件-CPU要响应中断需满足下列条件: 无同级或高级中断正在服务; 当前指令周期结束,如果查询中断请求的机器 周期不是当前指令的最后一个周期,则不行; 若现行指令是RETI、RET或访问IE、IP指令,则需要执行到当前指令及下一条指令方可响应。,响应过程

5、-单片机响应中断后,自动执行下列操作: 置位中断优先级有效触发器,即关闭同级和低级 中断: 调用入口地址,断点入栈,相当于LCALL指令; 进入中断服务程序。,响应时间-从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。 (1)最快响应时间 以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器周期: 1个周期(查询)2个周期(长调用LCALL) (2)最长时间 若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期: 2个周期执行当前指令(其中含有1个周期查询)4个周期乘除指令2个周期长调用8个周期。,中断返回中断处理程序的最

6、后一条指令是RETI,它使CPU结束中断处理程序的执行,返回到断点处,继续执行主程序。,中断系统初始化,开相应中断源的中断;(IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式。,中断应用举例 8051单片机只有2个外部中断源和,当实际应用中需要多个外部中断源时,可采用硬件请求和软件查询相结合的办法进行扩展,把多个中断源通过“或非”门接到外部中断输入端,同时又连到某个I/O端口,这样每个中断源都能引起中断,然后在中断服务程序中通过查询I/O端口的状态来区分是哪个中断源引起的中断。若有多个中断源同时发出中断请求,则查询的次序就决定了同一优先级中断中的优先级。,汇编语言源程序清

7、单,主程序 ORG 0000H ;复位入口 LJMP MAIN ;转到主程序 ORG 0003H ;外部中断 入口 LJMP INT_0 ;转到中断服务程序 ORG 0013H ;外部中断 入口 LJMP INT_1 ;转到中断服务程序 ORG 0030H ;主程序入口 MAIN: ANL P1, #55H ;主程序开始,熄灭LED,准备输入查询 SETB EX0 ;允许INT0中断 SETB IT0 ;负边沿触发方式 SETB EX1 ;允许INT1中断 SETB IT1 ;负边沿触发方式 SETB EA ;开中断 HERE: SJMP HERE ;等待中断,汇编语言源程序清单,中断服务程序

8、 INT_0: JNB P1.0, L1 ;外中断0服务程序,开始查询 SETB P1.1 ;由外设1引起的中断 L1: JNB P1.2, L2 SETB P1.3 ;由外设2引起的中断 L2: JNB P1.4, L3 SETB P1.5 ;由外设3引起的中断 L3: RETI ;中断返回 INT_1: ANL P1, #55H ;外中断1服务程序,熄灭LED RETI,定时器/计数器的工作方式与控制,8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。 T0由2个特殊功能寄存器TH

9、0和TL0构成,T1则由TH1和TL1构成。作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。,一、定时器/计数器的功能,在特殊功能寄存器TMOD中,有一个控制位(CT),分别用于控制定时/计数器工作在定时器方式还是计数器方式。,1. 定时功能-计数输入信号是内部时钟脉冲,每个机器周期使技数器的值加1。,2. 计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。,定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1) 。,二、定时器计数器

10、的特殊功能寄存器,与定时器计数器有关的特殊功能寄存器有:,(1)工作方式控制寄存器TMOD,T1控制,T0控制,GATE门控位,M1 M0工作方式选择,(2)定时器控制寄存器TCON,中断请求标志,触发方式选择,启动定时/计数器,0 低电平1 下降沿,0 停止 1 启动,计数脉冲输入,三、定时器计数器的工作方式,定时器计数器共有四种工作方式,(1). 方式013位方式,13位计数器,定时器,计数器,(2). 方式116位方式,(3). 方式28位自动装入时间常数方式,(4). 方式3双8位方式,仅T0可以工作在方式3此时T0分成2个独立的计数器TL0和TH0 ,前者用原来T0的控制信号(TR0

11、、TF0),后者用原来T1的控制信号(TR1、TF1)。,(1)计数器初值的计算 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下: X=M-要求的计数值,四、定时/计数器常数的计算,(2)定时器初值的计算 在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式: X=M-(要求的定时值)/(12/fosc) 式中,M为定时器模值(根据不同工作方式,M可以是213、216或28),五、定时器/计数器的应用,定时器/计数器在应用前需要进行初始化:,确定TMOD控制字:编程时将控制字送TMOD;,计算计数器的计数

12、初值: 编程时将计数初值送TH、TL;,开中断(如果使用中断方式): 编程实置位EA、ET,TR位置位控制定时器的启动和停止。,例1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。试以中断方式实现。, TMOD确定,T1控制,T0控制,控制字10H,要产生500s 的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s 。使用6z晶振,则一个机器周期为2s,设待求定时器初值为,则:, 计算定时器的初值;,(216X)210 -6 =25010 -6 即216X=125 X216-125=10000H

13、-7DH 0FF83H 所以,初值为: TH1=0FFH,TL1=83H, 采用中断方式:编程时将IE控制字设置为 88H,实现开中断。, 由定时器控制寄存器TCON中的TR1位控制定 时器的启动和停止。 TR11,启动; TR10,停止。,汇编语言源程序清单 ORG 0000H ;复位地址 LJMP MAIN ;跳转到主程序 ORG 000BH ;定时器T0中断入口 LJMP SQ ;跳转到定时器T0中断服务程序 ORG 0030H ;主程序入口地址 MAIN: MOV TMOD,#10H ;主程序,设置TMOD控制字 MOV TL1, #83H ;写入T0定时2毫秒初值 MOV TH1,

14、#0FFH MOV IE, #88H ;开中断,设置IE控制字 SETB TR1 ;启动T0 HERE: SJMP HERE ;循环等待 SQ: CPL P1.0 ;T1中断服务程序,取反P1.0 MOV TL1, #83H ;重装T1定时初值 MOV TH1, #0FFH RETI ;中断返回 END,例2:假设单片机的振荡频率fosc=6MHz,现要求产生1ms的定时,试分别计算定时器T1在方式0、方式1和方式2时的初值。,方式0:最大计数值为M=213,因此定时器的初值应为 X = 213-(110-3)/(12/(610-6) = 7692D = 1111000001100B 其中高8

15、位为TH1的初值,即F0H,低5位为TL1的初值 注意,这里TL1的初值应为00001100B即0CH,而不是60H,因为在方式时,TL1的高3位是不用的,应都设为0。,方式1:最大计数值为M=216,因此定时器的初值应为 X = 216-(110-3)/(210-6) = 65036D = 1111111000001100B = FE0CH 此时高8位TH1的初值为FEH,低8位TL1的初值为0CH。,方式2:最大计数值为M=28,因此定时器的初值应为 X = 28-(110-3)/(210-6) = 256-500= -254 计算得到的初值为负值,说明当fosc=6MHz时,不能采用方式2(即常数自动装入)来产生1ms的定时,除非把单片机的时钟频率降得很低。,

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

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

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