第6章定时器,计数器.ppt

上传人:李司机 文档编号:6618752 上传时间:2023-11-18 格式:PPT 页数:61 大小:2.31MB
返回 下载 相关 举报
第6章定时器,计数器.ppt_第1页
第1页 / 共61页
第6章定时器,计数器.ppt_第2页
第2页 / 共61页
第6章定时器,计数器.ppt_第3页
第3页 / 共61页
第6章定时器,计数器.ppt_第4页
第4页 / 共61页
第6章定时器,计数器.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《第6章定时器,计数器.ppt》由会员分享,可在线阅读,更多相关《第6章定时器,计数器.ppt(61页珍藏版)》请在三一办公上搜索。

1、第6章 定时器/计数器,(课时:8学时),教学目的,了解定时器/计数器的结构与工作原理。掌握定时器/计数器的四种工作方式的特点及应用。用定时器/计数器设计一个可产生一定频率方波的信号源。用定时器/计数器设计一个脉冲宽度调制(PWM)信号以控制直流电动机转速。用定时器/计数器设计一个用于流水生产线上的产品自动计数器。用定时器/计数器设计一个测量电平脉冲宽度的程序。用定时器/计数器设计一个电子音乐程序。用定时器/计数器设计一个电子音乐程序。,学习重点和难点,定时器/计数器的初始化。定时器/计数器与中断的综合应用。,第6章 定时器/计数器,6.1 定时器/计数器的结构与原理 6.2 定时器/计数器的

2、控制 6.3 定时器/计数器的四种工作方式及应用 本章小结习题,6.1 定时器/计数器的 结构与原理,6.1.1 定时器/计数器的结构 6.1.2 定时器/计数器的原理 6.1.3 定时器/计数器的功能,6.1.1 定时器/计数器的结构,8051单片机内部设有两个16位可编程定时器/计数器,简称为定时器0(T0)和定时器1(T1)。16位的定时器/计数器分别由两个8位寄存器组成,即:T0由TH0和TL0构成,T1由TH1和TL1构成。每个寄存器均可单独访问,这些寄存器是用于存放定时初值或计数初值的。有一个8位的定时器方式寄存器TMOD和一个8位的定时器控制寄存器TCON。这些寄存器之间是通过内

3、部总线和控制逻辑电路连接起来的,定时器/计数器的工作方式、定时时间和启停控制通过由指令来确定这些寄存器的状态来实现。TMOD主要用于设定定时器的工作方式,TCON主要用于控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。,6.1.1 定时器/计数器的结构,定时器/计数器结构框图,6.1.2 定时器/计数器的原理,16位的定时器/计数器实质上是一个加l计数器,可实现定时和计数两种功能,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时器/计数器。将控制字写入定时器/计数器的过程叫定时

4、器/计数器的初始化。在初始化程序中,要将工作方式控制字写入定时器方式寄存器(TMOD),工作状态控制字(或相关位)写入定时器控制寄存器(TCON),赋定时/计数初值给TH0(TH1)和TL0(TL1)。,6.1.2 定时器/计数器的原理,定时器/计数器的定时功能。计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的时钟频率有关。因一个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一。如果晶振频率为12MHz,则机器周期为1s。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时

5、间。,6.1.2 定时器/计数器的原理,定时器/计数器的计数功能。通过外部计数输入引脚T0(P3.4)和T1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平,若一个机器周期S5P2期间采样值为1,下一个机器周期S5P2期间采样值为0,则计数器加1,再下一个机器周期S3P1期间,新的计数值装入计数器。因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。如果晶振频率为12MHz,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,外部计数脉冲的

6、高电平与低电平保持时间均需在一个机器周期以上。,6.1.3 定时器/计数器的功能,定时器/计数器具有定时和计数两种功能,应用范围如下。1.定时与延时控制方面 可产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。2.测量外部脉冲方面 对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。3.监控系统工作方面 对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。,6.2 定时器/计数器的控制,6.2.1 定时器方式寄存器TMOD 6.2.2 定时器控制寄存器TCON,6.2.1

7、 定时器方式寄存器TMOD,定时器方式寄存器TMOD的作用是设置T0、T1的工作方式。TMOD的格式:各位的功能说明:(1)GATE:门控位。GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0)置1即可启动定时器1(定时器0)。GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR1(TR0)置1时,只有外部中断INT0(INT1)引脚输入高电平时才能启动定时器1(定时器0)。,6.2.1 定时器方式寄存器TMOD,(2)C/T:功能选择位。C/T=0时,以定时器方式工作。C/T=1时,以计数器方式工作。(3)M1、M0:方式选择位。定时器工作方式选择位定义,6.2

