单片机中断系统与定时器计数器应用ppt课件

上传人:我*** 文档编号:148196757 上传时间:2020-10-17 格式:PPT 页数:51 大小:932KB
返回 下载 相关 举报
单片机中断系统与定时器计数器应用ppt课件_第1页
第1页 / 共51页
单片机中断系统与定时器计数器应用ppt课件_第2页
第2页 / 共51页
单片机中断系统与定时器计数器应用ppt课件_第3页
第3页 / 共51页
单片机中断系统与定时器计数器应用ppt课件_第4页
第4页 / 共51页
单片机中断系统与定时器计数器应用ppt课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《单片机中断系统与定时器计数器应用ppt课件》由会员分享,可在线阅读,更多相关《单片机中断系统与定时器计数器应用ppt课件(51页珍藏版)》请在金锄头文库上搜索。

1、单片机中断系统与定时器/计数器应用,MCS-51单片机中断系统 MCS-51单片机定时器/计数器,一、MCS-51单片机中断系统,单片机需要处理的任务按系统对实时性要求的不同可以分为两类。一类对于实时性要求不严格。另一类对实时性的要求非常严格。,对于实时性要求严格的系统,通常采用 MCS-51 单片机提供的中断功能。,1、中断源,中断源即指能够发出中断申请的来源。中断申请信号既可以自外部的部件发出,也可以由单片机内部的功能单元发出。,2、与中断有关的特殊功能寄存器,(1)定时器/计数器控制寄存器 TCON,该寄存器的低 4 位用于外部中断的控制,高 4 位用于定时器/计数器中断 T0、T1的控

2、制,,IT0 (TCON.0 ) 外部中断 0 触发方式控制位。,IT0 = l;/设定外部中断 0 为下降沿触发模式 IT0 = 0;/设定外部中断 0 为低电平触发模式,IE0 ( TCON.l) 外部中断 0 中断请求标志位。,当有外部的中断请求时该位就会置1(由硬件完成),在 CPU 响应中断后,由硬件自动将 IE0 清零。,TR0 (TCON .4) 定时器/计数器 T0 启停控制位,可由软件设置。,TR0 = 1;/启动定时器/计数器 T0,TR0 = 0;/停止定时器/计数器 T0。,TF0 ( TCON.5 ) 定时器/计数器 T0 溢出中断请求标志位。,当 T0 计数产生溢出

3、时,由硬件置为 1,在 CPU 响应中断后,由硬件将其自动清零。,IT1 ( TCON.2) 外部中断 l 触发方式控制位,用途与 IT0 相同。 IE1(TCON.3) 外部中断 1 中断请求标志位,用途和 lE0 相同。 TR1( TCON.6 ) 定时器/计数器 T1 启停控制位。用途与 TR0 相同。 TFl ( TCON.7) 定时器/计数器 Tl 溢出中断请求标志位。用途与 TF0 相同。,(2)串行口控制寄存器 SCON,片内串行口完成接收或发送的中断请求信号 RI 和 TI 在串行口控制寄存器 SCON 中,SCON 的高 6 位用于串行口工作方式设置和串行口发送/接收控制,R

4、l 和 TI 是其中的低两位。,RI 串行口接收中断请求标志位。,RI=0 表示没有串行口接收中断申请, RI=l 表示有串行口接收中断申请(即完成一帧数据的接收)。,中断系统不会自动撤除 RI 中断,必须由用户在中断服务程序中通过将 RI 清零来撤除。即 RI=0。,TI 串行口发送中断请求标志位。,TI=0 表示没有串行口发送中断申请, TI=l 表示有串行口发送中断申请(即完成一帧数据的发送)。中断系统不会自动撤除 TI 中断,必须由用户在中断服务程序中通过将 TI 清零来撤除。即 TI=0。,(3)中断允许控制寄存器 IE,在 MCS-51 中断系统中, 中断的允许或禁止是由片内可进行

