单片机定时器及应用

上传人:无*** 文档编号:195266773 上传时间:2023-03-16 格式:PPT 页数:64 大小:794KB
收藏 版权申诉 举报 下载
单片机定时器及应用_第1页
第1页 / 共64页
单片机定时器及应用_第2页
第2页 / 共64页
单片机定时器及应用_第3页
第3页 / 共64页
资源描述:

《单片机定时器及应用》由会员分享,可在线阅读,更多相关《单片机定时器及应用(64页珍藏版)》请在装配图网上搜索。

1、第第6章章 定时器定时器/计数器及其应用计数器及其应用2 定时器定时器/计数器及其应用计数器及其应用n定时器定时器/计数器的应用场合计数器的应用场合:定时或延时控制、对外部事件的检测、计定时或延时控制、对外部事件的检测、计数等数等;nMCS-51系列系列8031、8051单片机有单片机有两个两个16位位定时器定时器/计数器(即计数器(即T0和和T1););n8032、8052单片机有单片机有3个个16位定时器位定时器/计计数器(即数器(即T0、T1和和T2););3定时器定时器/计数器及其应用计数器及其应用n所谓所谓计数器计数器就是就是对外部输入脉冲的计数对外部输入脉冲的计数;n所谓所谓定时器

2、定时器也是对脉冲进行计数完成的,也是对脉冲进行计数完成的,计数的是计数的是MCS-51内部产生的标准脉冲内部产生的标准脉冲,通,通过过计数脉冲个数实现定时计数脉冲个数实现定时。n所以,定时器和计数器本质上是一致的,所以,定时器和计数器本质上是一致的,在以后的叙述中将定时器在以后的叙述中将定时器/计数器计数器笼统称为笼统称为定时器定时器。45第第6章章 定时器定时器/计数器及其应用计数器及其应用n6.1 定时器的结构及工作原理定时器的结构及工作原理n6.2 定时器的定时器的TMOD和和TCON寄存器寄存器n6.3 定时器的工作方式定时器的工作方式n6.3.1 方式方式0n6.3.2 方式方式1n

3、6.3.3 方式方式2n6.3.4 方式方式3n6.4 定时器的编程和应用定时器的编程和应用6第第6章章 定时器定时器/计数器及其应用计数器及其应用6.1 定时器的结构及工作原理定时器的结构及工作原理76.1 定时器的结构及工作原理定时器的结构及工作原理n组成:两个组成:两个16位的定时器位的定时器T0和和T1,以及他们的工作方式寄存器,以及他们的工作方式寄存器TMOD和控制寄存器和控制寄存器TCON等组成。内部通过等组成。内部通过总线总线与与CPU相连。相连。n定时器定时器T0和和T1各由两个各由两个8位特殊功能寄存器位特殊功能寄存器TH0、TL0、TH1、TL1构成。构成。n工作方式寄存器

4、工作方式寄存器TMOD:用于设置定时器的用于设置定时器的工作模式和工作方式工作模式和工作方式;n控制寄存器控制寄存器TCON:用于用于启动和停止启动和停止定时器的计数,并控制定时器定时器的计数,并控制定时器的状态;的状态;n单片机复位时,两个寄存器的所有位都被清单片机复位时,两个寄存器的所有位都被清0。8051定时器定时器内部结构框图内部结构框图86.1 定时器的结构及工作原理定时器的结构及工作原理两种工作模式两种工作模式:(1)计数器计数器工作模式工作模式就是对外部事件进行计数。就是对外部事件进行计数。计数脉冲来自相应的外部输入计数脉冲来自相应的外部输入引脚引脚T0T0(P3.4)P3.4)

5、或或T1()T1()。当输入信号发生由。当输入信号发生由1 1至至0 0的的负跳变负跳变(下降沿下降沿)时,计时,计数器(数器(TH0TH0,TL0TL0或或TH1TH1,TL1TL1)的值增)的值增1 1。计数的最高频率一般为振。计数的最高频率一般为振荡频率的荡频率的1/241/24。Why?(2)定时器定时器工作模式工作模式也是通过计数实现的。也是通过计数实现的。计数脉冲来自内部时钟脉冲计数脉冲来自内部时钟脉冲,每个机器周期每个机器周期计数值增计数值增1 1,每个机器周期,每个机器周期=12=12个振荡周期,因此计数频率为振荡频个振荡周期,因此计数频率为振荡频率的率的1/121/12。所以

6、。所以定时时间定时时间=计数值计数值机器周期机器周期。4种工作方式种工作方式(方式方式0-方式方式3)。9n振荡周期:是振荡脉冲的周期,也成为“拍”,用P表示。就是晶体振荡器的周期,或外部振荡脉冲的周期。是MCS-51单片机的最小时序单位。P1P2S1振荡周期振荡周期时钟周期时钟周期机器周期机器周期机器周期机器周期指令周期指令周期XTAL2(OSC)S2S3S4S6S6S1S2S4S6S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2n时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号,用S表示。每个时钟周期分成P1、P2两个节拍,又被称为一个状态