8、.2 定时器控制寄存器TCON,定时器控制寄存器TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出和中断标志。TCON的格式:各位的功能说明:(1)TF1(TCON.7):定时器1溢出标志位。当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。对该标志位有两种处理方法,一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。,6.2.2 定时器控制寄存器TCON,各位的功能说明:(2)TR1(TCON.6):定时器1启停控制位。GATE

9、=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。(3)TF0(TCON.5):定时器0溢出标志位。其功能同TF1。(4)TR0(TCON.4):定时器0启停控制位。其功能同TR1。(5)IE1(TCON.3):外部中断1请求标志位。(6)IT1(TCON.2):外部中断1触发方式选择位。(7)IE0(TCON.1):外部中断0请求标志位。(8)IT0(TCON.0):外部中断0触发方式选择位。,6.3 定时器/计数器的四种 工作方式及应用,6.3.1 定时器/计数器的初始化

10、6.3.2 方式0及应用实例 6.3.3 方式1及应用实例 6.3.4 方式2及应用实例 6.3.5 方式3,6.3.1 定时器/计数器的初始化,1.定时器/计数器的初始化步骤 定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下。(1)确定定时器/计数器的工作方式,确定方式控制字,并写入TMOD。(2)预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。(3)根据需要开放定时器/计数器的中断,给IE中的相关位赋值。(4)启动定时器/计数器,给TCON中的TR1或TR

11、0置1。,6.3.1 定时器/计数器的初始化,2.定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表所示。表中T 表示定时时间,T机表示机器周期。,6.3.1 定时器/计数器的初始化,【例1】用定时器0方式0,定时5ms,以中断方式工作,进行程序初始化设计,晶振频率为6MHz。解:用定时器0方式0时,定时器/计数器方式寄存器TMOD低4位中的M1M0应取00;可设定为软件启动定时器,故GATE取0;因用定时功能,C/T取0;定时器方式寄存器TMOD高4位为无关位,一般都取0,所以TMOD应为00H。晶振频率为6MHz,T机=12/fosc=12/(6106)=2s

12、定时初值X=213-T/T机=213-5103/2=8192-2500=5692=163CH=1011000111100B 因TL0的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值 X=1011000100011100B=B11CH,6.3.1 定时器/计数器的初始化,定时器以中断方式工作,故将中断总允许位EA和定时器0的中断允许位ET0置1。参考程序:,6.3.2 方式0及应用实例,在方式0下,以定时器0为例,定时器/计数器是一个由TH0中的8位和TL0中的低5位组成的13位加1计数器(TL0中的高3位不用);若TL0中的第5位有进位,直接进到TH0中的

13、最低位。定时器/计数器0方式0逻辑结构如下图所示。当门控位GATE=0时,或门输出始终为1,与门被打开,与门的输出电平始终与TR0的电平一致,实现由TR0控制定时器/计数器的启动和停止。若软件使TR0置1,接通控制开关,启动定时器0,13位加1计数器在定时初值或计数初值的基础上进行加1计数;溢出时,13位加1计数器为0,TF0由硬件自动置1,并申请中断,同时13位加1计数器继续从0开始计数。若软件使TR0清0,关断控制开关,停止定时器0,加1计数器停止计数。,6.3.2 方式0及应用实例,定时器/计数器0方式0逻辑结构,C/T,C/T,6.3.2 方式0及应用实例,【例2】在P1.0输出周期为

14、1 ms(频率1kHz)的方波,采用定时器1方式0设计程序,晶振频率为12MHz。解:根据题意,只要使P1.0每隔500s取反一次即可得到周期1 ms的方波,因而T1的定时时间为500s。用定时器1方式0时,定时器/计数器方式寄存器TMOD高4位中的M1M0应取00;可设定为软件启动定时器,故GATE取0;因为用定时功能,C/T取0;定时器方式寄存器TMOD低4位为无关位,一般都取0,所以TMOD应为00H。晶振频率为12MHz,T机=12/fosc=12/(12106)=1s 定时初值 X=213-T/T机=213-500/1=8192-500=7692=1E0CH=111100000110

