版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用教程单片机原理及应用教程 (C语言版)语言版)第第6章章 MCS-51单片机定时器单片机定时器/计数器计数器主主 编:编:周国运周国运中国水利水电出版社中国水利水电出版社第第6章章 MCS-51单片机定时器单片机定时器/计数器计数器目目 录录6.1 单片机定时器单片机定时器/计数器计数器的结构及原理的结构及原理6.2 定时器定时器/计数器计数器T0、T16.3 定时器定时器/计数器计数器T26.4 定时器定时器/计数器应用举计数器应用举例例 定时器定时器/计数器应用极其广泛。计数器应用极其广泛。本章主要讨论本章主要讨论MCS-51单片机定时器单片机定时器/计计数器数器T0、T1
2、、T2的逻辑结构、工作原理、的逻辑结构、工作原理、使用方法和应用。使用方法和应用。本章为单片机的主要内容,也是学习第本章为单片机的主要内容,也是学习第七章串行口的基础。七章串行口的基础。第第6章章 MCS-51单片机的定时器单片机的定时器/计数器计数器6.1 单片机定时器单片机定时器/计数器计数器的结构及原理的结构及原理主要内容主要内容6.1.1 单片机定时器单片机定时器/计数器的结构计数器的结构6.1.2 单片机定时器单片机定时器/计数器的工作原理计数器的工作原理6.1.1 单片机定时器单片机定时器/计数器的结构计数器的结构 MCS-51单片机定时器单片机定时器/计数器的原理结构图计数器的原
3、理结构图 CPU中断中断溢溢出出溢溢出出溢溢出出定时器定时器0 0定时器定时器1 1定时器定时器2 2TMODT2CONT2MODTCONTH0TL0TH1TL1TH2TL2RCAP2LRCAP2H模模式式模模式式T2(P1.0)T1(P3.5)T2EX(P1.1)T0(P3.4)模模式式控控制制控控制制控控制制中断中断重装重装捕获捕获6.1.1 MCS-51单片机定时器单片机定时器/计数器的结构计数器的结构 MCS-51主要由如下构成主要由如下构成: 三个三个16位的可编程定时器位的可编程定时器/计数器:定时器计数器:定时器/计数计数器器0、1和和2。 每个定时器有两部分构成:每个定时器有两
4、部分构成:THx和和TLx 特殊功能寄存器特殊功能寄存器TMOD和和TCON ,主要对,主要对T0和和T1进行控制。进行控制。 特殊功能寄存器特殊功能寄存器T2MOD和和T2CON ,主要对,主要对T2进行控制,进行控制,RCAP2H、RCAP2L为为T2服务。服务。 引脚引脚P3.4、P3.5、P1.0,为计数脉冲输入。,为计数脉冲输入。 定时器定时器T0、T1和和T2有中断功能,计数器溢出或有中断功能,计数器溢出或被触发(被触发(T2),向),向CPU 发出中断请求。发出中断请求。6.1.2 单片机定时器单片机定时器/计数器的工作原理计数器的工作原理 定时器定时器/计数器计数器T0、T1、
5、T2 的内部结构简图如下的内部结构简图如下图所示。图所示。C/ /T=0中断请求中断请求振荡器振荡器TLx(8位位)THx(8位位)Tx n分频分频TFxC/ /T=1控制控制TRx做定时器做定时器做计数器做计数器6.1.2 MCS-51单片机定时器单片机定时器/计数器的工作原理计数器的工作原理 从上图可以看出:从上图可以看出: 定时器的实质是一个加定时器的实质是一个加1计数器计数器。C/T =0 ,为定时器,为定时器计数频率:计数频率:fosc/12计数信号由片内振荡电路提供,振荡脉冲计数信号由片内振荡电路提供,振荡脉冲n分分频送给计数器,每个机器周期计数器值增频送给计数器,每个机器周期计数
6、器值增1。 C/T =1 ,为计数器,为计数器计数信号由计数信号由Tx引脚引脚(P3.4、P3.5和和P1.0)输入,输入,每输入一有效信号,相应的计数器中的内容进行加每输入一有效信号,相应的计数器中的内容进行加1计数器的最高计数频率为:计数器的最高计数频率为:fosc/24 1)每每1个输入脉冲的下降沿使计数器计个输入脉冲的下降沿使计数器计1个数个数 2)每每1个机器周期对引脚采样个机器周期对引脚采样1次,当上次,当上1个机器个机器周期采样为高、本机器周期采样为低为周期采样为高、本机器周期采样为低为1个下降沿。个下降沿。 6.1.2 MCS-51单片机定时器单片机定时器/计数器的工作原理计数
7、器的工作原理 控制信号控制信号TRx=1时,定时器启动时,定时器启动。 当定时器由全当定时器由全1加到全加到全0时计满溢出,时计满溢出,TFx=1,向向CPU申请中断;同时,定时器从申请中断;同时,定时器从0开始继续开始继续计数。计数。6.2 定时器定时器/计数器计数器T0、T1主要内容主要内容6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器6.2.2 T0、T1的工作模式的工作模式6.2.3 T0、T1的使用方法的使用方法6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器1. T0、T1 模式寄存器模式寄存器TMOD 功能:确定定时器的工作模式。功能:确定定时器的工作模式。其格式为
8、:其格式为:TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0GATE外部门控制位。外部门控制位。GATE1,使用外部控制门,且,使用外部控制门,且TRx=1 当当P3.2(P3.3)为高时启动定时器,)为高时启动定时器, P3.2(P3.3)为)为T0、T1运行外部控制引脚。运行外部控制引脚。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器GATE0,禁止外部信号控制定时器禁止外部信号控制定时器/计数器。计数器。C/T定时或计数方式选择位定时或计数方式选择位 C/T0,为定时器;,为定时器;C/T1,为计数器,为计数器 计数采样:计数采样:C
9、PU在每机器周期的在每机器周期的S5P2期间,对期间,对计数脉冲输入引脚进行采样。计数脉冲输入引脚进行采样。若前一机器周期采样值为若前一机器周期采样值为1,下一机器周期采,下一机器周期采样值为样值为0,则计数器增,则计数器增1,即下降沿计数即下降沿计数。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器 M1、M0工作模式选择位。工作模式选择位。表表6-1 定时器定时器/计数器的工作模式计数器的工作模式M1 M0工作模式工作模式功功 能能00模式模式013位定时位定时/计数计数 01模式模式116位定时位定时/计数计数10模式模式28位初值自动重装定时位初值自动重装定时/计数计数11模式模
10、式3定时器定时器0:TL0可可8位定时或计数位定时或计数 TH0为为8位定时器。位定时器。定时器定时器1:无此方式:无此方式6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器2. T0、T1控制寄存器控制寄存器TCONTCON(88H)D7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1IT1IE0IT0TF1、TF0:T1、T0的溢出标志位的溢出标志位 计数溢出,计数溢出,TFx=1。 中断方式:中断方式:自动清零;自动清零; 查询方式:查询方式:软件清零。软件清零。6.2.1 T0、T1的特殊功能寄存器的特殊功能寄存器TR1、TR0:T1、T0启停控制位。启停控制位。
11、 置置1,启动定时器;,启动定时器; 清清0,关闭定时器。,关闭定时器。注意:注意: GATE=1 ,TRx与与P3.2(P3.3)的配合控制)的配合控制。IE1、IE0:外部中断外部中断1、0请求标志位请求标志位IT1、IT0:外部中断外部中断1、0触发方式选择位触发方式选择位6.2.2 T0、T1的工作模式的工作模式MCS-51的的T0、T1共有共有4种工作模式种工作模式,前前三种模式下两个定时器三种模式下两个定时器/计数器工作原理是相同计数器工作原理是相同的,的,只有模式只有模式3下两者才有差别。以下主要以下两者才有差别。以下主要以T0为例进行介绍,为例进行介绍,T1类似。类似。模式模式
12、0与模式与模式1 的区别仅仅是计数器的位数不同,的区别仅仅是计数器的位数不同,前者是前者是13位,后者是位,后者是16位,其它完全相同,现在一位,其它完全相同,现在一般都不使用模式般都不使用模式0,故不讲。,故不讲。 当设置当设置M1M001时,选择模式时,选择模式1,为,为16位定位定时器时器/计数器。计数器。模式模式1原理结构原理结构模式模式1原理结构由原理结构由4部分构成(下页图):部分构成(下页图):信号源信号源运行控制运行控制计数器计数器溢出标志溢出标志1模式模式16.2.2 T0、T1的工作模式的工作模式6.2.2 T0、T1的工作模式的工作模式图图6-6 T0模式模式1原理结构原
13、理结构振荡器振荡器12分频分频TL0(8位位)TH0TF0+T0(P3.4)TR0(P3.2)GATEC/T=0C/T=1中断中断(8位位)01 运行控制运行控制计数器计数器溢出中断溢出中断信号源信号源6.2.2 T0、T1的工作模式的工作模式信号源信号源C/T设为设为1,为计数器,为计数器,用用P3.4引脚脉冲引脚脉冲C/T设为设为0,为定时器,为定时器,用内部脉冲用内部脉冲运行控制运行控制GATE=1,由外部信号控制运行,由外部信号控制运行此时应该设置此时应该设置TR0=1P3.2引脚为高电平,引脚为高电平,T0运行运行GATE=0,由内部控制运行由内部控制运行TR0设置为设置为1,T0运
14、行运行6.2.2 T0、T1的工作模式的工作模式计数部件计数部件由由TL0、TH0组成,是一个组成,是一个16位的加法计数器,位的加法计数器,对送来的脉冲进行计数,计数溢出后输出由低变高,对送来的脉冲进行计数,计数溢出后输出由低变高,设置溢出标志。设置溢出标志。溢出标志:溢出标志:TF0。当计数部件溢出后对其置当计数部件溢出后对其置1,向,向CPU 请求中断。请求中断。模式模式1定时时间的计算公式如下:定时时间的计算公式如下:定时时间定时时间=计数值计数值机器周期机器周期 =(216 - 定时初值)定时初值)振荡周期振荡周期12最大定时时间(初值为最大定时时间(初值为0时)为:时)为: 216
15、 振荡周期振荡周期 12。2模式模式26.2.2 T0、T1的工作模式的工作模式M1 M0 10时,选择模式时,选择模式2,为,为8位定时器位定时器/计数器,且初值自动重装。计数器,且初值自动重装。模式模式2原理结构原理结构原理结构如下页图所示,由原理结构如下页图所示,由4部分构成:部分构成:信号源信号源运行控制运行控制计数器计数器溢出标志溢出标志在能够满足计数要求时,尽可能地选择模在能够满足计数要求时,尽可能地选择模式式2。图图6-7 T0(T1)模式)模式2原理结构原理结构8位初值自动重装位初值自动重装振荡器振荡器12分频分频T0 (P3.4)TR0TF0中中断断GATE+C/T=0C/T
16、=1TL0(8位位)TH0(8位位)P3.201 运行控制运行控制计数器计数器溢出标志溢出标志信号源信号源6.2.2 T0、T1的工作模式的工作模式M1 M0 11,选择模式,选择模式3。逻辑结构如图逻辑结构如图6-8和和6-9所示:所示: 结构结构: TL0、TH0分为两个独立的分为两个独立的8位计数器位计数器 TL0: 8位定时器位定时器/计数器计数器使用使用T0所有的资源和控制位所有的资源和控制位 TH0:8位定时器位定时器使用使用T1所有的资源所有的资源(中断向量、中断控制中断向量、中断控制ET1、PT1)和控制位和控制位(TR1、TF1)6.2.2 T0、T1的工作模式的工作模式3模
17、式模式3图图6-8 模式模式3下下T0的原理结构图的原理结构图振荡器振荡器12分频分频TR1振荡器振荡器T0(P3.4)TR0TF1GATE+C/T=0C/T=1TL0(8位)位)TH0P3.2中断中断中断中断TF012分频分频(8位)位)6.2.2 T0、T1的工作模式的工作模式T0模式模式3时时T1的工作模式的工作模式T1可以模式可以模式0模式模式2工作。工作。T1的结构如图的结构如图6-9所示所示由于由于TF1及中断矢量被及中断矢量被TH0占用,所以占用,所以T1仅用作仅用作波特率发生器或其它不用中断的地方。波特率发生器或其它不用中断的地方。T1作波特率发生器,其计数溢出直接送至串作波特
18、率发生器,其计数溢出直接送至串行口。行口。设置好工作方式,串行口波特率发生器开始设置好工作方式,串行口波特率发生器开始自动运行。自动运行。 TMOD中中T1的的M1M0=11,T1停止工作,因为停止工作,因为T1没有模式没有模式3。6.2.2 T0、T1的工作模式的工作模式图图6-9 T0模式模式3时时T1的原理结构的原理结构串行口串行口重新装入重新装入C/T=0C/T=1C/T=1C/T=0T1(P3.5)T1(P3.5)(a)T1模式模式1振荡器振荡器12分频分频振荡器振荡器12分频分频串行口串行口TH1(8位位)TL1(8位位)TL1(8位位)TH1(8位位)(b)T1模式模式26.2.
19、2 T0、T1的工作模式的工作模式6.2.3 T0、T1的使用方法的使用方法T0、T1各有两种功能(定时各有两种功能(定时/计数)、计数)、4种或种或3种工作模式,如何选择其功能和工作模式,是使用种工作模式,如何选择其功能和工作模式,是使用T0、T1编写程序需要首先解决的问题。编写程序需要首先解决的问题。1.选择定时和计数概念选择定时和计数概念如果需要对单片机外部输入的脉冲进行计量,如果需要对单片机外部输入的脉冲进行计量,则选择计数功能则选择计数功能(如统计产品数量、轮子转到周数(如统计产品数量、轮子转到周数(每周产生的脉冲数目一定)、液滴的数目等)(每周产生的脉冲数目一定)、液滴的数目等);
20、否则选择定时功能否则选择定时功能(如定时启动(如定时启动/停止机器运转、停止机器运转、定时打开定时打开/关闭阀门、产生方波、产生某种频率的声关闭阀门、产生方波、产生某种频率的声音等)。音等)。6.2.3 T0、T1的使用方法的使用方法2.选择工作模式选择工作模式(1)计算计数值)计算计数值N1)计数情况)计数情况需要计的数需要计的数N往往是给定的,如计往往是给定的,如计100个数、个数、200个数等。个数等。2)定时情况)定时情况在这种情况下往往给出的是定时的时间在这种情况下往往给出的是定时的时间t根据定时器每个机器周期计根据定时器每个机器周期计1个数的规律,则计个数的规律,则计数值数值N与定
21、时时间与定时时间t、机器周期、机器周期TMC、晶振频率、晶振频率fosc的的关系如下:关系如下:t = N TMC 、 TMC = 12/fosc N = t / TMC = t fosc /12 (公式(公式6-1)6.2.3 T0、T1的使用方法的使用方法(2)确定工作模式)确定工作模式如果如果N256,则选择模式,则选择模式1;否则选择模式;否则选择模式2,或者选择模式或者选择模式3。首选模式首选模式2。3计数初值计数初值X的计算的计算计数初值计数初值X = 最大计数值最大计数值 - - 计数值计数值N (公式公式6-2)计数初值和工作模式有关,即与计数位数有关计数初值和工作模式有关,即
22、与计数位数有关:模式模式1:16位计数,位计数,N=65536,(216)模式模式2:8位计数,位计数,N=256,(28)模式模式3:8位计数,位计数,N=256,(28)6.2.3 T0、T1的使用方法的使用方法 4什么情况下选择模式什么情况下选择模式3模式模式3是在系统既需要波特率发生器,又需要多是在系统既需要波特率发生器,又需要多个定时器个定时器/计数器,而且计数值都比较小(计数器,而且计数值都比较小(N256)的情况下使用。的情况下使用。这时定时器这时定时器/计数器计数器T1作为波特率发生器,定时作为波特率发生器,定时器器/计数器计数器T0分为两个分为两个8位定时器,或者分成的两个位
23、定时器,或者分成的两个其中一个作其中一个作8位定时器、另一个位定时器、另一个8位计数器使用。位计数器使用。6.2.3 T0、T1的使用方法的使用方法5使用使用T0、T1编程的方法步骤编程的方法步骤 计算计数值计算计数值N。 确定工作模式。确定工作模式。 计算定时或计数的初值计算定时或计数的初值X。 编写初始化程序:编写初始化程序:设置设置TMOD,设置,设置TLx和和THx,(需要时开,(需要时开T0、T1中断和总中断),设置中断和总中断),设置TRx启动运行。启动运行。 编写编写T0、T1的应用程序。的应用程序。前前3项为编写初始化程序的准备,称之为初始化项为编写初始化程序的准备,称之为初始
24、化准备。准备。6.2.3 T0、T1的使用方法的使用方法6在运行中读取在运行中读取TLx、THx的方法的方法在在T0、T1运行情况下,运行情况下,TLx和和THx中的值在中的值在变化,读的期间有可能进位,读出的数据不正确变化,读的期间有可能进位,读出的数据不正确。正确的读取方法如下:正确的读取方法如下:doxh=THx;xl=TLx;while(xh!=THx);程序中的程序中的xl、xh为已经定义过的无符号字符为已经定义过的无符号字符型变量。型变量。6.2.3 T0、T1的使用方法的使用方法 例例6-1 对对89C52单片机编程,使用定时器单片机编程,使用定时器/ /计计数器数器T0以模式以
25、模式1定时,以定时,以中断方式实现从中断方式实现从P1.0引引脚产生周期为脚产生周期为1000s的方波。设单片机的振荡频的方波。设单片机的振荡频率为率为12MHz。分析与计算分析与计算(1)方波产生原理)方波产生原理 将将T0设为定时器,设为定时器,计算出合适的初值,定计算出合适的初值,定时到了之后对时到了之后对P1.0引脚取反即可。引脚取反即可。(2)选择工作模式)选择工作模式计算计数值计算计数值NP1.06.2.3 T0、T1的使用方法的使用方法 定时时间定时时间t:周期为周期为1000s的方波要求的方波要求t =周期周期/2 = 1000/2 = 500(s)对应计数值:对应计数值:N
26、= t/机器周期机器周期 = 500/1 = 500N=500256,所以选择模式,所以选择模式1。 模式字:模式字:TMOD=0000 0001B = 0 x01(3)计算初值)计算初值X X = 65536 N = 65036 = 0 xfe0c方波周期方波周期T定时时间定时时间t6.2.3 T0、T1的使用方法的使用方法C语言程序:语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbitP1_0=P10; /定义位变量定义位变量void main( ) TMOD=0 x01; /T0用模式用模式1、定时、定时TL0=0 x0c;TH0=0 xfe;/设置定时器的初值
27、设置定时器的初值ET0=1; /允许允许T0中断中断 EA=1; /允许允许CPU中断中断TR0=1; /启动定时器启动定时器while(1); /等待中断等待中断 6.2.3 T0、T1的使用方法的使用方法void time0_int(void) interrupt 1/中断服务程序中断服务程序TL0=0 x0c;TH0=0 xfe;/定时器重赋初值定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波取反,输出方波汇编语言程序汇编语言程序:ORG0000HSJMPMAINORG000BH;T0中断入口地址中断入口地址LJMPINT_T06.2.3 T0、T1的使用方法的使用方法MAIN
28、: ;主程序主程序MOV SP,#0DFH;设置堆栈指针;设置堆栈指针MOV TMOD,#01H;T0模式模式1定时定时MOVTL0, #0CH;设置定时初值;设置定时初值MOVTH0, #0FEH SETBET0;T0开中断开中断SETBEA;CPU开中断开中断SETBTR0;启动;启动T0SJMP$;等待;等待T0中断中断INT_T0: ;中断服务程序中断服务程序MOV TL0, #0CHMOVTH0, #0FEH;重装定时初值;重装定时初值CPLP1.0 ;P1.0取反取反RETI ;中断返回;中断返回END6.2.3 T0、T1的使用方法的使用方法例例6-2 设单片机的振荡频率为设单片
29、机的振荡频率为12MHz,用,用T1编编程实现从程实现从P1.0输出频率为输出频率为2KHz的方波。的方波。1、分析与计算、分析与计算(1)选择工作模式)选择工作模式要求输出方波频率为要求输出方波频率为2KHz,则周期为,则周期为500s,只需对只需对P1.0每每250s取反一次即可,即定时时间取反一次即可,即定时时间t为为250s。需要计算计数值需要计算计数值N计算计数值计算计数值N:N= t/ TMC = t fosc/12 =25012M/12=250N=250256,所以选择模式所以选择模式2。6.2.3 T0、T1的使用方法的使用方法模式字:模式字:TMOD=0010 0000 B
30、= 0 x20(2)初值)初值X计算计算 X=256N X=6则则TH1=TL1=6 2、采用中断处理方式的程序、采用中断处理方式的程序方波周期方波周期T定时时间定时时间t6.2.3 T0、T1的使用方法的使用方法(1)中断方式)中断方式C语言程序语言程序# include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_0=P10;voidmain( )TMOD=0 x20; /设置工作模式设置工作模式TL1=0 x06;TH1=0 x06; /为定时器赋初值为定时器赋初值ET1=1; /允许定时允许定时1中断中断EA=1;TR1=1;/启动定时器启动定时器1while(1);/等
31、待中断等待中断void time0_int(void) interrupt 3 P1_0=P1_0;6.2.3 T0、T1的使用方法的使用方法(2)中断方式汇编语言程序)中断方式汇编语言程序ORG0000HLJMPMAIN ORG001BH;中断处理程序;中断处理程序CPLP1.0RETIORG 0030H;主程序;主程序MAIN:MOV SP,#0DFHMOV TMOD,#20H MOV TL1,#06HMOV TH1,#06HSETB ET1;允许定时器;允许定时器1中断中断SETB EA;允许;允许CPU中断中断SETB TR1;启动定时器;启动定时器1SJMP $;等待中断;等待中断E
32、ND6.2.3 T0、T1的使用方法的使用方法3、采用查询方式程序、采用查询方式程序(1)查询方式)查询方式C语言程序语言程序# include sbitP1_0=P10;void main()TMOD=0 x02;TL0=0 x06;TH0=0 x06; TR0=1;while (1)while(!TF0) ;/查询计数溢出查询计数溢出TF0=0;P1_0=P1_0; 6.2.3 T0、T1的使用方法的使用方法(2)查询方式汇编语言程序)查询方式汇编语言程序MAIN:;主程序;主程序MOV TMOD,#02HMOVTL0,#06HMOVTH0,#06HSETBTR0LOOP:JNBTF0,$
33、;查询计数溢出;查询计数溢出CLRTF0CPLP1.0 SJMPLOOPEND6.3 定时器定时器/计数器计数器T2主要内容主要内容6.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.2 T2的工作方式的工作方式定时器定时器/计数器计数器T2的功能结构图的功能结构图 CPU中断中断溢溢出出T2CONT2MODTH2TL2RCAP2LRCAP2HT2(P1.0)T2EX(P1.1)模模式式控控制制重装重装捕获捕获定时器定时器T2概述概述1、 T2的功能:的功能:89C52中的中的T2是一个是一个16位的、位的、具有自动重装载和捕获功能的定时器具有自动重装载和捕获功能的定时器/计数器。计数器。
34、2、T2的结构:的结构:除除TL2、TH2和控制寄存器和控制寄存器T2CON及及T2MOD之外,还增加了捕获寄存器之外,还增加了捕获寄存器RCAP2L(低字节)和(低字节)和RCAP2H(高字节)。(高字节)。 3、T2的时钟源:的时钟源:有两个。有两个。一个是内部机器周一个是内部机器周期,另一个是由期,另一个是由T2端输入的外部计数脉冲端输入的外部计数脉冲。4、T2的工作方式:的工作方式:有有4种。自动重装、捕获、种。自动重装、捕获、波特率发生器、可编程时钟输出。波特率发生器、可编程时钟输出。 5、 T2的专用引脚:的专用引脚:增加了两个引脚,增加了两个引脚,T2(P1.0)、T2EX(P1
35、.1),分别称为时钟,分别称为时钟I/O和外部触发引脚。和外部触发引脚。 6.3.1 T2的特殊功能寄存器的特殊功能寄存器TF2:T2溢出中断标志位溢出中断标志位 T2溢出时置位,申请中断。软件清零。溢出时置位,申请中断。软件清零。波特率发生器方式波特率发生器方式下下(RCLK1或或TCLK1),T2溢出不对溢出不对TF2进行置位进行置位。T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2 RCLK TCLK EXEN2 TR2C/T2 CP/RL21. T2控制寄存器控制寄存器T2CON 可位寻址和字节寻址可位寻址和字节寻址 功能:选择功能:选择T2的工作方式和工作模式。的
36、工作方式和工作模式。格式如下格式如下EXF2:T2外部触发中断标志位外部触发中断标志位 当当EXEN21,且,且T2EX引脚上引脚上有负跳变有负跳变 触发捕获或重装操作时,触发捕获或重装操作时,EXF2置置1,向,向CPU发出中发出中断请求断请求。 需软件清需软件清0。RCLK:串行口接收时钟允许位:串行口接收时钟允许位RCLK=1时时,T2溢出信号分频后做串行口工溢出信号分频后做串行口工作在模式作在模式1和和3的接收时钟。的接收时钟。RCLK=0时时,T1溢出信号分频信后做串行口溢出信号分频信后做串行口接收时钟。接收时钟。T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2
37、RCLK TCLK EXEN2 TR2C/T2 CP/RL26.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.1 T2的特殊功能寄存器的特殊功能寄存器TCLK:串行口发送时钟允许位:串行口发送时钟允许位TCLK=1时时,T2溢出信号分频后做串行口工作溢出信号分频后做串行口工作在模式在模式1和和3的发送时钟。的发送时钟。TCLK=0时时,T1溢出信号分频后做串行口的发溢出信号分频后做串行口的发送时钟。送时钟。EXEN2:T2外部触发允许位外部触发允许位EXEN2=1,T2未做串口时钟时,未做串口时钟时,T2EX引脚引脚(P1.1)的负跳变将触发)的负跳变将触发“捕获捕获”或或“重装重装”。
38、 EXEN2=0,T2EX引脚上的负跳变对引脚上的负跳变对T2不起作不起作用。用。TR2 :T2运行控制位运行控制位TR2=1,启动,启动T2;TR2=0,T2停止。停止。C/T2:T2的定时或计数方式选择位的定时或计数方式选择位 C/T2=1,T2为计数器。为计数器。从从T2(P1.0)引脚输)引脚输入计数脉冲行(下降沿计数)。入计数脉冲行(下降沿计数)。 C/T2=0,T2为定时器为定时器。用机器周期计数。用机器周期计数T2CON(C8H)D7D6D5D4D3D2D1D0TF2 EXF2 RCLK TCLK EXEN2 TR2C/T2 CP/RL26.3.1 T2的特殊功能寄存器的特殊功能
39、寄存器CP/RL2:捕获和重装载方式选择位:捕获和重装载方式选择位 CP/RL2=1,且且EXEN2=1,T2EX(P1.1)的负的负跳变将触发捕获操作。跳变将触发捕获操作。 CP/RL2=0,且,且EXEN2=1,T2EX的负跳变或的负跳变或T2计满溢出时,计满溢出时,触发自动重装操作触发自动重装操作。RCLK=1或或TCLK=1时,时,T2做串口的时钟发生做串口的时钟发生器器,这时,这时CP/RL2的设置不起作用,并且的设置不起作用,并且T2溢出时会溢出时会自动装载。自动装载。6.3.1 T2的特殊功能寄存器的特殊功能寄存器T2OE:T2输出允许位输出允许位T2OE1,可编程时钟输出方式,
40、输出方波可编程时钟输出方式,输出方波信号至信号至T2(P1.0)引脚。引脚。DCEN:T2增增/减计数控制位减计数控制位DCEN l,T2递减计数递减计数DCEN0,T2递增计数递增计数T2MOD(C9H)D7 D6 D5 D4 D3 D2D1D0 T2OE DCEN 2. T2模式寄存器模式寄存器T2MOD6.3.1 T2的特殊功能寄存器的特殊功能寄存器3. 计数寄存器计数寄存器TL2、TH24. 捕获寄存器捕获寄存器RCAP2L、RCAP2H有两个作用:有两个作用:(1)捕获计数器中的值。)捕获计数器中的值。在捕获方式,在捕获方式,P1.1引脚引脚触发时,将触发时,将TL2、TH2中的数装
41、入中的数装入RCAP2L、RCAP2H中;中;(2)作为初值装入计数器。)作为初值装入计数器。在重装计数方式,计在重装计数方式,计数溢出后,将数溢出后,将RCAP2L、RCAP2H中的数装入中的数装入TL2、TH2中中6.3.1 T2的特殊功能寄存器的特殊功能寄存器6.3.2 T2的工作方式的工作方式 定时器定时器T2是一个是一个16位的定时器位的定时器/计数器,具有四计数器,具有四种工作方式:种工作方式:16位自动重装方式位自动重装方式捕获方式捕获方式波特率发生器方式波特率发生器方式可编程时钟输出方式可编程时钟输出方式表表6-2 定时器定时器T2的四种工作方式的四种工作方式RCLKTCLKC
42、/ / T2CP/ /RL2 T2OE工作方式工作方式000或或100自动重装:自动重装:16位定时或计数位定时或计数000或或110捕获:捕获:定时或计数捕获定时或计数捕获0/10/1001时钟输出时钟输出(T2EX可作外中断可作外中断)若若RCLK+TCLK=1,则同时又作波特率发生器则同时又作波特率发生器至少至少1个为个为1000波特率发生器波特率发生器(T2EX可作外中断)可作外中断)6.3.2 T2的工作方式的工作方式一、自动重装方式一、自动重装方式(定时或计数)(定时或计数)1、递增定时、计数、递增定时、计数CP/RL20,DCEN=0时,自动重装方式。有时,自动重装方式。有两种情
43、况引起重装,结构如下页图所示。两种情况引起重装,结构如下页图所示。(1)计数溢出重装)计数溢出重装 TF2置置1,产生溢出中断请求;,产生溢出中断请求; 将将RCAP2L和和RCAP2H的数装入的数装入TL2和和TH2中。中。(2)外部触发重装)外部触发重装当当EXEN21,并且,并且T2EX(P1.1)有负跳变时)有负跳变时 EXF2置置1,外部触发中断请求;,外部触发中断请求; 将将RCAP2L和和RCAP2H的数装入的数装入TL2和和TH2中中RCAPLRCAPHTF2TL 2TH 2EXF2EXEN2T2(P1.0)T2EX(P1.1)溢出溢出T2中断请求中断请求TR2振荡器振荡器12
44、C/T2=0C/T2= 1+ + + 图图6-12 重装方式原理图重装方式原理图6.3.2 T2的工作方式的工作方式2、外部控制递减、递增定时或计数、外部控制递减、递增定时或计数CP/RL20,DCEN=1,T2由外部引脚由外部引脚T2EX(P1.1) 控制递减、递增定时或计数。控制递减、递增定时或计数。(1)外部控制递增定时、计数)外部控制递增定时、计数条件:条件:T2EX(P1.1)引脚为高电平)引脚为高电平计满溢出时:计满溢出时:TF2置置1,请求中断;,请求中断;将将RCAP2L和和RCAP2H中的数装入中的数装入TL2和和TH2中。中。决定于决定于C/T26.3.2 T2的工作方式的
45、工作方式递增、递减计数重装控制递增、递减计数重装控制递减计数重装值递减计数重装值递增计数重装值递增计数重装值控制递增、递减计数重装控制递增、递减计数重装高:递增计数重装高:递增计数重装RCAP2LRCAP2HTF2TL2TH2EXF2T2TR2振荡器振荡器12C/T2=0C/T2=10FFH0FFH中断请求中断请求TEX2(P1.1)(P1.0)6.3.2 T2的工作方式的工作方式(2)外部控制递减定时、计数)外部控制递减定时、计数条件:条件: T2EX(P1.1)引脚为低电平)引脚为低电平计数溢出时:计数溢出时:TF2置置1,请求中断;,请求中断;将将0 xffff装入装入TL2和和TH2中
46、。中。递减计数的溢出:递减计数的溢出: TL2和和TH2与与RCAP2L和和RCAP2H的值相等的值相等6.3.2 T2的工作方式的工作方式二、捕获方式二、捕获方式 (可定时、计数)(可定时、计数)当当CP/RL2l,选择捕获方式。,选择捕获方式。有以下两种情况。有以下两种情况。T2捕获方式结构如下页图所示。捕获方式结构如下页图所示。1、捕获定时、计数、捕获定时、计数(1)条件与触发捕获)条件与触发捕获条件:条件:EXEN=1;触发捕获:触发捕获:T2EX(P1.1)端的信号有负跳变时)端的信号有负跳变时(2)捕获)捕获将将TL2和和TH2的内容装入的内容装入RCAP2L和和RCAP2H中中
47、(3)EXF2置置1,产生触发中断请求,产生触发中断请求6.3.2 T2的工作方式的工作方式2、一般定时、计数、一般定时、计数(非捕获时不会自动重装非捕获时不会自动重装)设置设置EXEN=0计数溢出计数溢出TF2置置1,产生溢出中断请求,产生溢出中断请求RCAP2L RCAP2HTF2TL2TH2EXF2EXEN2T2T2EX溢出溢出中断请求中断请求TR2振荡器振荡器12C/T2=0C/T2=1+1P1.1P1.06.3.2 T2的工作方式的工作方式三、波特率发生器方式三、波特率发生器方式 RCLK=1或或TCLK 1时,选择波特率发生器方时,选择波特率发生器方式式。结构如下页图所示。具有两个
48、功能。结构如下页图所示。具有两个功能。1、功能一、功能一为串行口提供时钟为串行口提供时钟波特率波特率=fosc(32(65536 - (RCAP2H,RCAP2L)特点特点: 1)计数满后自动将)计数满后自动将RCAP2L、RCAP2H中中的值装入的值装入TL2、TH2中;中; 2)不产生溢出中断。)不产生溢出中断。6.3.2 T2的工作方式的工作方式波特率波特率=fosc(32(65536 - (RCAP2H,RCAP2L) T2EX可以做外部中断源可以做外部中断源串口时钟方式原理图串口时钟方式原理图RCAP2HTL2TH2T2溢出溢出TR 22C/T2=1C/T2=0串口时钟串口时钟振荡器
49、振荡器RCAP2LEXEN2T2EX外部信号外部信号EXF2中断申请中断申请16=波特率波特率6.3.2 T2的工作方式的工作方式2、功能二、功能二外部中断源外部中断源条件:条件: EXEN2=1;中断请求输入引脚:中断请求输入引脚:P1.1触发方式:触发方式:下降沿下降沿中断请求标志:中断请求标志:EXF2, P1.1出现下降沿,出现下降沿, EXF2置置1。6.3.2 T2的工作方式的工作方式定时器定时器/计数器计数器T2作为波特率发生器使用时作为波特率发生器使用时的编程方法:的编程方法:RCAP2H=0 x30;/设置波特率设置波特率RCAP2L=0 x38;TCLK=1;/选择定时器选
50、择定时器2的溢出脉冲的溢出脉冲/作为串口发送波特率发生器作为串口发送波特率发生器 注意:在波特率发生器工作方式下,在注意:在波特率发生器工作方式下,在 T2计计数过程中不能再读数过程中不能再读/写写 TH2和和TL2的内容。的内容。6.3.2 T2的工作方式的工作方式四、可编程时钟输出方式四、可编程时钟输出方式 当当T2OE=1,且,且C/T2=0时,时,T2工作于工作于时钟输出方时钟输出方式式。结构如下页图所示。具有两个功能。结构如下页图所示。具有两个功能。1、功能一、功能一时钟输出时钟输出1)输出引脚:)输出引脚:P1.02)输出方波频率:)输出方波频率:f=fosc(4(65536 -
51、(RCAP2H,RCAP2L)(RCAP2H,RCAP2L)= 65536 -foscf43)特点:)特点:自动重装初值自动重装初值 计数满后,将计数满后,将RCAP2L和和RCAP2H的值自动装入的值自动装入TL2和和TH2;不产生溢出中断。不产生溢出中断。6.3.2 T2的工作方式的工作方式四、可编程时钟输出方式四、可编程时钟输出方式 当当T2OE=1,且,且C/T2=0时,时,T2工作于工作于时钟输出方时钟输出方式式。结构如下页图所示。具有两个功能。结构如下页图所示。具有两个功能。2、功能二、功能二外部中断源外部中断源条件:条件: EXEN2=1;中断请求输入引脚:中断请求输入引脚:P1
52、.1触发方式:触发方式:下降沿下降沿中断请求标志:中断请求标志:EXF2, P1.1出现下降沿,出现下降沿, EXF2置置1。6.3.2 T2的工作方式的工作方式图图6-15 T2时钟输出方式下的原理图时钟输出方式下的原理图EXF2EXEN2T2中断中断T2EXP1.16.3.2 T2的工作方式的工作方式例例6-3 对单片机编程,使用对单片机编程,使用T2时钟输出方式,时钟输出方式,从从P1.0输出周期为输出周期为1ms的方波。设单片机的振荡频的方波。设单片机的振荡频率为率为12MHz。(1)分析与计算)分析与计算T2的时钟输出方式可直接输出方波。的时钟输出方式可直接输出方波。输出方波周期为输
53、出方波周期为1ms,则频率,则频率fout为为1KHz。根据公式根据公式6-6可知,计数初值可知,计数初值x=65536-fosc/ (4fout) =62536。6.3.2 T2的工作方式的工作方式(2)C语言程序清单语言程序清单# include void main()C_T2=0;/设置设置T2作定时器使用作定时器使用CP_RL2=0;/设置设置T2初值自动重装初值自动重装T2MOD=0 x02;/设置设置T2输出时钟输出时钟TL2=62536%256; /为为T2赋初值赋初值TH2=62536/256; RCAP2L=62536%256; /重装寄存器赋初值重装寄存器赋初值RCAP2H
54、=62536/256; TR2=1;/启动启动T2while(1);/CPU保持运行状态保持运行状态T2在工作在工作6.3.2 T2的工作方式的工作方式(3)汇编语言程序清单)汇编语言程序清单T2MOD EQU 0C9H;定义定义T2模式寄存器模式寄存器TL2 EQU 0CCH;定义定义T2计数低计数低8位寄存器位寄存器TH2 EQU 0CDHRCAP2L EQU 0CAH;定义重装低定义重装低8位寄存器位寄存器RCAP2H EQU 0CBHCP_RL2 BIT 0C8H;定义定义T2捕获捕获/重装控制位重装控制位C_T2 BIT 0C9H;定义定义T2计数计数/定时控制位定时控制位TR2 B
55、IT 0CAH;定义定义T2运行控制位运行控制位6.3.2 T2的工作方式的工作方式MAIN:CLR C_T2;设置设置T2作定时器作定时器CLR CP_RL2;设置设置T2初值自动重装初值自动重装MOV T2MOD,#02H;设置设置T2输出时钟输出时钟MOV TL2,#48H;为定时器赋初值为定时器赋初值MOV TH2,#0F4HMOV RCAP2L,#48H;重装寄存器赋初值重装寄存器赋初值MOV RCAP2H,#0F4HSETB TR2;启动启动T2SJMP $ ; CPU保持运行状态保持运行状态T2在工作在工作6.3.2 T2的工作方式的工作方式6.4 定时器定时器/ /计数器应用举
56、例计数器应用举例6.4 定时器应用举例定时器应用举例例例6-4 用用89C52单片机设计一程序,测量脉冲单片机设计一程序,测量脉冲信号的宽度。设单片机晶振频率为信号的宽度。设单片机晶振频率为12MHz。分析:分析:如图如图6-16所示,设置所示,设置GATE0位为位为1,在,在P3.2引脚为低电平时设置引脚为低电平时设置TR0=1,当,当GATE信号信号为高时自动启动计数,当为高时自动启动计数,当GATE信号变低时自动信号变低时自动结束计数,这时设置结束计数,这时设置TR0=0,读取计数值便可计,读取计数值便可计算出脉冲宽度,单位为算出脉冲宽度,单位为s,机器周期为,机器周期为1s。6.4 定
57、时器应用举例定时器应用举例C语言程序清单:语言程序清单:#include sbit P3_2=P32;unsigned int_test( )TMOD=0 x09;/T0以模式以模式1定时,用外部门定时,用外部门TL0=0;TH0=0;/设置初值为设置初值为0while(P3_2);/引脚为高等待变低引脚为高等待变低TR0=1;/开开T0内控开关由外部门控制内控开关由外部门控制while(!P3_2);/检测脉冲是否来到检测脉冲是否来到while(P3_2);/检测脉冲是否结束检测脉冲是否结束TR0= 0;/脉冲已结束,脉冲已结束,T0内控开关内控开关return (TH0*256+TL0);
58、/返回计数值返回计数值6.4 定时器应用举例定时器应用举例汇编语言程序清单:汇编语言程序清单:TEST:MOV TMOD,#09H;置置T0模式模式1定时用外部门定时用外部门MOV TL0,#00H;设置初值为设置初值为0MOV TH0,#00HJB P3.2,$ ;引脚为高等待测量下一个正脉冲引脚为高等待测量下一个正脉冲SETB TR0 ; 开开T0内控开关,由外部控制行内控开关,由外部控制行JNBP3.2,$;检测脉冲是否来到检测脉冲是否来到JBP3.2,$;检测脉冲是否结束检测脉冲是否结束CLR TR0;脉冲已结束,关内控开关脉冲已结束,关内控开关MOV R7,TL0;计数器计数器TL0
59、的值送的值送R7MOV R6,TH0;计数器计数器TH0的值送的值送R6RET6.4 定时器应用举例定时器应用举例例例6-5 设某单片机系统使用定时器较多,设某单片机系统使用定时器较多,T1作串行口的波特率发生器,作串行口的波特率发生器,T2作时钟信号作时钟信号输出产生多种较复杂的报警声;输出产生多种较复杂的报警声;另外需要对产另外需要对产品包装进行计数,每计品包装进行计数,每计120件使阴极接在件使阴极接在P3.7引脚的引脚的LED亮亮2s,并且发出报警声音响并且发出报警声音响2s。试编写程序,实现对产品的计数和声光报试编写程序,实现对产品的计数和声光报警,不用考虑串行通信和声音的具体产生程
60、序。警,不用考虑串行通信和声音的具体产生程序。设单片机的晶振频率设单片机的晶振频率fosc=6MHz。6.4 定时器应用举例定时器应用举例分析:分析:(1)关于定时器及工作模式的选择)关于定时器及工作模式的选择T1、T2都已经被使用,仅剩下都已经被使用,仅剩下T0,还需要,还需要计数和定时,可以考虑把计数和定时,可以考虑把T0设置为模式设置为模式3,TL0计数,计数,TH0定时。定时。由于计数仅由于计数仅120,虽然要求定时,虽然要求定时2s,但可以,但可以用多次中断能够满足要求。用多次中断能够满足要求。6.4 定时器应用举例定时器应用举例(2)关于声光报警的实现)关于声光报警的实现当当TL0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂生产承包合同
- 2024货运合同格式范本新版范文
- 2024新版广告合同范本
- 定制办公桌椅及安装协议
- 投资合作谈判技巧
- 招标代理合作协议样本
- 房建工程施工分包协议
- 户外广告业务合作合同参考
- 广东省室内装潢设计合同样本
- 3.1.1椭圆的标准方程【同步课件】
- 2024至2030年中国自动车配件行业投资前景及策略咨询研究报告
- 2024-2030年中国蔗糖行业市场深度调研及发展趋势与投资前景研究报告
- 北师版 七上 数学 第四章 基本平面图形《角-第2课时 角的大小比较》课件
- 外研版小学英语(三起点)六年级上册期末测试题及答案(共3套)
- 北师大版(2024新版)七年级上册生物期中学情调研测试卷(含答案)
- 产品包装规范管理制度
- 2024年海南省中考物理试题卷(含答案)
- 2024统编新版小学三年级语文上册第八单元:大单元整体教学设计
- 第07讲 物态变化(原卷版)-2024全国初中物理竞赛试题编选
- 高危儿规范化健康管理专家共识解读
- DB61T1521.5-2021奶山羊养殖技术规范 第5部分:后备羊培育
评论
0/150
提交评论