单片微机原理与应用part-05课件.ppt

上传人(卖家):三亚风情 文档编号:3504475 上传时间:2022-09-08 格式:PPT 页数:56 大小:1.74MB
下载 相关 举报
单片微机原理与应用part-05课件.ppt_第1页
第1页 / 共56页
单片微机原理与应用part-05课件.ppt_第2页
第2页 / 共56页
单片微机原理与应用part-05课件.ppt_第3页
第3页 / 共56页
单片微机原理与应用part-05课件.ppt_第4页
第4页 / 共56页
单片微机原理与应用part-05课件.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、 2022-7-2612022-7-262【基本知识点与要求【基本知识点与要求】(1)了解了解51系列单片机定时器系列单片机定时器/计数器的结构和工作原理。计数器的结构和工作原理。(2)掌握掌握51系列单片机定时器系列单片机定时器/计数器的工作模式、特点及应用计数器的工作模式、特点及应用【重点与难点【重点与难点】重点和难点是重点和难点是51系列单片机的定时器系列单片机的定时器/计数器的工作模式、特计数器的工作模式、特点及其应用。点及其应用。在控制系统中,常常要求有在控制系统中,常常要求有定时或延时控制定时或延时控制,如定时输出、,如定时输出、定时监测、定时扫描等;也常常要求定时监测、定时扫描等

2、;也常常要求还有计数功能还有计数功能,即,即能对外部能对外部事件进行计数事件进行计数。本章。本章首先首先介绍介绍定时器定时器/计数器计数器的一般的一般结构和工作结构和工作原理原理;其次其次介绍介绍5151系列单片机的定时器系列单片机的定时器/计数器控制计数器控制;然后然后介绍介绍5151系列单片机定时器系列单片机定时器/计数器的工作模式及其应用计数器的工作模式及其应用方法。方法。2022-7-2635.1.1 5.1.1 定时器定时器/计数器的一般工作方式计数器的一般工作方式 实现定时实现定时/计数的主要方法有计数的主要方法有3种:软件定时、硬件定时和可种:软件定时、硬件定时和可编程定时器编程

3、定时器/计数器。计数器。软件定时:软件定时:通过执行一段循环程序而产生延时。这是常用的通过执行一段循环程序而产生延时。这是常用的一种定时方法,主要用于短时定时。其优点是不需要增加硬件设一种定时方法,主要用于短时定时。其优点是不需要增加硬件设备;缺点是增加了备;缺点是增加了CPU的时间开销,降低了的时间开销,降低了CPU的效率。此外,的效率。此外,软件定时的时间随微机时钟频率不同而发生变化软件定时的时间随微机时钟频率不同而发生变化 硬件定时:硬件定时:采用硬件电路完成定时,不占用采用硬件电路完成定时,不占用CPU的时间。这的时间。这种方法定时时间长,但是当要求改变定时时间时,只能通过改变种方法定

4、时时间长,但是当要求改变定时时间时,只能通过改变硬件电路中的元件参数来实现,使用不够灵活。硬件电路中的元件参数来实现,使用不够灵活。2022-7-264 通常通常微机系统微机系统中均中均采用可编程定时器采用可编程定时器/计数器计数器。可编程定时器可编程定时器/计数器计数器是由一个是由一个N位计数器位计数器、计数时钟源控制电路计数时钟源控制电路、状态寄存器状态寄存器和控制寄存器等组成和控制寄存器等组成。计数器的计数方式有加。计数器的计数方式有加1计数和减计数和减1计数两计数两种。计数的时钟可以使用内部时钟也可以使用外部输入的时钟。种。计数的时钟可以使用内部时钟也可以使用外部输入的时钟。可编程定时

5、器可编程定时器/计数器:计数器:综合了软件定时和硬件定时法各自综合了软件定时和硬件定时法各自的优点,其最大的灵活性是可以通过软件编程来选择定时或者计的优点,其最大的灵活性是可以通过软件编程来选择定时或者计数、改变定时时间。其优点是工作方式灵活、占用数、改变定时时间。其优点是工作方式灵活、占用CPU的时间少。的时间少。2022-7-2651定时器方式定时器方式 定时器方式就是计数器对内部机器周期计数,由于机器周期定时器方式就是计数器对内部机器周期计数,由于机器周期持续的时间是固定的,所以对机器周期的计数也就是定时功能。持续的时间是固定的,所以对机器周期的计数也就是定时功能。计数值乘以机器周期的时