15、0B 因TL1的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值 X=1111000000001100B=F00CH,6.3.2 方式0及应用实例,参考程序:,6.3.2 方式0及应用实例,【例3】P1口做输出口,控制八只灯(P1口输出低电平时灯被点亮),同一时间只有两盏灯点亮,按一定的规律每隔1秒循环点亮下一盏灯;采用定时器0方式0设计延时子程序,定时时间为5ms,晶振频率为6MHz。解:延时子程序要求延时1s,又规定定时时间5ms,可在硬件定时的基础上再加软件计数来实现1s的延时;5ms定时初值的计算参见例1,软件计数值为200。用定时器0方式0时,定时

16、器/计数器方式寄存器TMOD低4位中的M1M0应取00;可设定为软件启动定时器,故GATE取0;因用定时功能,C/T取0;定时器方式寄存器TMOD高4位为无关位,一般都取0;所以TMOD应为00H。设定时器0的溢出标志位以查询方式工作。,主程序:,延时子程序:,6.3.2 方式0及应用实例,【例4】每隔1秒使P1.1输出取反一次同时使片内RAM区20H单元中的内容加1,采用定时器0方式0设计程序,晶振频率6MHz。解:根据题意,定时时间为1s,因方式0最大计数值为8192,机器周期为2s,则方式0的最大定时时间为16.384ms;显然不能满足本题的定时时间要求,因而需另设软件计数器,即在硬件定

17、时的基础上再加软件计数。设硬件定时时间10 ms,软件计数的次数则为100次。定时初值 X=213-T/T机=213-10103/2=8192-5000=3192=0C78H=0110001111000B 因TL0的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值 X=0110001100011000B=6318H 定时器以中断方式工作。,主程序:,参考程序:,中断服务程序:,参考程序:,6.3.3 方式1及应用实例,在方式1下,以定时器0为例,定时器/计数器是一个由TH0中的8位和TL0中的8位组成的16位加1计数器。方式1与方式0基本相似,最大的区别是方

18、式1的加1计数器位数是16位。,定时器/计数器0方式1逻辑结构,C/T,C/T,6.3.3 方式1及应用实例,【例5】利用定时器1测量高电平脉冲的宽度,采用定时器1方式1设计程序,晶振频率6MHz。解:根据题意,用定时器1方式1时,被测高电平脉冲从外部中断INT1(P3.3)引脚输入,门控位GATE取1,即由软件和硬件共同启动定时器;被测脉冲为高电平时,启动定时器1,开始计数;被测脉冲变为低电平时,停止定时器1,停止计数,计数值分别存放到片内RAM区40H、41H、42H单元中;计数值与机器周期的乘积就是所测脉冲的宽度。用定时器1方式1时,定时器/计数器方式寄存器TMOD 高4位中的M1M0应

19、取01,GATE取1;因为用定时功能,C/T取0;定时器方式寄存器TMOD低4位取0,所以TMOD应为90H。定时初值为00H。定时器以查询方式工作。,参考程序:,参考程序:,6.3.3 方式1及应用实例,【例6】P1.0口做输出口,接一只喇叭,利用定时器中断方式编写程序,使喇叭放出悦耳的音乐。晶振频率6MHz。解:音乐是由高低长短相同或不同的音符,按一定的规律组织起来的。每个音符都包括两个要素:第一是音调,即音符的频率,频率越高音调越高,频率越低音调越低;第二是节拍,即音符的时间长短。利用定时器/计数器可以产生不同频率的音频脉冲,也可以控制音频脉冲的延时时间。不同的音符对应的频率不同,用定时

20、器T1方式1可以产生与各音符对应频率的方波,C调各音符频率与定时器定时初值对应关系如下表所示;不同的节拍对应的延时时间不同,通过循环调用一个基本延时子程序可以产生不同的节拍,各曲调与节拍的时间对应关系如下表所示。,C调各音符频率与定时器定时初值对照表,曲调与节拍的时间对照表,(1)根据歌谱编制唱名与唱名码的对照表。把歌谱中所有的不同音符的频率相对应的定时器定时初值进行编码,称为唱名码,唱名与唱名码对照表如下表所示。生日快乐歌歌谱如下:1=C 3/4,唱名与唱名码对照表,(2)编制节拍与节拍码对照表。根据曲调和歌谱要求,确定最小节拍数为1/4拍,基本延时子程序延时时间为187 ms;对不同节拍对