5、位寻址的 8 位中断允许控制寄存器 IE 来控制的,EA CPU 总中断允许位。 EA=0 关中断,EA=1 开中断。 EX0 外部中断 0 中断允许位。 EX0=1 允许外部中断 0 中断,EX0=0 禁止外 部中断 0 中断。 ET0 定时器/计数器 T0 中断允许位。 ET0=1 允许 T0 中断,ET0=0 禁止 T0 中断。 EX1 外部中断 l 中断允许位。 EX1=1 允许外部中断 1 中断,EX =0 禁止外部中断 1 中断。 ET1 定时器/计数器 Tl 中断允许位。 ET1=1 允许 T1 中断,ET1=0 禁止 T1 中断。 ES 串行口中断允许位。 ES=1 允许串行口

6、中断, ES=0 禁止串行口中断。,MCS-51 单片机复位时, IE 被清零,此时 CPU 关中断,各中断源的中断也都被屏蔽。若系统需要用中断方式进行事件处理,则系统初始化程序中需要对 IE 编程。对 IE 编程时,不仅要开需要的中断,还要开 CPU 的中断。例如: EA=1;/CPU 开中断 EX1=1;/CPU 中断巳开,对 EXl 的操作有效,允许外部中断 1 中断。,(4)中断优先级寄存器 IP,MCS-51 单片机有两个中断优先级, 可实现两级中断服务嵌套,每个中断源都可设定为高或低中断优先级。MCS-51 中断系统对各中断源的中断优先级有一个统一的规定,称为自然优先级(也称为系统

7、缺省优先级)。,MCS-51 单片机的中断优先级采用了自然优先级和人工设置高、低优先级的策略,中断处于同一级别时,就由自然优先级确定。开机时每个中断都处于低优先级,中断优先级可以通过中断优先级寄存器 IP 中的相应位的状态来设定。,PX0 外部中断 0 优先级设定位。 PT0 定时器/计数器 T0 优先级设定位。 PX1 外部中断 0 优先级设定位。 PT1 定时器/计数 Tl 优先级设定位。 PS 串行口优先级设定位。,IP 中某位设为 1,相应的中断级别就设置成高优先级,否则就是低优先级。,3、中断服务函数的写法,MCS-51 的中断服务函数格式如下: void 函数名() interru

8、pt m (using n) 中断服务程序内容 ,一个简单的中断服务C程序写法如下: void T1_time() interrupt 3 TH1=(65536一10000)/256; TL1=(65536-10000)%256; ,上面这段代码是定时器T1 的一个简单的中断服务函数,定时器T1 的中断序号是3 ,因此要写成interrupt 3 ,中断服务程序的内容是给两个存放初值的寄存器TH1、TL1装入新值。,二、MCS-51单片机定时器/计数器,1、定时器/计数器内部结构,MCS-51 单片机有 2 个 16 位的定时器/计数器 T0 和 T1,4 种工作方式,2 种工作模式,定时器和

9、计数器使用内部同一个电路,实现对内部脉冲计数完成定时功能和对外部脉冲计数完成计数功能。,定时器/计数器是 MCS-51 单片机非常重要的内部资源,在以后的程序设计中经常要用到,用于实现定时和计数功能。,其内部主要包括: 两个 16 位可编程定时器/计数器,简称为定时器 0 (T0)和定时器 1 (T1)。 一个 8 位的定时器/计数器方式寄存器 TMOD。主要用于设定定时器/计数器的工作方式,有四种工作方式。 一个 8 位的定时器/计数器控制寄存器 TCON。主要用于控制定时器/计数器的启动与停止,并保存 T0、T1 的溢出和中断标志。,2、与定时器/计数器有关的特殊功能寄存器,(1)定时器/

10、计数器控制寄存器 TCON,TCON 的低 4 位用于控制外部中断,高 4 位用于控制定时器/计数器的启动和中断请求。,(2)定时器/计数器工作方式寄存器 TMOD,工作方式寄存器 TMOD 可位寻址,用于设置定时器/计数器的工作模式和工作方式,其中低 4 位用于 T0 的设置,高 4 位用于 T1 的设置。,GATE 门控位,GATE = 0 时,只要用软件使 TCON 中的 TR0 或 TR1 为 l,就可以启动定时器/计数器工作。,GATA = 1 时,要用软件使 TR0 或 TRl 为 l ,同时外部中断引脚(INT0)(与 TR0 对应)或(INT1) (与 TR1 对应)也为高电平