6、间就是定时时间计数值乘以机器周期的时间就是定时时间t。定时器定时器/计数器的一般结构计数器的一般结构2022-7-266 2 2计数器方式计数器方式 计数器方式是计数器方式是对外部输入的时钟计数对外部输入的时钟计数,其计数的目的是对外,其计数的目的是对外部时钟累加统计或是为了测量外部输入脉冲的参数。部时钟累加统计或是为了测量外部输入脉冲的参数。5.1.2 515.1.2 51系列单片机的定时器系列单片机的定时器/计数器结构与原理计数器结构与原理 1.1.定时器定时器/计数器的结构计数器的结构 AT89S51单片机内部集成了单片机内部集成了2个个16位的可编程定时器计数位的可编程定时器计数器,器

7、,即定时器即定时器/计数器计数器0和定时器和定时器/计数器计数器1,分别简记为,分别简记为T0和和T1。它们既可以实现定时,也可以对外部事件进行计数,它们既可以实现定时,也可以对外部事件进行计数,T1还可以作还可以作为串行接口通信的波特率发生器。为串行接口通信的波特率发生器。AT89S51单片机的定时器单片机的定时器/计数器主要由两个计数器主要由两个16位加位加1计数器计数器T0、T1、定时器定时器工作模式寄存器工作模式寄存器TMOD和定时器控制寄存器和定时器控制寄存器TCON等等四部分组成四部分组成。2022-7-267 AT89S51定时器定时器/计数器内部结构图计数器内部结构图 2022

8、-7-268 定时功能定时功能:定时器定时器/计数器设置为定时功能时,加计数器设置为定时功能时,加1计数器对单片机内部计数器对单片机内部的机器周期脉冲进行计数,每过一个机器周期、计数器的数值加的机器周期脉冲进行计数,每过一个机器周期、计数器的数值加1。当计数器加到全为。当计数器加到全为1时,再计入一个脉冲就使计数器发生溢出、时,再计入一个脉冲就使计数器发生溢出、并回到零。计数器的溢出使并回到零。计数器的溢出使TCON中的溢出标志位(中的溢出标志位(TF0或或TF1)置置1,表示定时时间已到,向,表示定时时间已到,向CPU发出中断请求。发出中断请求。2.2.定时器定时器/计数器的工作原理计数器的

9、工作原理 计数功能计数功能:定时器定时器/计数器设置为计数功能时,是对单片机的计数器设置为计数功能时,是对单片机的T0(P3.4)或或T1(P3.5)引脚上输入脉冲的每一个)引脚上输入脉冲的每一个1到到0的跳变进行加的跳变进行加l计数。计数。单片机在每个机器周期都会对单片机在每个机器周期都会对T0和和T1引脚的输入电平进行采样,引脚的输入电平进行采样,如果前一个机器周期的采样值为如果前一个机器周期的采样值为1,而下一个机器周期的采样值为,而下一个机器周期的采样值为0,则加,则加1计数器的值加计数器的值加1。2022-7-269 定时器定时器/计数器的工作模式设定、功能选择和控制是由计数器的工作

10、模式设定、功能选择和控制是由TMOD和和TCON两个特殊功能寄存器来完成的,当单片机系统复位后,两个特殊功能寄存器来完成的,当单片机系统复位后,两个特殊功能寄存器都被清零。两个特殊功能寄存器都被清零。5.2.1 5.2.1 定时器定时器/计数器的工作模式寄存器计数器的工作模式寄存器TMODTMOD TMOD用于选择用于选择T0和和T1的工作模式,是一个逐位定义的的工作模式,是一个逐位定义的8位位寄存器,只能字节寻址,字节地址为寄存器,只能字节寻址,字节地址为89H。其格式如下:。其格式如下:D7 D6 D5 D4 D3 D2 D1 D0GATE M1 M0GATEC/T M1 M0TC/202

11、2-7-2610(1)GATE:门控位。:门控位。GATE1时,由外部中断引脚输入的电平和定时器时,由外部中断引脚输入的电平和定时器/计数器计数器启、停控制位(启、停控制位(TR0、TR1)共同来控制定时器)共同来控制定时器。GATE0时,仅由时,仅由TR0(TR1)置位或者清零来启动或者停)置位或者清零来启动或者停止定时器止定时器T0(T1)。)。(2 2):功能选择位。:功能选择位。=1 =1时,选择计数功能,通过引脚时,选择计数功能,通过引脚T0T0(P3.4P3.4)对外部输入脉冲)对外部输入脉冲信号进行计数。信号进行计数。=0=0时,选择定时功能。计数输入信号是内部时钟脉冲,每个时,

