收藏 分享(赏)

11定时器计数器与中断系统.ppt

上传人:ysd1539 文档编号:7206655 上传时间:2019-05-09 格式:PPT 页数:40 大小:403.50KB
下载 相关 举报
11定时器计数器与中断系统.ppt_第1页
第1页 / 共40页
11定时器计数器与中断系统.ppt_第2页
第2页 / 共40页
11定时器计数器与中断系统.ppt_第3页
第3页 / 共40页
11定时器计数器与中断系统.ppt_第4页
第4页 / 共40页
11定时器计数器与中断系统.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第五章 定时器/计数器与中断系统,定时器/计数器,T0 T1 TMOD TCON 定时器/计数器的初始化、初值的计算 定时器/计数器的工作方式,方式寄存器TMOD中的M1、M0两位的四种不同取值,形成定时器/计数器的四种不同工作方式。 其中前三种工作方式对T0和T1都是一样的,方式3对两者是不同的。可以说,只有定时器/计数器T0有方式3。,五、 定时器/计数器的工作方式,前三种工作方式只分析定时器T0,定时器T1工作情况是一样的。,当M1、M0=00时,定时器/计数器选择为工作方式0。在此工作方式下,定时器/计数器T0构成一个13位寄存器,由TH0的8位与TL0的低5位组成,TL0的高3位未用

2、。 当TL0的低5位计数溢出时,向TH0进位;TH0溢出时,则把其对应的定时器/计数器的溢出标志位TF0置位,并以此作为定时器/计数器溢出中断标志。单片机进入中断服务程序后,由硬件自动清除该标志TF0。定时器T0计数溢出后,从0开始重新计数,如果要求T0按原计数初值计数,在溢出后,应重新给T0赋初值。,1、方式0,2、 方式1,方式1与方式0的差别仅在于计数器的位数不同,方式1为16位的计数器,由TH0作为高8位和TL0作为低8位构成。其余和方式0类似。,方式1结构图,例:设单片机晶振频率为6MHZ,使用定时器1以方式1产生周期为10s的连续方波,并由P1.0输出。,解:1、计算计数初值要产生

3、10s的方波脉冲,只需以5s为周期交替输出高低电平即可,但在方式1下,最大定时时间为130.1072ms,不能满足要求。 因而需要再设一个软件计数器,在此用片内40H单元计数,定时100ms,再计数50次,用T1定时100ms,设初值为X,则:X=216-100ms/2us=15536=3CB0H2、 TMOD= (定时器T1定时方式,方式1),#10H,3、程序设计:MOV 40H ,#50 ;50次100msMOV TMOD,#10H ;T1方式1,定时方式MOV TL1,#0B0H ; T0计数初值X的低8位写入TL0MOV TH1,#3CH ; T0计数初值X的低8位写入TH0SETB

4、 TR1 ;启动T1 LP: JBC TF1,LT ;查询T1是否计数溢出AJMP LP LT: MOV TH1,#0B0H ;重新设置计数初值MOV TL1,#3CHDJNZ 40H,LP ;未到5s,继续循环MOV 40H ,#50 CPL P1.0 ;5s到,输出取反 SJMP LP ;重复循环,3、 方式2,定时器/计数器构成一个自动再装入功能的8位定时器/计数器。此时由TL0计数,而TH0在此方式中作为一个数据缓冲器。 当TL0计数溢出时,在置位溢出标志TF0的同时,还自动地将 TH0中的计数初值送到TL0,使TL0从刚刚装入的初值开始重新计数。再装入后,TH0中的内容保持不变。,例

5、: 用定时器T0,方式2计数,要求每计满100次,将P1.1取反。,解:1、计算计数初值T0工作于计数方式,外部计数脉冲由T0(P3.4)引脚引入。每跳变一次计数器加1,由程序查询TF0的状态。方式2具有初值自动重装功能,初始化不必再置初值。设初值为X,则:X=28-100=156=9CHTH0=TL0=9CH2、TMOD= (定时器T0计数方式,方式2),#06H,3、程序设计:MOV TMOD,#06H ;T0方式2,计数MOV TH0,#9CH ; 赋初值MOV TL0,#9CH SETB TR0 ;启动T0 LOOP: JBC TF0,REP ;查询计数溢出SJMP LOOP REP:

6、 CPL P1.1SJMP LOOP,4、 方式3,工作方式3对定时器/计数器T0和T1的设置和使用是不同的。工作方式3只适用于T0,此时TL0和TH0被分成两个互相独立的8位计数器。,TL0,TH0,TL0既可以用于计数又可以用于定时,定时器/计数器0的各控制位和引脚信号全归它使用,其功能和操作与方式0方式1完全相同。TH0固定为定时器工作,对机器周期进行计数,并且占用定时器T1的TR1和TF1,同时占用T1的中断源。TH0的启动和停止只受TR1的控制。一般来说,只有当系统需要增加一个额外的8位定时器时,才把定时器/计数器0设置为方式3。当定时器/计数器0工作于方式3时,定时器/计数器1通常

7、工作于自动重装载方式(方式2),作为串行通讯的波特率发生器使用。,例: 利用T0门控位测试INT0引脚上出现的正脉冲宽度,已知晶振频率为12MHz,将所测得值高8位存入片内71H,低8位存入片内70H。,解:根据题目的要求,可将T0设定为定时器方式,GATE=1, TR0=1,一旦INT0引脚出现高电平即开始计数,直到出现低 电平,然后读取T0的计数值。,六、门控位的应用,09H,程序如下:ORG 2000HMOV TMOD, ;T0为定时器方式1,GATE =1MOV TL0,00HMOV TH0,00HMOV R0,70HWAIT1:JB P3.2,WAIT1 ;等P3.2变低SETB T

8、R0 ;启动T0准备工作WAIT12:JNB P3. 2, WAIT2 ;等待P3. 2变高,T0开始计数WAIT13:JB P3. 2, WAIT3 ;等待 P3. 2再次变低CLR TR0 ;停止计数,MOV R0,TL0;存放计数值的低字节INC R0MOV R0,TH0;存放计数值的高字节SJMP,中断系统,中断的概述 5个中断源、TCON SCON IE IP 中断处理过程 应用,单片机系统的运行同其他微机系统一样,CPU需要不断地与外部输入输出设备交换信息。通常情况下,CPU与外部设备交换信息可采用以下几种方式:程序控制方式,即无条件传送和查询方式;直接存储器存取(DMA)方式;中

9、断传送方式。 1、无条件传送方式采用这种传送方式的前提是外部设备时刻处于“准备好”状态,CPU随时可与之进行数据传送。这种传送方式的优点是硬件和软件都简单,它只适用于计算机与简单外部设备(如七段LED显示器等)之间的数据传送。,2、查询方式查询方式为有条件传送,以解决CPU与外部设备之间的速度匹配问题。查询方式中,CPU处于主动地位,而I/O设备处于被动地位。为了保证数据传输的正确性,计算机在传输数据之前,首先要查询外部设备是否“准备好”。对于输入操作,需要知道外设是否已把输入数据准备好;输出操作,则要知道外设是否已把上一次计算结果处理完毕。只有通过查询,确定外部设备已经准备好,计算机才能发出

10、访问外部没备的指令,实现数据的交换。,3、 直接存储器存取(DMA)方式DMA(direct memory access)方式是指利用DMA控制器,实现使外部没备和存储器之间直接传送数据的方式,在传送过程中,不需要CPU的介入。在下述两种情况下常采用DMA方式:外部设备和存储器之间有大量的数据需要传送。外部设备的工作速度很快的情况。,优点是通用性强,适用于各类外部设备和CPU间的数据传送。缺点是计算机需要一个等待外设“准备好”的过程,该过程占用了CPU的工作时间,使其不能进行其他操作,所以CPU工作效率低。,一、中断的概述 1、中断的概念所谓的中断就是,当CPU正在处理某项事务的时候,如果外部

11、或者内部发生了紧急事件,要求CPU暂停正在处理的工作而去处理这个紧急事件,待处理完后,再回到原来中止的地方,继续执行原来被中止的程序,这个过程称作中断。,5.2 中断系统,中断流程图,2、中断的组成,中断源:产生中断的请求源,如一个电平的变化、一个脉冲的发生或定时器溢出等。中断响应过程:CPU暂时中止当前的工作,转去处理紧急事件的过程。中断服务:对事件的处理过程。中断返回:事件处理完毕,回到原来被中止的地方。,3、中断方式和查询方式的区别, 查询方式中,CPU常常主动要求传送数据,而它又不能控制外部设备的工作速度,只能用等待的方法来解决速度的匹配问题。 中断方式是外设提出数据传送的请求,CPU