7、。是MCS-51单片机的最基本的时序单位。n机器周期:通常将完成一个基本操作所需的时间称为机器周期,由6个状态(12拍)组成,所以一个机器周期可以依次表示为S1P1、S2P2S6P1、S5P2。通常算术逻辑操作发生在节拍P1期间,而内部寄存器到寄存器的传送发生在节拍P2期间。n指令周期:是指CPU执行一条指令所需要的时间。是MCS-51单片机的最大的时序单位,由若干个振荡周期组成。一个指令周期通常含有14个机器周期,MCS-51典型的指令周期为一个机器周期。振荡周期、振荡周期、时钟周期时钟周期、机器周期机器周期和和指令周期指令周期106.1 定时器的结构及工作原理定时器的结构及工作原理n在每个

8、机器周期的在每个机器周期的S5P2S5P2期间采样检测引脚输入电平期间采样检测引脚输入电平。n若前一个机器周期采样值为若前一个机器周期采样值为“1 1”,后一个机器周期采样值,后一个机器周期采样值为为“0 0”,则计数器加,则计数器加1 1。n新的计数值在检测到输入引脚电平发生新的计数值在检测到输入引脚电平发生“1 1”到到“0 0”的负的负跳变(下降沿)后,于下一个机器周期的跳变(下降沿)后,于下一个机器周期的S3P1S3P1期间装入计期间装入计数器中数器中。n由于由于CPUCPU需要两个机器周期来识别一个需要两个机器周期来识别一个“1 1”到到“0 0”的跳变的跳变信号,所以最高的计数频率

9、为振荡周期的信号,所以最高的计数频率为振荡周期的1/241/24。P1P2S1振荡周期振荡周期状态周期状态周期机器周期机器周期机器周期机器周期指令周期指令周期XTAL2(OSC)S2S3S4S6S6S1S2S4S6S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2116.1 定时器的结构及工作原理定时器的结构及工作原理n定时定时/计数器对输入信号的要求计数器对输入信号的要求n外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/24,例如例如选用选用12MHz频率的晶体,则可输入频率的晶体,则可输入600KHz的外部脉

10、冲。的外部脉冲。n输入信号的高、低电平至少要分别保持一个机器周期。输入信号的高、低电平至少要分别保持一个机器周期。如图所示,图中如图所示,图中Tcy为机器周期。为机器周期。12n可编程定时器的工作方式、启动、停止、溢出标可编程定时器的工作方式、启动、停止、溢出标志、计数器等都是志、计数器等都是可编程可编程的的通过设置寄存器通过设置寄存器TMOD,TCON,TH0,TL0,TH1和和TL1 实现。实现。n当设置了定时器的工作方式并启动定时器工作后,当设置了定时器的工作方式并启动定时器工作后,定时器就按被设定好的工作方式独立工作,定时器就按被设定好的工作方式独立工作,不再不再占用占用CPU,只有在

11、计数器计满溢出时才向,只有在计数器计满溢出时才向CPU申申请中断,占用请中断,占用CPU。n由此可见,定时器是单片机中工作效率高且应用由此可见,定时器是单片机中工作效率高且应用灵活的部件。灵活的部件。6.1 定时器的结构及工作原理定时器的结构及工作原理13第第6章章 定时器定时器/计数器及其应用计数器及其应用6.2 定时器的定时器的TMOD和和TCON寄存器寄存器146.2 定时器的定时器的TMOD和和TCON寄存器寄存器n8051单片机定时器主要有几个特殊功能寄存器组单片机定时器主要有几个特殊功能寄存器组成:成:TMOD,TCON,TH0,TL0,TH1,TL1。nTMOD:设置定时器的工作

12、方式;:设置定时器的工作方式;nTCON:控制定时器的启动和停止;:控制定时器的启动和停止;nTH0和和TL0:存放定时器:存放定时器T0的的初值或计数结果初值或计数结果;TH0存放高存放高8位,位,TL0 存放低存放低8位;位;nTH1和和TL1:存放定时器:存放定时器T1的的初值或计数结果初值或计数结果;TH1存放高存放高8位,位,TL1 存放低存放低8位;位;156.2.1 工作方式控制寄存器工作方式控制寄存器TMOD8位分为两组,高位分为两组,高4位控制位控制T1,低,低4位控制位控制T0。(1)GATE 门控位门控位 0:以以TRX(X=0,1)来启动定时器来启动定时器/计数器运行。

13、计数器运行。1:用外中断引脚用外中断引脚(INT0*或或INT1*)上的高电平和上的高电平和TRX来启来启动定时器动定时器/计数器运行。计数器运行。(2)M1、M0 工作方式选择位工作方式选择位 M1 M0 工工 作作 方方 式式 0 0 方式方式0,13位定时器位定时器/计数器。计数器。0 1方式方式1,16位定时器位定时器/计数器。计数器。1 0 方式方式2,8位常数自动重新装载位常数自动重新装载 1 1 方式方式3,仅适用于,仅适用于T0,T0分成两个分成两个8位计数器,位计数器,T1停止计数。停止计数。(3)C/T*计数器模式和定时器模式选择位计数器模式和定时器模式选择位0:定时器模式