12、选择定时功能。计数输入信号是内部时钟脉冲,每个机器周期计数器的值加机器周期计数器的值加1 1。计数频率为时钟频率的。计数频率为时钟频率的1 11212,当采用,当采用12MHz12MHz的晶振时,计数频率为的晶振时,计数频率为1MHz1MHz。定时器的定时时间与系统的时。定时器的定时时间与系统的时钟频率钟频率foscfosc、计数器的长度和初始值等有关。、计数器的长度和初始值等有关。TC/TC/TC/2022-7-2611(3 3)M1、M0:工作模式选择位。:工作模式选择位。M1 M0 工作模式工作模式 功能描述功能描述 0 0模式模式013位计数器位计数器 0 1模式模式116位计数器位计

13、数器 1 0模式模式2自动重装入初值自动重装入初值8位计数器位计数器 1 1模式模式3定时器定时器0:分成两个:分成两个8位计数器;定位计数器;定时器时器1:停止计数:停止计数5.2.2 5.2.2 定时器定时器/计数器的控制寄存器计数器的控制寄存器TCONTCON 控制寄存器控制寄存器TCON是一个逐位定义的是一个逐位定义的8位寄存器,既可字节寻位寄存器,既可字节寻址也可以位寻址,字节地址是址也可以位寻址,字节地址是88H,位寻址的地址为,位寻址的地址为88H8FH。其格式如下:其格式如下:2022-7-2612 TCON寄存器可分成两部分:寄存器可分成两部分:高高4位用于定时器位用于定时器

14、/计数器的控制计数器的控制,低低4位用于外部中断的控制位用于外部中断的控制。(1)TF1(TCON.7位):位):T1的溢出标志位。的溢出标志位。T1溢出时,该位溢出时,该位由内部硬件自动置位。若中断开放,即向由内部硬件自动置位。若中断开放,即向CPU 发出中断申请,响发出中断申请,响应中断进入中断服务程序后,由硬件自动清应中断进入中断服务程序后,由硬件自动清0;若中断禁止,;若中断禁止,TF1位可作溢出查询测试用(判断该位是否为位可作溢出查询测试用(判断该位是否为1),此时只能由软件清),此时只能由软件清0。(2)TR1(TCON.6位):位):T1的启动、停止控制位。的启动、停止控制位。位

15、地址位地址8FH8EH8DH8CH8BH8AH89H88H位功能位功能TF1TR1TF0TR0IE1IE1IT1IT1IE0IE0IT0IT02022-7-2613 当当GATEGATE0 0时时,若使用指令,若使用指令 SETB TR1,则启动,则启动T1。若使用。若使用指令指令 CLR TR1,则停止定时器,则停止定时器T1工作;工作;当当GATEGATE1 1时时,若使用指令,若使用指令 SETB TR1,且外部中断的引脚,且外部中断的引脚输入高电平时才能启动输入高电平时才能启动T1工作。工作。(3 3)TF0(TCON.5位):位):T0的溢出标志位。的溢出标志位。其功能及操作情况与其

16、功能及操作情况与TF1相同。相同。(4 4)TR0(TCON.4):):T0的启动、停止控制位。的启动、停止控制位。其功能及操作情况与其功能及操作情况与TR1相同。相同。5.2.3 5.2.3 定时器定时器/计数器的初始化计数器的初始化2022-7-2614 定时器定时器/计数器的初始化:计数器的初始化:定时器定时器/计数器运行前,计数器运行前,CPU必须必须将一些命令(称为控制字)写入定时器将一些命令(称为控制字)写入定时器/计数器,这个过程称计数器,这个过程称 之。之。初始化的内容主要包括:初始化的内容主要包括:设置设置TMOD、中断允许寄存器、中断允许寄存器IE和和中断优先级寄存器中断优

17、先级寄存器IP,装入时间常数,启动定时器,装入时间常数,启动定时器/计数器工作。计数器工作。(1)选择定时器)选择定时器/计数器及其工作模式,确定模式控制字,并计数器及其工作模式,确定模式控制字,并写入写入TMOD。(2)根据需要开启定时器)根据需要开启定时器/计数器的中断。计数器的中断。(3)装入定时器)装入定时器/计数器的初值。计数器的初值。(4)设置定时器)设置定时器/计数器的中断优先级。计数器的中断优先级。(5)启动定时器)启动定时器/计数器工作。计数器工作。1.1.定时器定时器/计数器初始化步骤计数器初始化步骤2022-7-2615 (1)选择定时器选择定时器/计数器及其工作模式,确