21、应的循环次数进行编码,称为节拍码,节拍与节拍码对照表如下表所示。,节拍与节拍码对照表,(3)编制简谱码表。歌谱中每个音符中与频率和延时有关的参数可用一个字节来表述,称为简谱码,字节的高4位存放与音符的频率相对应的唱名码,字节的低4位存放与音符的节拍相对应的节拍码。根据歌谱,编制每个音符的简谱码,并编成简谱码表。歌谱中每个音符的简谱码可做成表格存放到程序存储器中,唱名码、节拍码也可做成表格存放到程序存储器中。编写程序通过查表从表格中得到简谱码,从简谱码中分解出唱名码和节拍码,再通过查表从表格中得到唱名码和节拍码所包含的定时初值和循环次数。,参考程序:主程序,参考程序:主程序,参考程序:延时子程序

22、,参考程序:简谱码表,参考程序:唱名码表,6.3.3 方式1及应用实例,【例6】P1.0口做输出口,接一只喇叭,利用定时器中断方式编写程序,使喇叭放出悦耳的音乐。晶振频率6MHz。解:音乐是由高低长短相同或不同的音符,按一定的规律组织起来的。每个音符都包括两个要素:第一是音调,即音符的频率,频率越高音调越高,频率越低音调越低;第二是节拍,即音符的时间长短。利用定时器/计数器可以产生不同频率的音频脉冲,也可以控制音频脉冲的延时时间。不同的音符对应的频率不同,用定时器T1方式1可以产生与各音符对应频率的方波,C调各音符频率与定时器定时初值对应关系如下表所示;不同的节拍对应的延时时间不同,通过循环调

23、用一个基本延时子程序可以产生不同的节拍,各曲调与节拍的时间对应关系如下表所示。,6.3.4 方式2及应用实例,在方式1下,以定时器0为例,定时器/计数器是一个能自动装入初值的8位加1计数器,TH0中的8位用于存放定时初值或计数初值,TL0中的8位用于加1计数器。方式2与方式0基本相似,最大的区别除方式2的加1计数器位数是8位外,加1计数器溢出后,硬件使TF0自动置1,同时自动将TH0中存放的定时初值或计数初值再装入TL0,继续计数。,定时器/计数器0方式2逻辑结构,C/T,C/T,6.3.4 方式2及应用实例,【例7】P1.1输出脉冲宽度调制(PWM)信号,即脉冲频率为1kHz、占空比为25的

24、矩形波,以控制直流电动机按一定的速度转动,晶振频率为6MHz。解:直流电动机具有优良的调速特性,调速方法也从模拟化逐步向数字化转化,采用脉冲宽度调制(PWM)的方法可以实现平滑调速,电机转速由脉冲的占空比决定。频率为1kHz,周期为1ms,占空比为2:5的P1.1输出矩形波的波形如下图所示。对P1.1取反时,由于高、低电平的时间不同,可找出一个时间基准,如100s、200s。本例设定时间基准200s,即定时时间为200s。定时初值 X=28-T/T机=28-200/2=256-100=156=9CH 高电平的软件计数为2,低电平的软件计数为3。定时器以查询方式工作。,6.3.4 方式2及应用实

25、例,主程序:,6.3.4 方式2及应用实例,定时器0中断服务程序:,矩形波的波形图,6.3.4 方式2及应用实例,【例8】定时器0外部输入端(P3.4)作为计数脉冲输入端,利用手控单脉冲信号作为计数输入脉冲,编写控制程序,每输入十个脉冲,工作寄存器R0的内容加一,晶振频率为6MHz。解:用定时器0方式2时,定时器/计数器方式寄存器TMOD低4位中的M1M0应取10;可设定为软件启动定时器,故GATE取0;因用计数功能,C/T取1;定时器方式寄存器TMOD高4位为无关位,一般都取0,所以TMOD应为06H。计数初值 X=28-计数值=28-10=256-0=246=F6H 定时器以中断方式工作。

26、,参考程序:,6.3.4 方式2及应用实例,【例9】利用定时器/计数器扩展一个外部中断源,用手控单脉冲信号作为外部中断信号,P1口控制八只灯(P1口输出低电平时灯被点亮),同一时间只有一盏灯点亮,编写控制程序,每发一个单脉冲信号,循环点亮下一盏灯。解:定时器/计数器0以计数功能工作,当计数初值为FFH时,只要外部计数输入引脚T0(P3.4)输入一个计数脉冲,8位加1计数器TL0变为00H,TF0由硬件自动置1,并申请中断。利用这一特点,将外部中断请求信号作为计数脉冲送入外部计数输入引脚T0(P3.4),就可实现中断功能。定时器/计数器0以方式2工作。,参考程序:,6.3.5 方式3,1.T0方