14、。定时器模式。1:计数器模式。计数器模式。(4)TMOD无位地址,不能位寻址。无位地址,不能位寻址。(6)复位时,复位时,TMOD所有位均为所有位均为“0”。16低低4位与外部中断有关,后面介绍。高位与外部中断有关,后面介绍。高4位的功能如下位的功能如下:(1)TF1、TF0 计数溢出标志位计数溢出标志位 定时器定时器T0或或T1计数溢出时,由硬件计数溢出时,由硬件自动自动将此位将此位置置“1”;TFx可以由程序查询,也是定时中断的请求源;可以由程序查询,也是定时中断的请求源;(2)TR1、TR0 计数运行控制位计数运行控制位 TRx=1:启动定时器启动定时器/计数器工作计数器工作 TRx=0

15、:停止定时器停止定时器/计数器工作计数器工作 6.2.2 控制寄存器控制寄存器TCON1718第第6章章 定时器定时器/计数器及其应用计数器及其应用6.3 定时器的工作方式定时器的工作方式19nMCS-51的定时器的定时器T0有有4种工作方式:种工作方式:即:即:方式方式0,方式,方式1,方式,方式2,方式,方式3。nMCS-51的定时器的定时器T1有有3种工作方式:种工作方式:即:即:方式方式0,方式,方式1,方式,方式2。6.3 定时器的工作方式定时器的工作方式206.2.1 方式方式0 M1、M0设置为设置为00,为,为13位位计数器,以计数器,以T1为例,为例,其框图如下其框图如下:6

16、.3 定时器的工作方式定时器的工作方式方式方式0计数脉冲输入加1计数器216.3 定时器的工作方式定时器的工作方式方式方式0TH1 D12 D11 D10 D9 D8 D7 D6 D6TL1 D4 D3 D2 D1 D0n在这种方式下,在这种方式下,16位寄存器位寄存器TH1和和TL1只用只用13位,位,由由TH1的的8位和位和TL1的低的低6位组成。位组成。TL1的高的高3位不定。位不定。n当当TL1的低的低6位计数溢出时,向位计数溢出时,向TH1进位。而进位。而TH1计计数溢出时,则向中断标志位数溢出时,则向中断标志位TF1进位(即硬件将进位(即硬件将TF1置置1),并请求中断。),并请求