18、定模式控制字,并写计数器及其工作模式,确定模式控制字,并写入入TMOD。使用。使用T0,需定义,需定义TMOD的低的低4位,使用位,使用T1,需定义,需定义TMOD的高的高4位。位。1.1.定时器定时器/计数器初始化步骤计数器初始化步骤 (2)根据需要开启定时器)根据需要开启定时器/计数器的中断。计数器的中断。IE中与定时器中与定时器/计数器计数器中断有关的位为中断有关的位为EA、ET0和和ET1。(3)装入定时器)装入定时器/计数器的初值。计数器的初值。定时或计数初值就是预先置定时或计数初值就是预先置入定时器入定时器/计数器中的计数器的常数计数器中的计数器的常数,称为定时常数或计数常数,称为

19、定时常数或计数常数,标记为标记为TC(Timer Constant)。(4)设置定时器)设置定时器/计数器的中断优先级。计数器的中断优先级。IP中与定时器中与定时器/计数器优计数器优先级有关的位是先级有关的位是PT0和和PT1位。位。2022-7-2616 若需要定时的时间为若需要定时的时间为t,则有下式:,则有下式:(5 5)启动定时器)启动定时器/计数器工作。计数器工作。置位置位TR0或或TR1,就可以启动定,就可以启动定时器时器/计数器计数器T0或或T1。2.2.定时器定时器/计数器初值计算计数器初值计算 TC212TC2LoscLCfTt 122TCtfoscL式中:式中:t 定时时间

20、定时时间 机器周期机器周期 单片机时钟频率单片机时钟频率 L计数器长度,模式计数器长度,模式0时,时,L=13;模式;模式1,L=16;模式模式2或或3,L=8。TC定时器定时器/计数器初值(常数)计数器初值(常数)oscfCT2022-7-26173.定时器定时器/计数器初值装入计数器初值装入 不同的工作模式下初值的装入方法有所不同(以不同的工作模式下初值的装入方法有所不同(以T0为例,为例,T1与与T0类似)类似)若工作在计数器方式时,若工作在计数器方式时,需要的计数值为需要的计数值为CC,则计数初值,则计数初值TC的计算如下:的计算如下:TC=2L计数值(计数值(CC)定时器定时器/计数

21、器的定时或计数初值与工作模式、计数长度之间计数器的定时或计数初值与工作模式、计数长度之间的关系如下页表的关系如下页表5-2 模式模式0 0是是1313位定时器位定时器/计数器计数器,计数初值的高,计数初值的高8 8位装入位装入TH0TH0,而,而低低5 5位装入位装入TL0TL0的低的低5 5位(位(TL0TL0的高的高3 3位无效,可填位无效,可填0 0)。)。模式模式1 1是是1616位定时器位定时器/计数器计数器,计数初值的高,计数初值的高8 8位装入位装入TH0TH0,而,而低低8 8位装入位装入TL0TL0。模式模式2 2是自动重装入初值是自动重装入初值8 8位定时器位定时器/计数器

22、计数器,只要装入一次,只要装入一次,溢出后就自动装入初值。计数初值既要装入溢出后就自动装入初值。计数初值既要装入TH0TH0,也要装入,也要装入TL0TL0。2022-7-2618工作模式工作模式计数长计数长度度最大计数值为最大计数值为M M 最长定时时间最长定时时间T T定时初值定时初值TCTC计数初值计数初值 CCCCf f=6MHz=6MHz模式模式0 01313M=2M=21313=8192=8192=2000H=2000HT=2T=21313TC TC=8.192ms=8.192msT=2T=21313TC TC=16.384ms=16.384msTC=2TC=21313t/Tct/

23、TcTC=TC=2 21313CCCC)模式模式1 11616M=2M=21616=65536=65536T=2T=21616TC TC=65.536ms=65.536msT=2T=21616TC TC=131.072ms=131.072msTC=2TC=21616t/Tct/TcTC=TC=2 21616CCCC)模式模式2 28 8M=2M=28 8=256=256T=2T=28 8TC TC=0.256ms=0.256msT=2T=28 8TC TC=0.512ms=0.512msTC=2TC=28 8t/Tct/TcTC=TC=2 28 8CCCC)模式模式3 3(T0T0)TL0 8

24、TL0 8M=2M=28 8=256=256T=2T=28 8TC TC=0.256ms=0.256msT=2T=28 8TC TC=0.512ms=0.512msTC=2TC=28 8t/Tct/TcTC=TC=2 28 8CCCC)TH0 8TH0 8M=2M=28 8=256=256T=2T=28 8TC TC=0.256ms=0.256msT=2T=28 8TC TC=0.512ms=0.512msTC=2TC=28 8t/Tct/TcTC=TC=2 28 8CCCC)MHz12oscf2022-7-26195.3.1 5.3.1 模式模式0 0及应用及应用 当当TMOD中的中的M1M