12、收到这个请求后,才中断原来正在执行的主程序,暂时去与外部设备交换数据。 对于主程序来说,虽然中断了一段时间,但由于CPU工作速度很快,交换数据花费的时间很短。中断方式消除了CPU在查询方式中的等待现象,提高了CPU的工作效率。 二者的区别体现在程序设计中,查询方式需要在程序中安排查询等待指令,而中断方式只要CPU允许中断且有申请中断,CPU就可随时响应中断。,用中断方式可以提高CPU工作效率在程序执行过程中,当计算机需要进行输入输出操作时可以启动相应外部设备,此后计算机继续执行原来的程序。与此同时,当相应外部设备被启动后,它自己就独立地进行操作,当它需要与CPU交换信息时,才发出中断申请,提高

13、了CPU工作效率。中断能使几个外部设备并行工作当CPU需要与若干外部设备进行输入输出操作时,可以分别启动不同外部设备,它们各自进行着自己的工作。当它们准备就绪分别或同时向CPU提出申请时,CPU可以根据设置的优先级别,逐个响应外部设备的中断请求。,4、 中断的优点,中断能进行实时处理实时控制中,现场的各种参数、信息随时变化。利用中断可以随时捕捉到这种变化,及时进行处理。故障处理在计算机运行过程中,有时会出现不希望的情况或故障,如电源掉电、运算溢出、传输错误等,此时可利用中断进行相应的处理而不必停机。,实时时钟 CPU可以进行定时操作。当CPU发出启动时钟命令后,时钟开始工作。当达到规定时间后,

14、时钟电路发出中断申请,CPU响应并处理中断。硬件故障 硬件有时候会发生故障,把故障作为中断源可使CPU及时处理故障。为调试程序而设置中断源 系统调试时,有时为了检测局部软、硬件的运行状态,人为地设置一些中断点。,5、中断源的来源,输入输出设备,如键盘、A/D转换器等。,1. 中断源,二、 MCS-51的中断系统及其管理,5个中断源,外部中断,外部中断0 INT0 外部中断1 INT1,定时器中断,定时器/计数器T0溢出中断 定时器/计数器T1溢出中断,串行口中断,(1)INT0外部中断0请求信号,由引脚P3.2输入,中断请求标志为IE0。 (2)INT1外部中断1请求信号,由引脚P3.3输入,