17、中断。n可通过查询可通过查询TF1是否置是否置“1”或考察中断是否发生来或考察中断是否发生来判定定时器判定定时器T1的操作完成与否。的操作完成与否。226 定时定时/计数器的初始化计数器的初始化初值计算初值计算:设计数器的最大值为设计数器的最大值为M,则置入的初值,则置入的初值X为:为:计数方式:计数方式:X=M-计数值计数值 定时方式:由定时方式:由(M-X)T=定时值定时值,得得X=M-定时值定时值/T T为计数周期,是单片机的机器周期。为计数周期,是单片机的机器周期。(模式(模式0:M为为213,模式,模式1:M为为216,模式,模式2和和3:M为为28)例如:机器周期为例如:机器周期为

18、1s 1s 时,时,若工作在模式若工作在模式0 0,则最大定时值为,则最大定时值为:2:21313 若工作在模式若工作在模式1,1,则最大定时值为则最大定时值为:2 216161s=61s=66 6.6 636ms36ms236.3 定时器的工作方式定时器的工作方式方式方式0n当当C/T=0时,为时,为定时定时工作模式,开关接到振荡器工作模式,开关接到振荡器的的12分频器输出上,计数器对机器周期脉冲计数。分频器输出上,计数器对机器周期脉冲计数。其定时时间为:其定时时间为:(213-初值初值)振荡周期振荡周期12例如:若晶振频率为例如:若晶振频率为12MHz,则最长的定时时间,则最长的定时时间为

19、为(213-0)n当当C/T=1时,为时,为计数计数工作模式,开关与外部引脚工作模式,开关与外部引脚T1()接通,计数器对来自外部引脚的输入脉冲计接通,计数器对来自外部引脚的输入脉冲计数。当外部信号发生负跳变时计数器加数。当外部信号发生负跳变时计数器加1。246.3 定时器的工作方式定时器的工作方式方式方式0nGATE控制定时器控制定时器Tx(T1或或T0)的条件的条件:(1)当当GATE=0时,时,“或门或门”输出恒为输出恒为1,“与门与门”的输的输出信号出信号K由由TRx决定决定(即此时即此时K=TRx),定时器不受,定时器不受INTx输入电平的影响,由输入电平的影响,由TRx直接控制定时

20、器的启动和停止。直接控制定时器的启动和停止。TRx=1;计数启动;计数启动;TRx=0;计数停止;计数停止;(2)当当GATE=1时,时,“与门与门”的输出信号的输出信号K由由INTx输入输入电平和电平和TRx位的状态一起决定位的状态一起决定(即此时即此时K=TRxINTx),当且仅当当且仅当TRx=1且且INTx=1(高电平高电平)时,时,计数启动计数启动;否则,计数停止否则,计数停止。返回返回256.3.2 方式方式1 M1、M0=01,为,为16位位的计数器,除位数外,其他与方式的计数器,除位数外,其他与方式0相同相同。n其定时时间为:其定时时间为:(216-初值初值)振荡周期振荡周期1

21、2例如:若晶振频率为例如:若晶振频率为12MHz,则最长的定时时间为,则最长的定时时间为(216-0)(1/12)12us=66.636ms6.3 定时器的工作方式定时器的工作方式方式方式1266.3.3 方式方式2 M1、M0=10,为,为自动恢复初值的自动恢复初值的8位位计数器,等效框图如计数器,等效框图如下下:TLx作为作为8位计数器,位计数器,THx作为重置初值的缓冲器。作为重置初值的缓冲器。6.3 定时器的工作方式定时器的工作方式方式方式2THx作为常数缓冲器作为常数缓冲器,当,当TLx计数溢出时,在置计数溢出时,在置“1”溢出标志溢出标志TFx的同时,还的同时,还自动的将自动的将T

22、Hx中的初值送至中的初值送至TLx,使,使TLx从初值开始重从初值开始重新计数。定时器新计数。定时器/计数器的方式计数器的方式2工作过程如图工作过程如图(x=0,1)。27n优点:优点:方式方式0 0和方式和方式1 1用于循环重复定时或计数用于循环重复定时或计数时,在时,在每次计数器挤满溢出后,计数器每次计数器挤满溢出后,计数器复复0 0。若要进行新一轮的计数,就得重。若要进行新一轮的计数,就得重新装入计数初值。这样一来不仅造成新装入计数初值。这样一来不仅造成编编程麻烦程麻烦,而且,而且影响定时精度影响定时精度。而方式。而方式2 2具有初值自动装入的功能,避免了这个具有初值自动装入的功能,避免

23、了这个缺点,缺点,可实现精确的定时可实现精确的定时。n缺点:缺点:只有只有8 8位计数器,定时时间短、计数范位计数器,定时时间短、计数范围小。围小。其定时时间为:其定时时间为:(28-初值初值)振荡周期振荡周期12若晶振频率为若晶振频率为12MHz,则最长的定时时间为,则最长的定时时间为(28-0)66ms6.3 定时器的工作方式定时器的工作方式方式方式2方式方式2工作过程图工作过程图(x=0,1)。286.3.4 方式方式3 只适用于定时器只适用于定时器/计数器计数器T0。T1不能工作在方式不能工作在方式3。如果将如果将T1置为方式置为方式3,则相当于,则相当于TR1=0,停止计数,停止计数

24、(此时此时T1可用来作串行口波特率产生器可用来作串行口波特率产生器)。1.工作方式工作方式3下的下的T0 T0在方式在方式3时被拆成两个时被拆成两个独立的独立的8位计数器:位计数器:TH0和和TL0。n8位计数器位计数器TL0使用使用T0的状态控制位的状态控制位C/T*、GATE、TR0、INT0,它既可以工作在,它既可以工作在定时方式定时方式,也可以工作在,也可以工作在计数方式计数方式。n8位定时器位定时器TH0被固定为一个被固定为一个8位定时器位定时器(不能作外部计数模不能作外部计数模式式),并使用定时器,并使用定时器T1的状态控制位的状态控制位TR1,同时占用定时器,同时占用定时器T1的

25、中断请求源的中断请求源TF1。此时,定时器。此时,定时器TH0的启动或停止只受的启动或停止只受TR1控制控制。TR1=1时,启动时,启动TH0的计数;的计数;TR1=0时,停止时,停止TH0的计数的计数6.3 定时器的工作方式定时器的工作方式方式方式3296.3 定时器的工作方式定时器的工作方式各引脚与各引脚与T0的逻辑关系如图所示的逻辑关系如图所示:302.T0工作在方式工作在方式3下下T1的各种工作方式的各种工作方式 注意:当注意:当T0处于方式处于方式3时,时,T1仍可设置为方式仍可设置为方式0、方式、方式1和方式和方式2。n当时由于当时由于TR1、TF1和和T1的中断源都已被定时器的中

26、断源都已被定时器T0(中的中的TH0)占占用,所以定时器用,所以定时器T1 仅有控制位仅有控制位C/T来决定其工作在定时方式或来决定其工作在定时方式或计数方式。计数方式。n当计数器计满溢出时,不能置位当计数器计满溢出时,不能置位“TF1”,而只能将输出送往串,而只能将输出送往串口。所以,此时定时器口。所以,此时定时器T1一般用作串口的波特率发生器,或不需一般用作串口的波特率发生器,或不需要中断的场合。要中断的场合。(1)T1工作在方式工作在方式06.3 定时器的工作方式定时器的工作方式31(2)T1工作在方式工作在方式1(3)T1工作在方式工作在方式26.3 定时器的工作方式定时器的工作方式3

27、2第第6章章 定时器定时器/计数器及其应用计数器及其应用6.4 定时器的编程和应用定时器的编程和应用336.4 定时器的编程和应用定时器的编程和应用n编程说明编程说明MCS-51单片机的定时器是可编程的,但在进行定时或计数之前要对程单片机的定时器是可编程的,但在进行定时或计数之前要对程序进行序进行初始化初始化,具体步骤如下:,具体步骤如下:(1)确定工作方式字:对)确定工作方式字:对TMOD寄存器正确赋值;寄存器正确赋值;(2)确定定时初值:计算初值,直接将初值写入寄存器的)确定定时初值:计算初值,直接将初值写入寄存器的TH0、TL0或或TH1、TL1;初值计算初值计算:设计数器的最大值为设计