25、0=00时,选定工作模式时,选定工作模式0。模式。模式0的定时器的定时器/计数器逻辑结构如图所示。由计数器逻辑结构如图所示。由TLx中的低中的低5位(高位(高3位未用)和位未用)和THx中的中的8位组成位组成13位加位加1计数器;若计数器;若TLx中的第中的第5位有进位,直接进到位有进位,直接进到THx的最低位,的最低位,THx溢出后将溢出后将TFx置位,并向置位,并向CPU申请中断。申请中断。2022-7-2620 【例题【例题5-1】已知时钟频率已知时钟频率f=12MHz,要求在,要求在P1.0引脚上输引脚上输出周期为出周期为2ms的方波。的方波。122TCtfoscL7192100081

26、92121010122TC3613解:解:(1)题意分析与定时器初始化。)题意分析与定时器初始化。方波的周期为方波的周期为2ms,则需要设定,则需要设定1ms的定时,每隔的定时,每隔1ms产生产生一次定时中断,在中断服务程序中对一次定时中断,在中断服务程序中对P1.0引脚输出信号取反,即引脚输出信号取反,即可达到题目的要求。可达到题目的要求。选用选用T0定时功能,使用工作模式定时功能,使用工作模式0。TC为为7192=1C18H,转换为二进制数,转换为二进制数TC=0001110000011000B,取取低低13位,其中高位,其中高8位为位为E0H,低,低5位为位为18H。计数初值为计数初值为

27、7192,定时时间为,定时时间为 mss11719281922022-7-2621TMOD设定设定(2 2)编程)编程 ORG 0000H AJMP MAIN ORG 000BH ;T0中断入口地址中断入口地址 AJMP INQP ORG 0030HMAIN:MOV SP,#60H ;设置堆栈指针;设置堆栈指针2022-7-2622 MOV TMOD,#00H ;写入控制字;写入控制字 MOV TH0,#0E0H ;写定时常数(定时;写定时常数(定时1ms)MOV TL0,#18H SETB TR0 ;启动;启动T0 SETB ET0 ;允许;允许T0中断中断 SETB EA ;开放开放CPU

28、中断中断HERE:AJMP HERE ;等待定时中断;等待定时中断INQP:MOV TH0,#0E0H ;重新写入定时常数;重新写入定时常数 MOV TL0,#18H CPL P1.0 ;P1.0变反输出变反输出 RETI ;中断返回;中断返回 END2022-7-26235.3.2 5.3.2 模式模式1 1及应用及应用 当当TMOD中的中的M1M0=01时,选定工作模式时,选定工作模式1。模式。模式1的定时的定时器器/计数器逻辑结构如图计数器逻辑结构如图5-4所示。在模式所示。在模式1下,定时器下,定时器/计数器是由计数器是由THx中的中的8位和位和TLx中的中的8位组成一个位组成一个16

29、位加位加1计数器。模式计数器。模式1的结的结构和操作与模式构和操作与模式0完全类似,其唯一的差别仅仅在于计数器的位数完全类似,其唯一的差别仅仅在于计数器的位数不同。不同。2022-7-2624【例题【例题5-2】已知时钟频率为已知时钟频率为6MHz,要求在,要求在P3.4引脚上产生周引脚上产生周期为期为40ms的方波输出。的方波输出。解:解:(1)题意分析定时器初始化。)题意分析定时器初始化。方波的周期为方波的周期为40ms40ms,则需要设定,则需要设定20ms20ms的定时,每隔的定时,每隔20ms20ms产生产生一次定时中断,在中断服务程序中对一次定时中断,在中断服务程序中对P3.4P3

30、.4引脚输出信号取反,即引脚输出信号取反,即可达到题目的要求。可达到题目的要求。时钟频率为时钟频率为6MHz,选用,选用T0T0定时功能,若用模式定时功能,若用模式0 0,其最长定,其最长定时时间为时时间为16.384ms16.384ms,无法直接实现,所以使用工作模式,无法直接实现,所以使用工作模式1 1。定时时。定时时间间t=20mst=20ms,则初值为:,则初值为:122TCtfoscL555361000065536121021062TC26162022-7-2625 (2)编程)编程 ORG 0000H AJMP MAIN ORG 000BH ;T0中断入口地址中断入口地址 AJMP

31、 INQP ORG 0030HMAIN:MOV SP,#60H ;设置堆栈指针;设置堆栈指针TC为为55536=DBF0H,其中高,其中高8位为位为0DBH,低,低8位为位为0F0H。TMODTMOD的设定的设定 2022-7-2626 MOV TMOD,#01H ;写控制字;写控制字 MOV TH0,#0DBH ;写定时常数(定时;写定时常数(定时20ms)MOV TL0,#0F0H SETB TR0 ;启动;启动T0 SETB ET0 ;允许;允许T0中断中断 SETB EA ;开放开放CPU中断中断HERE:AJMP HERE ;等待定时中断;等待定时中断INQP:MOV TH0,#0D