15、中断请求标志为IE1。 (3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。 (4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。 (5)串行口中断请求,中断请求标志为TI或RI。当串行口接收或发送完一帧数据时,由硬件置位。,(1) TCON(字节地址为88H),2、中断请求标志,TF1:定时器/计数器1溢出中断标志,在启动定时器T1 计数后,定时器T1从初值开始加1计数,当产生溢出时,由硬件 置位TF1,向CPU申请中断,CPU响应TF1中断后硬件自动 对TF1清零,也可用软件查询该标志,并由软件清零。,TF0:定时器/计数器0的溢出中断标志。 IE1:外部中断1请求标志,若

16、外部引脚上存在有效的中断请求信号,由硬件置位IE1。IT1:外部中断1触发方式控制位。IT1=0,为电平触发方式,INT1低电平有效;IT1=1, INT1为边沿触发方式, INT1输入引脚上电平由高到低的负跳变有效。IE0:外部中断0请求标志。 IT0:外部中断0触发方式控制位。,SCON的低二位锁存串行口的接收中断和发送中断标志。,TI:串行发送标志。CPU发送完一帧数据,硬件置位T1,CPU响应中断后不能自动清除T1,必须在中断服务程序中用软件清零。RI:串行接收标志。CPU接收完一帧数据,硬件置位R1,CPU响应中断后不能自动清除R1,必须在中断服务程序中用软件清零。,(2) SCON

17、 (字节地址为98H),中断源是否被响应受中断允许寄存器IE的控制,只有开放某中断源时,该中断才会被响应。IE的每一位控制着一个中断源,当该位置位时,对应的中断源能够被CPU响应,清零则不被响应。 中断的优先级受中断优先级寄存器IP的控制,由IP中相应位置“1”或清“0”决定其为高优先级还是低优先级。 (1)中断允许寄存器IE (字节地址为A8H),3、 中断的开放、禁止及优先级,EA: CPU中断总允许。EA=0,关中断;EA=1,每个中断源分 别由各自的允许位的置位或清除来确定开放或禁止。 ES:串行口中断允许位。ES=0,禁止CPU响应串行口中断; ES=1,允许串行口中断。ET1:定时

18、器T1中断允许位。ET1=0,禁止定时器T1中断;ET1=1,允许定时器T1中断。 EX1:外部中断1中断允许位。EX1=0,禁止外部中断1;EX1=1,允许外部中断1。 ET0:定时器T0中断允许位。ET0=0,禁止定时器T0中断;ET0=1,允许定时器T0中断。 EX0:外部中断0中断允许位。EX0=0,禁止外部中断0EX0=1,允许外部中断0。,MCS-51复位后,IE清0,所有中断请求被禁止。 若使某一个中断源被允许中断,除了IE相应的位被置“1” ,还必须 使EA位=1,使CPU开放中断,EA相当于中断允许的“总开关”。 改变IE的内容,可由位操作指令来实现,即:SETB bit;

19、CLR bit,例: 若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。编写设置IE的相应程序段。 (1)用位操作指令来编写如下程序段:SETB EA ;CPU开中断SETB ET0 ;允许定时器/计数器T0中断SETB ET1 ;允许定时器/计数器T1中断CLR ES ;禁止串行口中断 CLR EX1 ;禁止外部中断1中断CLR EX0 ;禁止外部中断0中断,(2)用字节操作指令来编写:MOV IE,#8AH 或者用:MOV A8H,#8AH ;A8H为IE寄存器字节地址,(2) 中断优先级寄存器IP (字节地址为B8H),MCS-51单片机可响应两级中断,高优先级中断和低优先级中

20、断,PS:串行口中断优先级控制位。PS=1,则编程为高优先级,PS=0,则为低优先级 。 PT1:定时器1中断优先级控制位。PT1=1,则编程为高优先级。 PX1:外部中断1优先级控制位。PX1=1,则编程为高优先级。 PT0:定时器0中断优先级控制位。PT0=1,则编程为高优先级。 PX0:外部中断0优先级控制位。PX0=1,则编程为高优先级,中断优先级寄存器IP(字节地址为B8H),至于中断优先级寄存器IP,其清零或置位将把相应的中断源置为低优先级或高优先级中断,同样,用户也可对相应位置位或清零来改变各中断源的中断优先级。,MCS-51单片机对中断优先级的处理原则是:, 不同级的中断源同时

21、申请中断时:先高后低;, 处理低级中断又收到高级中断请求时:停低转高;, 处理高级中断却收到低级中断请求时,高不睬低;, 同一级的中断源同时申请中断时:事先预定;, 对于同一优先级,单片机对其中断次序安排如下:,说明,中断源 同一级的中断优先级,外部中断0 最高 定时器T0中断 外部中断1 定时器T1中断 串行口中断 最低,(1)用位操作指令SETB PX0 ;2个外中断为高优先级SETB PX1 CLR PS ;串口为低优先级中断CLR PT0 ;2个定时器/计数器低优先级中断CLR PT1 (2)用字节操作指令 MOV IP,#05H 或:MOV B8H,#05H ;B8H为IP寄存器的字节地址,例: 设置IP寄存器的初始值,使2个外中断请求为高优先级, 其它中断请求为低优先级。,外部中断请求0 IE0,内部定时器0 TF0,T,R,T发送,R接收,中断请求标志寄存器,源允许,总允许,中断允许寄存器IE,中断优先级寄存器IP,硬件,中断源,标示符,中断源,标示符,中断矢量,低优先级中断请求,INT1,外部中断请求1 IE1,内部定时器1 TF1,内部串行口 TI/RI,INT0,中断矢量,高优先级中断请求,MCS-51 中断系统,EX0,ET0,EX1,ET1,ES,EA,PX0,PT0,PX1,PT1,PS,课本125页:2,6,11,15,作业:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报