28、数器的最大值为M,则置入的初值,则置入的初值X为:为:计数方式:计数方式:X=M-计数值计数值 定时方式:由定时方式:由(M-X)T=定时值定时值,得得X=M-定时值定时值/T T为计数周期,是单片机的机器周期。为计数周期,是单片机的机器周期。(模式(模式0 M为为213,模式,模式1 M为为216,模式,模式2和和3 M为为28)(3)根据需要,对)根据需要,对IE置初值,开放定时器中断;置初值,开放定时器中断;(4)启动定时)启动定时/计数器,对计数器,对TCON寄存器中的寄存器中的TR0或或TR1置位,置位以置位,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。后,计数器即按

29、规定的工作模式和初值进行计数或开始定时。346.4 定时器的编程和应用定时器的编程和应用例例6-1 要在上输出一个周期为要在上输出一个周期为2ms的方波,的方波,假设系统振荡频率采用假设系统振荡频率采用12MHz。利用利用T0方式方式0产生产生1ms的定时的定时方波的周期用方波的周期用T0来确定,让来确定,让T0每隔每隔1ms计数溢出计数溢出1次,次,CPU对取反。对取反。即要使每隔即要使每隔1ms1ms取反一次。取反一次。356.4 定时器的编程和应用定时器的编程和应用第一步:第一步:确定工作方式字确定工作方式字 方式方式0(13位位)最长可定时最长可定时;方式方式1(16位位)最长可定时最

30、长可定时 66.636ms;方式方式2(8位位)最长可定时最长可定时 266 s。nT0为方式为方式0,M1M0=00 n定时工作状态,定时工作状态,C/T=0nGATE=0,不受,不受INT0控制,控制,nT1不用全部取不用全部取“0”值。值。n故故TMOD=00H366.4 定时器的编程和应用定时器的编程和应用第二步:第二步:计算计算1ms定时的初值定时的初值X 设初值为设初值为X,则有,则有:(213-X)1210-6 1/12=110-3可求得:可求得:X=8192-1000=7192X化为化为16进制,进制,即即X=1C18H=1,1100,000 1,1000B。所以,所以,T0的

31、初值为的初值为:TH0=E0H TL0=18HTH0 1 1 1 0 0 0 0 0TL0 1 1 0 0 037第三步:第三步:程序设计程序设计 采用采用T0中断的方式来控制中断的方式来控制的输出,同时要重新装入初的输出,同时要重新装入初值。值。6.4 定时器的编程和应用定时器的编程和应用38 参考程序参考程序:ORG 0000HLJMPMAINORG000BHLJMPTIMERORG 0100HMAIN:SETBEASETB ET0MOV TMOD,#00H;设置T0为方式0MOVTL0,#18H;送计数初值 MOVTH0,#0E0H;送计数初值SETB TR0 ;启动T0SJMP$TIM

32、ER:MOV TL0,#18H ;T0重置初值 MOV TH0,#0E0H ;T0重置初值 ;的状态取反RETIEND39例例6-2 将将例例6-1中的输出方波周期改为中的输出方波周期改为1秒。秒。分析:分析:周期为周期为1s的方波要求的方波要求600ms的定时。的定时。(1)T0工作方式的确定工作方式的确定因定时时间较长,采用哪一种工作方式?因定时时间较长,采用哪一种工作方式?由各种工作方由各种工作方式的特性,可计算出式的特性,可计算出:方式方式0(13位位)最长可定时最长可定时;方式方式1(16位位)最长可定时最长可定时 66.636ms;方式方式2(8位位)最长可定时最长可定时 266

33、s。所以采用定时器定时加软件计数的方法来实现延长定时。所以采用定时器定时加软件计数的方法来实现延长定时。选方式选方式1,定时,定时60ms,软件计数,软件计数10次。次。60ms 10=600ms。所以,所以,TMOD=01H6.4 定时器的编程和应用定时器的编程和应用以上各方式以上各方式都不满足要求都不满足要求40 (2)计算计数初值计算计数初值因为因为:(216-X)1210-6 1/12=6010-3所以所以:X=16636=3CB0H因此因此:TH0=3CH,TL0=B0H (3)10次计数的实现次计数的实现设计一个软件计数器,初始值设为设计一个软件计数器,初始值设为10。每隔。每隔6