32、BH ;重写定时常数;重写定时常数 MOV TL0,#0F0H CPL P3.4 ;P3.4变反输出变反输出 RETI ;中断返回;中断返回 END2022-7-2627【例题【例题5-35-3】实时时钟的程序设计实时时钟的程序设计 1.1.设计的基本思想设计的基本思想 可以用定时器可以用定时器/计数器来实现实时时钟。时钟的最小计时单位计数器来实现实时时钟。时钟的最小计时单位是秒,如何获得是秒,如何获得1秒的定时呢?从定时器的工作模式可知,如果秒的定时呢?从定时器的工作模式可知,如果时钟频率为时钟频率为6MHz,使用定时器模式,使用定时器模式1,最大的定时时间也只能达,最大的定时时间也只能达到

33、到131.072ms,无法直接实现。因此,可以将定时器的定时时间,无法直接实现。因此,可以将定时器的定时时间定为定为100ms,采用中断方式进行定时次数的累计,计满,采用中断方式进行定时次数的累计,计满10次为次为1s。719210008192121010122122TC3613tfoscL155365000065536121.01062TC616定时初值的计算如下:TC为为15536=3CB0H,其中高,其中高8位为位为3CH,低,低8位为位为0B0H。2022-7-2628 2.2.程序设计程序设计(1)主程序设计:)主程序设计:主程序的主要功能是主程序的主要功能是进行定时器进行定时器T1

34、的初始的初始化,并启动化,并启动T1,然后,然后通过反复调用显示子通过反复调用显示子程序,等待程序,等待100ms定定时中断的到来。主程时中断的到来。主程序的流程如图序的流程如图5-5所所示。示。2022-7-2629(2)中断服务)中断服务程序设计:程序设计:中断服务程序中断服务程序的主要功能是实的主要功能是实现时、分、秒的现时、分、秒的计时处理,程序计时处理,程序流程如图所示流程如图所示。2022-7-26305.3.3 5.3.3 模式模式2 2及应用及应用 当当TMOD中的中的M1M0=10时,选定工作模式时,选定工作模式2。该模式下,将。该模式下,将16位计数寄存器分为两个位计数寄存

35、器分为两个8位寄存器,组成一个能自动重装入初值位寄存器,组成一个能自动重装入初值的的8位加位加1计数器,定时器计数器,定时器/计数器逻辑结构如图所示。计数器逻辑结构如图所示。2022-7-2631 在模式在模式2中,中,TLx作为作为8位计数器,位计数器,THx作为定时初值或计数初作为定时初值或计数初值寄存器。当值寄存器。当TLx计数溢出时,硬件自动使计数溢出时,硬件自动使TFx置位、向置位、向CPU申请申请中断,同时自动将中断,同时自动将THx的内容重新装入的内容重新装入TLx中,继续计数。重新装中,继续计数。重新装入不影响入不影响THx的内容。的内容。模式模式0和模式和模式1在每次计数满溢

36、出后,计数器都要置在每次计数满溢出后,计数器都要置0,要开始,要开始新的计数还需要重置计数初值。而模式新的计数还需要重置计数初值。而模式2具有初值自动装入功能,具有初值自动装入功能,避免了编成装入初值的麻烦,适合用于较高精度的定时信号发生避免了编成装入初值的麻烦,适合用于较高精度的定时信号发生器,通常作为串行口通信时的波特率发生器使用。器,通常作为串行口通信时的波特率发生器使用。【例题【例题5-45-4】已知时钟频率为已知时钟频率为MHz12oscf,当,当T0(P3.4)引脚输入信号发生引脚输入信号发生从从1到到0的负跳变时,则从的负跳变时,则从P1.0引引脚上输出一个频率为脚上输出一个频率

37、为5KHz的方波。的方波。2022-7-2632 (1 1)工作模式选择)工作模式选择 根据题目的要求,根据题目的要求,T0(P3.4)引脚的输入信号可视为外部中断引脚的输入信号可视为外部中断源,定时器源,定时器/计数器计数器T0设置为工作模式设置为工作模式1、计数方式,其初值设为、计数方式,其初值设为0FFFFH,当外部计数输入端,当外部计数输入端T0(P3.4)引脚发生一次负跳变时,)引脚发生一次负跳变时,计数器计数器T0加加1溢出后,使标志位溢出后,使标志位TF0置置1,并向,并向CPU发出中断请求,发出中断请求,在在T0的中断服务子程序中,启动定时器的中断服务子程序中,启动定时器/计数