27、式3的结构特点在方式3下,定时器0分为两个独立的8位加1计数器TH0和TL0。其中TL0既可用于定时,也能用于计数;TH0只能用于定时。定时器/计数器0方式3逻辑结构如下图所示。在方式3下,加1计数器TL0占用了T0除TH0外的全部资源,原T0的控制位和信号引脚的控制功能与方式0、方式1相同;与方式2相比,只是不能自动将定时初值或计数初值再装入TL0,而必须用程序来完成。加1计数器TH0只能用于简单的内部定时功能,它占用了原T1的控制位TR1和TF1,同时占用了T1中断源。,6.3.5 方式3,定时器/计数器0方式3逻辑结构,C/T,C/T,6.3.5 方式3,2.T0方式3下T1的结构特点T

28、1不能工作在方式3下,因为在T0工作在方式3下时,T1的控制位TR1、TF1和中断源被T0占用。T1可工作在方式0、方式1、方式2下,但其输出直接送入串行口。设置好T1的工作方式,T1就自动开始计数;若要停止计数,可将T1设为方式3。T1通常用作串行口波特率发生器,以方式2工作会使程序简单一些。,6.3.5 方式3,定时器/计数器0方式3下的T1逻辑结构,C/T,C/T,C/T,C/T,C/T,C/T,本章小结,8051单片机共有两个可编程的定时器/计数器,分别称为定时器0和定时器1,它们都是16位加1计数器。定时器/计数器的工作方式、定时时间、计数值和启停控制由程序来确定。定时器/计数器有四

29、种工作方式,工作方式由定时器方式寄存器TMOD中的M1、M0位确定。方式0是13位计数器,方式1是16位计数器,方式2是自动重装初值8位计数器;方式3时,定时器0被分为两个独立的8位计数器,定时器1是无中断的计数器,此时定时器1一般用作串行口波特率发生器。定时器/计数器有定时和计数两种功能,由定时器方式寄存器TMOD中的C/T位确定。当定时器/计数器工作在定时功能时,通过对单片机内部的时钟脉冲计数来实现可编程定时;当定时器/计数器工作在计数功能时,通过对单片机外部的脉冲计数来实现可编程计数。,本章小结,当定时器/计数器的加1计数器计满溢出时,溢出标志位TF1(TF0)由硬件自动置1,对该标志位

30、有两种处理方法。一种是以中断方式工作,即TF1(TF0)置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1(TF0)清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1(TF0)置1后必须用软件使TF1清0。定时器/计数器的初始化实际上就是对定时器/计数器进行编程,以实现设计者所要求的控制功能。这通过对TMOD、TH0(TH1)、TL0(TL1)、IE、TCON专用寄存器中相关位的设置来实现,其中IE、TCON专用寄存器可进行位寻址。,习 题,1.8051单片机的定时器/计数器的定时和计数两种功能各有什么特点?2.当定时器/计数器的加1计数器计满溢出时,溢出

31、标志位TF1由硬件自动置1,简述对该标志位的两种处理方法。3.当定时器/计数器工作于方式0时,晶振频率为12MHz,请计算最小定时时间、最大定时时间、最小计数值和最大计数值。4.8051单片机的定时器/计数器四种工作方式各有什么特点?5.硬件定时与软件定时的最大区别是什么?6.根据定时器/计数器0方式1逻辑结构图,分析门控位GATE取不同值时,启动定时器的工作过程。,习 题,7.用方式0设计两个不同频率的方波,P1.0输出频率为200Hz,P1.1输出频率为 100Hz,晶振频率12MHz。8.P1.0输出脉冲宽度调制(PWM)信号,即脉冲频率为2kHz、占空比为7:10的矩形波,晶振频率12MHz。9.两只开关分别接入P3.0、P3.1,在开关信号4种不同的组合逻辑状态,使P1.0分别输出频率0.5kHz、1kHz、2kHz、4kHz的方波,晶振频率为12MHz。10.有一组高电平脉冲的宽度在50100ms之间,利用定时器0测量脉冲的宽度,结果存放到片内RAM区以50H单元为首地址的单元中,晶振频率12MHz。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号