34、0ms定时时间到,产生定时时间到,产生定时中断,则软件计数定时中断,则软件计数器减器减1。这样减到。这样减到0时就获得了时就获得了600ms的定时。的定时。6.4 定时器的编程和应用定时器的编程和应用41(4)程序设计(参考程序)程序设计(参考程序)MAIN:SETBEASETB ET0MOV TMOD,#01H ;设T0工作在方式1MOV TL0,#0B0H ;给T0设初值MOV TH0,#3CHMOVR7,#10;软件计数器初值SETB TR0 ;启动T0SJMP$TIMER:DJNZ R7,EXIT;R7不等于0,则不对取反MOVR7,#10;重置软件计数器初值EXIT:MOV TL0,

35、#0B0H;T0中断子程序,重装初值MOV TH0,#3CH RETIEND 42n以上的定时程序中,程序都要以上的定时程序中,程序都要重置计时器初值重置计时器初值,这,这样从定时器溢出发出溢出标志,到重装完定时器初样从定时器溢出发出溢出标志,到重装完定时器初值,在开始计数,之间总会有一段值,在开始计数,之间总会有一段时间间隔时间间隔,使定,使定时时间增加了若干微秒,造成时时间增加了若干微秒,造成定时不够精确定时不够精确。n为了减小这种定时误差,单片机中设置了为了减小这种定时误差,单片机中设置了工作方式工作方式2(自动重装初值自动重装初值),则可避免上述因素,则可避免上述因素,省去程序省去程序

36、中重装初值的指令,中重装初值的指令,实现精确定时。实现精确定时。n但是工作方式但是工作方式2的的缺点缺点是是只有只有8位位计数器,定时时间计数器,定时时间受到很大限制。受到很大限制。6.4 定时器的编程和应用定时器的编程和应用43例例6-3 利用利用T0方式方式2产生产生250us的定时,在引脚上输出周期为的定时,在引脚上输出周期为500us的方波的方波(要求精确定时要求精确定时)。(设系统振荡为设系统振荡为12MHz)(1)工作方式选择工作方式选择实现精确定时,采用方式实现精确定时,采用方式2。对于对于12MHz晶振,方式晶振,方式2的最大计数时间为的最大计数时间为28=255us,所以可实

37、现所以可实现250us的精确定时。的精确定时。故,设置故,设置TMOD=02H。(2)计算初值计算初值设初值为设初值为X:则则(28-X)1210-61/12=25010-6 X=28-250=5=05H(3)程序设计程序设计采用采用T0中断来控制中断来控制的输出。的输出。6.4 定时器的编程和应用定时器的编程和应用44(4)参考程序参考程序MAIN:SETBEASETB ET0MOV TMOD,#02H;置T0方式2MOV TH0,#05H ;送计数初值MOV TL0,#05HSETB TR0;启动T0SJMP$TIMER:;输出取反RETI;重复循环END6.4 定时器的编程和应用定时器的

38、编程和应用45nGATE门可使定时器门可使定时器Tx(T0或或T1)的启动计数的启动计数受受INTx*的控制,的控制,可测量引脚可测量引脚INTx*或或P3.3)上正脉冲的宽度上正脉冲的宽度(机器周期数机器周期数)。n以以T1为例:为例:门控制位门控制位GATE的应用的应用测量脉冲宽度测量脉冲宽度回顾回顾当当GATE=1时,时,K=TRxINTxK46例例6-4 利用利用T1门控位门控位GATE测试测试INT1*(P3.3)引脚上出现的正脉冲引脚上出现的正脉冲的宽度。的宽度。分析:分析:n根据设计要求,将根据设计要求,将T1设定为定时工作模式、方式设定为定时工作模式、方式1、GATE=1;n当

39、当TR1=1时,一旦时,一旦INT1*(P3.3)引脚上出现高电平就开始计引脚上出现高电平就开始计数,直到出现低电平为止。数,直到出现低电平为止。n然后读取然后读取TH1、TL1中的计数值,分别送到寄存器中的计数值,分别送到寄存器A和和B中。中。n由于由于T1工作在定时方式,计数器计数的是机器周期的脉冲数;工作在定时方式,计数器计数的是机器周期的脉冲数;n将脉冲数转化成时间,就可得到正脉冲的宽度。将脉冲数转化成时间,就可得到正脉冲的宽度。门控制位门控制位GATE的应用的应用测量脉冲宽度测量脉冲宽度47ORG 0100HMAIN:MOV TMOD,#90H;T1为方式1定时控制字MOV TL1,

40、#00H;计数器初值为0MOV TH1,#00HLOOP:JB P3.3,LOOP;等待INT1*低SETB TR1;如INT1*为低,启动T1LOOP1:JNB P3.3,LOOP1;等待INT1*升高,开始计数LOOP2:JB P3.3,LOOP2;等待INT1*降低,停止计数CLR TR1;停止T1计数MOV A,TL1;T1计数值的低8位送AMOV B,TH1;T1计数值的高8位送B由于定时器最长为由于定时器最长为16位计数器,因此被测脉冲高电平的宽度不能超过位计数器,因此被测脉冲高电平的宽度不能超过66636个机器周期。个机器周期。参考程序参考程序:48例例6-6 当当T0(P3.4