38、器计数器T1在工作模式在工作模式2定定时,每时,每 产生一次中断,在定时器产生一次中断,在定时器T1的中断服务子程序中的中断服务子程序中对对P1.0取反,使取反,使P1.0产生频率为产生频率为5KHz的方波。的方波。s100(2 2)计算)计算T1T1初值初值T1的初值计算如下:的初值计算如下:719210008192121010122122TC3613tfoscL9CH156100256121010122TC4682022-7-2633(3)编程)编程 ORG 0000HRESET:LJMP MAIN ;转向主程序转向主程序 ORG 000BH LJMP IT0P ;转;转T0中断服务程序中

39、断服务程序 ORG 001BH LJMP IT1P ;转;转T1中断服务程序中断服务程序 ORG 1000H MAIN:MOV SP,#60H ;主程序,设堆栈指针主程序,设堆栈指针 MOV TMOD,#25H ;T0为模式为模式1、计数方、计数方 ;式,;式,T1为模式为模式 2 MOV TL0,#0FFH ;T0置计数初值置计数初值 MOV TH0,#0FFH SETB ET0 ;允许;允许T0中断中断2022-7-2634 MOV TL1,#9CH ;T1置计数初值置计数初值 MOV TH1,#9CH SETB EA ;CPU开中断开中断 SETB TR0 ;启动;启动T0 HERE:A

40、JMP HERE ORG 1200H ;T0中断服务程序中断服务程序 IT0P:CLR TR0 ;停止;停止T0计数计数 SETB ET1 ;允许;允许T1中断中断 SETB TR1 ;启动;启动T1 RETI ORG 1300H ;T1中断服务程序中断服务程序 IT1P:CPL P1.0 ;P1.0位取反位取反 RETI END2022-7-2635 1定时器初值计算:定时器初值计算:定时器定时器/计数器计数器T0定时工作模式定时工作模式2,TL0为为8位计数器,位计数器,TH0为预为预置寄存器。定时置寄存器。定时360 s的初值的初值TC1、40 s的初值的初值TC2 计算如下:计算如下:

41、【例题【例题5-55-5】用定时器用定时器/计数器计数器T0、以定时工作模式、以定时工作模式2,在,在P1.0输输出周期为出周期为400 s,占空比为,占空比为9:10的脉冲,如图所示。设的脉冲,如图所示。设 ,请编程实现(查询方式)。请编程实现(查询方式)。MHz6oscf解:解:由题意可知,由题意可知,P1.0输出高电平输出高电平持续持续360 s,输,输出低电平持续出低电平持续40 s。2022-7-2636719210008192121010122122TC3613tfoscLCH47618025612103601062TC1668ECH236202561210401062TC2668

42、2 2程序流程设计程序流程设计 2022-7-26373编程实现编程实现 ORG 0000H AJMP MAIN ORG 0040HMAIN:MOV SP,#60H SETB P1.0 MOV TMOD,#02H MOV IE,#00H MOV TL0,#4CH MOV TH0,#0ECHAGAIN:SETB TR0 LOOP:JBC TF0,LOOP1 AJMP LOOP LOOP1:CPL P1.0 JNB P1.0,LOOP2 MOV TH0,#0ECH AJMP LOOP LOOP2:MOV TH0,#4CH AJMP LOOP HERE:SJMP HERE END2022-7-263

43、85.3.4 5.3.4 模式模式3 3及应用及应用 TMOD中的中的M1M0l1时,选定工作模式时,选定工作模式3。在工作模式。在工作模式3下,下,T0分为两个独立的分为两个独立的8位加位加1计数器计数器TH0和和TL0。其中。其中TL0既既可用于可用于定定时,也可时,也可用于用于计数计数;TH0只能用于定时只能用于定时。T1不能在模式不能在模式3下工作下工作。1.工作模式工作模式3下的定时器下的定时器/计数器计数器T0 2022-7-26392.T02.T0在工作模式在工作模式3 3下时的定时器下时的定时器/计数器计数器T1T1 TL0:8位定时器计数器,它占用了位定时器计数器,它占用了T

44、0的各控制位、引脚和中断的各控制位、引脚和中断源。即源。即 、GATE、启动停止控制位、启动停止控制位TR0、T0引脚(引脚(P3.4)及计数器)及计数器溢出标志位溢出标志位TF0和和T0的中断服务入口地址(的中断服务入口地址(000BH)等。)等。TH0:作为作为8位定时器用,它占用了定时器计数器位定时器用,它占用了定时器计数器T1的启动停止的启动停止控制位控制位TR1、计数溢出标志位、计数溢出标志位TF1及及T1中断服务入口地址(中断服务入口地址(001BH)。)。TH0只能对机器周期进行计数,因此,它只能用作内部定时,不能用作只能对机器周期进行计数,因此,它只能用作内部定时,不能用作对外