11、时才能启动定时器/计数器工作,即此时定时器/计数器的启动条件加上了(INT0)或(INT1)引脚为高电平。,M1 、M0 定时器/计数器工作方式设置位,3、定时器/计数器工作方式,(1)方式 0 13 位定时器/计数器方式( M1M0=00),由 THx 的全部 8 位和 TLx 的低 5 位(TLx 的高 3 位未用)构成 13 位加 1 计数器,当 TLx 低 5 位计数计满时直接向 THx 进位;当全部 13 位计数计满溢出时,溢出标志位 TFx 由硬件自动置 l ,向 CPU 发出中断申请。,(2)方式 1 16 位定时器/计数器方式(M1M0=01 ),在方式 l 下,由 THx 的

12、全部 8 位和 TLx 的全部 8 位构成 1 6 位计数器, 当 TLx 计数满时直接向 TFx 进位,当 THx 和 TLx 均计数溢出时,溢出标志位 TFx 置 1 ,向 CPU 发出中断申请。,(3)方式 2 8 位自动重装初值定时器/计数器方式 ( M1M0=10),在方式 2 下,16 位定时器/计数器被拆成两个 8 位寄存器 THx 和 TLx.,以 TLx 作计数器,而 THx 作为预置数寄存器用于存放计数的初值。在对定时器/计数器初始化时,这两个 8 位寄存器必须装入相同的初值。当计数计满滥出时,TFx 由硬件置1,向 CPU 发出中断申请, 同时单片机内部硬件电路自动将 T

13、Hx 中的计数初值重新装入 TLx 中 。,(4)方式 3 两个 8 位定时器/计数器方式 ( M1M0=11 ),方式 3 仅适用于定时器/计数器 T0 。,4、定时器/计数器初始化,在单片机应用系统中,使用定时器/计数器时都要先对其进行初始化,所谓初始化就是在程序开始处需要对定时器/计数器及中断寄存器做必要的设置。通常定时器/计数器初始化过程如下。, 对 TMOD 赋值,以确定 T0 和 T1 的工作方式。 计算初值,并将初值写入TH0 、TL0 或TH1 、TL1 。 采用中断方式时,则对IE赋值,开放中断。 TR0 或TRl 置位,启动定时器/计数器开始定时或计数。,5-1-4 计算时

14、间常数X(计算初值),1. 计数器初值的计算: 计数器模式下必须给计数器设置计数器初值,这个计数器初值是送到TH(TH0/TH1)和TL(TL0/TL1)中的。 计数器是在计数初值基础上以加法计数的,并能在计数器从全“1”变为全“0”时自动产生定时溢出中断请求。因此,可以把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此便可得到如下的计算公式: TC=M-C 式中,M为计数器模值。在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。 2. 定时器初值的计算: 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间T的计算公式为: T=(M-

15、TC)T计数 上式也可写成: TC=M-T/ T计数 式中,M为模值;T计数是单片机振荡周期TCLK的12倍;TC为定时器的定时初值。若设TC=0,则定时器定时时间为最大。由于M的值和定时器工作方式有关,因此不同工作方式下定时器的最大定时时间也不一样。,例:若单片机时钟频率为12MHZ,计算定时2ms所需的定时器初值。 解:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。 T计数=12/12=1s,则需计数脉冲2000个(7D0H) 若采用方式0,则定时器的初值为: TC=213-2ms/1 =6192=1830H

16、=1100 0001 10000B 即:TH0应装C1H;TL0应装10H(TL1只用低5位,高3位填0) 若采用方式1,则定时器的初值为: TC=216-2ms/1s =63536=F830H 即:TH0应装F8H;TH0应装30H。,TMOD=0 x01;/设置定时器T0为工作方式1 TH0=(65536-50000)/256;/装初值 TL0=(65536-50000)%256; EA=1;/开总中断 ET0=1;/开定时器T0中 TR0=1; /启动定时器,5、定时器/计数器典型应用,(1)用于定时,使用12MHZ的晶振时,定时器的定时频率为12MHZ12=1MHZ,即定时单位为1s,定时器的最长定时时间为 65536 1s65.6ms;若想定时更长时间(如1s),可先定义一个计数变量(如int num;)用作软计数器,定时器每定时 50ms 中断一次,计数变量内容加1(num+;) ,定时 50ms 达到 20 次后即为 1s 的定时时间。,用定时器 T0 定时1s 实现单个发光二极管

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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