41、)引脚上发生负跳变时,从引脚上输出引脚上发生负跳变时,从引脚上输出一个周期为一个周期为1ms的方波的方波,如图所示。如图所示。(系统振荡为系统振荡为6MHz)两个计数器同时使用两个计数器同时使用6.4 定时器的编程和应用定时器的编程和应用49(1)工作方式选择工作方式选择lT0为方式为方式1计数计数,初值,初值 0FFFFH,即外部计数输入端,即外部计数输入端T0(P3.4)发生一次负跳变时,发生一次负跳变时,T0加加1且溢出,溢出标志且溢出,溢出标志TF0置置“1”,发中断请求。在进入,发中断请求。在进入T0中断程序后,把中断程序后,把F0标志置标志置“1”,说明,说明T0引脚上已接收了负跳

42、变信号。引脚上已接收了负跳变信号。lT1定义为方式定义为方式2定时。定时。在在T0引脚产生一次负跳变后,启动引脚产生一次负跳变后,启动T1每每600 s产生一次中断,在中断服务程序中对求反,使产生产生一次中断,在中断服务程序中对求反,使产生周期周期1ms的方波。的方波。lTMOD=0010,0101=26H(2)计算计算T1初值初值设设T1的初值为的初值为X:则则(28-X)210-6=610-4 X=28-260=6=06H6.4 定时器的编程和应用定时器的编程和应用50ORG 100HMAIN:SETB EASETB ET0 SETB ET1MOV TMOD,#26H;初始化,T1为方式2

43、定时,T0为方 式1计数MOV TL0,#0FFH ;T0置初值 MOV TH0,#0FFHSETB TR0 ;启动T0MOV TL1,#06H ;T1置初值MOV TH1,#06HSJMP$TIMER0:CPLP1.0;取反SETB TR1;启动T1RETITIME1:CPLP1.0;取反RETIEND(3)程序设计程序设计51本本 章章 结结 束!束!526.4 定时器的编程和应用定时器的编程和应用nT0 方式方式3时,时,TL0和和TH0被分成两个独被分成两个独立的立的8位定时器位定时器/计数器。其中,计数器。其中,n TL0:8位定时器位定时器/计数器;计数器;n TH0:8位定时器位

44、定时器。n当当T1作串行口波特率发生器时,作串行口波特率发生器时,T0才才设置为方式设置为方式3。536.4 定时器的编程和应用定时器的编程和应用例例6-6 假设某假设某MCS-51应用系统的两个外中断源已被占用,应用系统的两个外中断源已被占用,设置设置T1工作在方式工作在方式2,作,作波特率发生器波特率发生器用。现要求增加用。现要求增加一个外部中断源,并控制引脚输出一个一个外部中断源,并控制引脚输出一个6kHz的方波。的方波。设系统振荡为设系统振荡为6MHz。54(1)选择工作方式选择工作方式TL0为方式为方式3计数计数,把,把T0引脚引脚(P3.4)作附加的外中断输入端,作附加的外中断输入

45、端,TL0初值设为初值设为0FFH,当检测到,当检测到T0引脚电平出现负跳变时,引脚电平出现负跳变时,TL0溢出,申请中断,这相当于跳沿触发的外部中断源。溢出,申请中断,这相当于跳沿触发的外部中断源。TH0为为8位方式位方式3定时定时,控制输出,控制输出6kHz的方波信号。如图所的方波信号。如图所示。示。6.4.3 方式方式3的应用的应用55(2)初值计算初值计算TL0的初值设为的初值设为0FFH。6kHz的方波的周期为的方波的周期为200 s,TH0的定时时间为的定时时间为100 s。TH0初值初值X计算如下计算如下:(28-X)210-6=110-4X=28-100=166=9CH(3)程

46、序设计程序设计ORG 0000HLJMP MAINORG 000BH;T0中断入口中断入口LJMP TL0INT;跳;跳T0中断服务程序中断服务程序ORG 001BH;在;在T1方式方式3时,时,TH0占用占用T1的中断的中断LJMP TH0INT;跳;跳TH0中断服务程序中断服务程序6.4.3 方式方式3的应用的应用56ORG 0100HMAIN:MOV TMOD,#27H;T0方式方式3计数,计数,T1方式方式2定时定时MOV TL0,#0FFH ;置;置TL0初值初值MOV TH0,#9CH;置;置TH0初值初值MOV TL1,#dataL;data为波特率常数为波特率常数MOV TH1