45、部脉冲进行计数。对外部脉冲进行计数。TC/T0工作模式工作模式3下时的定时器下时的定时器/计数器计数器T1的逻辑结构如图。的逻辑结构如图。T1不能工作不能工作在模式在模式3下,只能选模式下,只能选模式0、1或或2,此时,定时器,此时,定时器/计数器计数器T1由由 位控位控制其为定时或计数功能。当计数器溢出时,只能将输出送往串行口。制其为定时或计数功能。当计数器溢出时,只能将输出送往串行口。通常作串行口波特率发生器时或不需要中断的地方。定时器通常作串行口波特率发生器时或不需要中断的地方。定时器/计数器计数器T1的启动和关闭比较特殊,设置好的启动和关闭比较特殊,设置好T1的工作模式,就开始计数。若

46、要停的工作模式,就开始计数。若要停止计数,只需要送入一个设置定时器止计数,只需要送入一个设置定时器T1为模式为模式3的命令即可。的命令即可。TC/2022-7-2640【例题【例题5-65-6】设设 ,编程实现用,编程实现用AT89S51产生两个方产生两个方波,一个方波周期为波,一个方波周期为200s,另一个方波周期为,另一个方波周期为400s。MHz216.9oscf2022-7-2641(2)定时常数计算:)定时常数计算:TL0时常记为时常记为TCL0,需要定时,需要定时100s;TH0时常记为时常记为TCH0,需要定时,需要定时200s。(1)工作模式的选择:)工作模式的选择:这时这时T

47、0采用模式采用模式3工作,其中,工作,其中,TL0产生产生100s定时,由定时,由P1.0输出方波输出方波1;TH0产生产生200s定时,由定时,由Pl.1输输出方波出方波2。719210008192121010122122TC3613tfoscLB3H2.1798.76256121010010216.92TCL0668H664.1026.153256121020010216.92TCH06682022-7-2642(3 3)编程)编程 ORG 0000H AJMP MAIN ORG 000BH AJMP ITL0 ORG 00lBH AJMP ITH0 ORG 0100HMAIN:MOV S

48、P,#60H MOV TMOD,03H MOV TL0,0B3H MOV TH0,66H SETB TR0 SETB TR1SETB ET0 SETB ET1 SETB EA HERE:AJMP HEREITL0:MOV TL0,0B3H CPL P1.0 RETIITH0:MOV TH0,66HCPL P1.1 RETIEND 2022-7-26435.3.5 5.3.5 定时器定时器/计数器门控位的应用计数器门控位的应用 门控位门控位GATE可用作对引脚上输入的高电平持续时间进行计可用作对引脚上输入的高电平持续时间进行计量。一般情况下,设置门控位量。一般情况下,设置门控位GATE=0时,定

49、时器时,定时器/计数器的运计数器的运行只受行只受TRx的控制。的控制。当门控位当门控位GATE=1时时,定时器定时器/计数器计数器的运的运行同时行同时受到受到TRx为和引脚电平的控制为和引脚电平的控制。据此,当设置据此,当设置GATE位为位为“1”、定时器、定时器/计数器的启动位计数器的启动位TRx为为“1”时,定时器时,定时器/计数器的计数器的启启/停就完全取决于引脚输入的信号。当引脚电平为停就完全取决于引脚输入的信号。当引脚电平为“1”时,则时,则启动定时器启动定时器/计数器工作。当引脚电平为计数器工作。当引脚电平为“0”时,则停止定时器时,则停止定时器/计数器工作。计数器工作。这样,这样

50、,定时器实际记录的时间就是相应引脚上高定时器实际记录的时间就是相应引脚上高电平的持续时间。电平的持续时间。2022-7-2644【例题【例题5-7】利用定时器计数器测定图利用定时器计数器测定图5-12所示波形的高电平持所示波形的高电平持续时间。续时间。解法一(采用查询的方式)解法一(采用查询的方式)INT1INT1INT1 此题目实际上是要测量外部输入正脉冲的宽度。此题目实际上是要测量外部输入正脉冲的宽度。T1作为定时作为定时器使用,当门控信号器使用,当门控信号GATE=1、TR1=1时,时,T1的启动和关闭就由的启动和关闭就由控制。当控制。当为高电平时,启动定时器工作直到为高电平时,启动定时

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(单片微机原理与应用part-05课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|