47、,#dataHMOV TCON,#66H;启动;启动T0、T1,设置外部中断为跳沿触,设置外部中断为跳沿触发发MOV IE,#9FH;开中断;开中断TL0INT:MOV TL0,#0FFH ;TL0中断服务程序,中断服务程序,TL0重新重新装入初值装入初值 中断处理中断处理 TH0INT:MOV TH0,#9CH;TH0中断服务程序,中断服务程序,TH0重新装入初重新装入初值值CPL P1.0 ;位取反输出;位取反输出RETI 6.4.3 方式方式3的应用的应用576 定时定时/计数器的初始化计数器的初始化MCS-51单片机的定时器单片机的定时器/计数器是可编程的,但在进行定计数器是可编程的,

48、但在进行定时或计数之前要对程序进行时或计数之前要对程序进行初始化初始化,具体步骤如下:,具体步骤如下:(1)对)对TMOD赋值,以赋值,以确定确定定时器的定时器的工作模式工作模式;(2)置置定时定时/计数器计数器初值初值,直接将初值写入寄存器的,直接将初值写入寄存器的TH0、TL0或或TH1、TL1;(3)根据需要,对)根据需要,对IE置初值,开放定时器中断;置初值,开放定时器中断;(4)对)对TCON寄存器中的寄存器中的TR0或或TR1置位置位,启动定时,启动定时/计数计数器,置位以后,计数器即按规定的工作模式和初值进行计器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时。数或开

49、始定时。581.实时时钟实现的基本思想实时时钟实现的基本思想 如何获得如何获得1秒的定时,秒的定时,可把定时时间定为可把定时时间定为100ms,采,采用中断方式进行溢出次数的累计,计满用中断方式进行溢出次数的累计,计满10次,即得到次,即得到秒计时。秒计时。片内片内RAM中规定中规定3个单元作为秒、分、时单元,具体个单元作为秒、分、时单元,具体安排如下安排如下:42H:“秒秒”单元单元;41H:“分分”单元;单元;40H:“时时”单元单元从秒到分,从分到时是通过软件累加并进行比较的方从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。法来实现的。6.4.6 实时时钟的设计实时时钟的设计

50、592.程序设计程序设计(1)主程序的设计主程序的设计流程如图所示。流程如图所示。6.4.6 实时时钟的设计实时时钟的设计 60(2)中断服务程序的设计中断服务程序的设计中断服务程序的主要中断服务程序的主要功能是实现秒、分、功能是实现秒、分、时的计时处理。参考时的计时处理。参考程序略。程序略。0f6.4.6 实时时钟的设计实时时钟的设计 61在读取运行中的定时器在读取运行中的定时器/计数器时,计数器时,需注意需注意:若恰好出若恰好出现现TLX溢出向溢出向THX进位的情况,则读得的进位的情况,则读得的(TLX)值就值就完全不对完全不对。同样,先读。同样,先读(THX)再读再读(TLX)也可能出错

51、。也可能出错。方法方法:先读先读(THX),后读,后读(TLX),再读,再读(THX)。若两。若两次读得次读得(THX)相同,则读的内容正确相同,则读的内容正确。若前后两次读。若前后两次读的的(THX)有变化,则再重复上述过程,这次重复读得有变化,则再重复上述过程,这次重复读得的内容就应是正确的。下面是有关的程序,读得的的内容就应是正确的。下面是有关的程序,读得的(TH0)和和(TL0)放置在放置在R1和和R0内。内。6.4.6 运行中读定时器运行中读定时器/计数器计数器62RDTIME:MOV A,TH0;读;读(TH0)MOV R0,TL0;读;读(TL0)CJNE A,TH0,RDTIM

52、E;比较;比较2次读得的次读得的(TH0);不相等则重复读;不相等则重复读MOV R1,A;(TH0)送入送入R1中中 RET 6.4.6 运行中读定时器运行中读定时器/计数器计数器636.1 定时器的结构及工作原理定时器的结构及工作原理n当控制信号当控制信号 定时器工作在定时器工作在定时方式定时方式;加;加1计数器对脉冲计数器对脉冲f进行计数,每来一个脉冲,计数器加进行计数,每来一个脉冲,计数器加1,直到计时器计满溢出;,直到计时器计满溢出;因为因为 ,即一个计数脉冲的周期就是一个机器周期;计数,即一个计数脉冲的周期就是一个机器周期;计数器计数的是机器周期脉冲个数。从而实现定时。器计数的是机

53、器周期脉冲个数。从而实现定时。n当控制信号当控制信号 定时器工作在定时器工作在计数方式计数方式;加;加1计数器对来自输计数器对来自输入引脚入引脚T0(P3.4)和和T1()的外信号脉冲进行计数,每来一个脉冲,的外信号脉冲进行计数,每来一个脉冲,计数器加计数器加1,直到计时器计满溢出;,直到计时器计满溢出;Tx THxTFxTLxTRxINTx定时定时计数计数0/1 2ff 0/12ff 控制信号控制信号K“1 1”启动,计数器运行;启动,计数器运行;“0 0”停止,计数器停止;停止,计数器停止;定时器定时器/计数器原理框图计数器原理框图加加1 1计数器计数器1C/T=K=T R x(I N T x+G A T E)64n控制信号控制信号K K可以控制计数器的可以控制计数器的“启动启动”和和“停止停止”,TCON(88H)NoImage

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!