版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机语言编程定时器计数器第1页,共101页,2022年,5月20日,3点3分,星期二第6章 MCS-51单片机定时器/计数器目 录6.1 MCS-51定时器/计数器的结构及原理6.2 定时器T0、T16.3 定时器T26.4 定时器应用举例第2页,共101页,2022年,5月20日,3点3分,星期二 本章主要讨论MCS-51单片机定时器/计数器的逻辑结构和工作原理。内容主要有MCS-51单片机定时器T0、T1、T2的逻辑结构,工作方式的选择和应用。 本章为单片机的主要内容,也是第七章串行口的学习的基础。第6章 MCS-51单片机的定时器/计数器第3页,共101页,2022年,5月20日,3点
2、3分,星期二6.1 MCS-51单片机定时器/计数器的结构及原理主要内容6.1.1 MCS-51单片机定时器的结构6.1.2 MCS-51单片机定时器的工作原理6.1.3 定时器/计数器的控制寄存器第4页,共101页,2022年,5月20日,3点3分,星期二6.1.1 MCS-51单片机定时器的结构 MCS-51单片机定时器/计数器逻辑结构图: CPU中断溢出溢出溢出定时器0定时器1定时器2TMODT2CONT2MODTCONTH0TL0TH1TL1TH2TL2RCAP2LRCAP2H模式模式T2(P1.0)T1(P3.5)T2EX(P1.1)T0(P3.4)模式控制控制控制中断重装捕获第5页
3、,共101页,2022年,5月20日,3点3分,星期二6.1.1 MCS-51单片机定时器的结构 MCS-51主要由如下构成:三个16位的可编程定时器/计数器:定时器/计数器0、1和2。每个定时器有两部分构成:THx和TLx特殊功能寄存器T2MOD和T2CON ,主要对T2进行控制。特殊功能寄存器TMOD和TCON ,主要对T0和T1进行控制。第6页,共101页,2022年,5月20日,3点3分,星期二6.1.1 MCS-51单片机定时器的结构 引脚P3.5、P3.4、P1.0,输入计数脉冲。定时器T0、T1和T2是3个中断源,可以向CPU 发出中断请求。定时器/计数器T2增加了两个8位的寄存
4、器:RCAP2H和RCAP2L。特殊功能寄存器之间通过内部总线和控制逻辑电路连接起来。 第7页,共101页,2022年,5月20日,3点3分,星期二6.1.2 MCS-51单片机定时器的工作原理 定时器/计数器T0、T1、T2 的内部结构简图如下图所示。C/T=0中断请求振荡器TLx(8位)THx(8位)Tx12分频TFxC/T=1控制TRx第8页,共101页,2022年,5月20日,3点3分,星期二6.1.2 MCS-51单片机定时器/计数器的工作原理 从上图可以看出: 定时器的实质是一个加1计数器。C/T =0 ,为定时器方式。计数信号由片内振荡电路提供,振荡脉冲12分频送给计数器,每个机
5、器周期计数器值增1。 例如:如果晶振频率为12MHz,则最高计数频率为0.5MHz第9页,共101页,2022年,5月20日,3点3分,星期二6.1.2 MCS-51单片机定时器/计数器的工作原理 C/T =1 ,为计数方式。计数信号由Tx引脚(P3.4、P3.5和P1.0)输入,每输入一有效信号,相应的计数器中的内容进行加1。控制信号TRx=1时,定时器启动。当定时器由全1加到全0时计满溢出,从0开始继续计数,TFx=1 ,向CPU申请中断。第10页,共101页,2022年,5月20日,3点3分,星期二6.1.3 定时器/计数器的方式和控制寄存器1、T0、T1 工作模式寄存器TMOD 功能:
6、确定定时器的工作模式。其格式如图6-3所示:TMOD(89H)D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0图6-3 定时器方式寄存器TMOD GATE外部门控制位。GATE1,使用外部控制门。 TRx=1,P3.2(P3.3)=1时,启动定时器。第11页,共101页,2022年,5月20日,3点3分,星期二6.1.3 定时器/计数器的方式和控制寄存器GATE0,不使用外部门控制计数器 C/T定时或计数方式选择位 。C/T0时,为定时器C/T1时,为计数器 采样过程:CPU在每机器周期S5P2期间,输入信号进行采样。若前一机器周期采样值为1,下一机器周期采样值为0
7、,则计数器增1,随后的机器周期S3P1期间,新的计数值装入计数器。第12页,共101页,2022年,5月20日,3点3分,星期二6.1.3 定时器/计数器的方式和控制寄存器 M1、M0工作模式选择位。如下表所示:表6-1 定时器/计数器的工作模式M1M0工作模式功 能00模式013位定时器/计数器 01模式116位定时器/计数器10模式28位自动重置定时器/计数器11模式3定时器0:TL0为8位定时器/计数器,TH0为8位定时器。定时器1:无此方式第13页,共101页,2022年,5月20日,3点3分,星期二6.1.3 定时器/计数器的方式和控制寄存器2、T0、T1的控制寄存器TCONTCON
8、(88H)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0图6-4 定时器的控制寄存器 TF1、TF0:T1、T0的溢出标志位 计数溢出,TFx=1。 中断方式:自动清零; 查询方式:软件清零。第14页,共101页,2022年,5月20日,3点3分,星期二6.1.3 定时器/计数器的方式和控制寄存器TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。IE1、IE0:外部中断1、0请求标志位IT1、IT0:外部中断1、0触发方式选择位注意: GATE=1 ,TRx与P3.2(P3.3) 的配合。第15页,共101页,2022年,5月20日
9、,3点3分,星期二6.2 定时器T0、T1的工作模式及应用主要内容6.2.1 模式0的逻辑结构及应用6.2.2 模式1的逻辑结构及应用6.2.3 模式2的逻辑结构及应用6.2.4 模式3的逻辑结构及应用第16页,共101页,2022年,5月20日,3点3分,星期二6.2.1 模式0的逻辑结构及应用 M1M000,选择模式0。逻辑结构如图6-5所示。(以T0为例) T0的结构:13位定时器/计数器。 由TH0的8位、TL0的低5位构成(高3位未用) 工作过程:TL0溢出后向TH0进位,TH0溢出后将TF0置位,并向CPU申请中断。 定时时间=(213-定时初值)机器周期 最大定时时间:213机器
10、周期第17页,共101页,2022年,5月20日,3点3分,星期二6.2.1 模式0的逻辑结构及应用C/T=1,计数方式。计数脉冲由P3.4引脚输入。C/T=0时,定时方式。图6-5 模式0的逻辑结构图第18页,共101页,2022年,5月20日,3点3分,星期二6.2.2 模式1的逻辑结构及应用 M1M001时,选择模式1。逻辑结构如下页图所示。 T0的结构:16位定时器/计数器。 TL0:存放计数初值的低8位。 TH0存放计数初值的高8位;定时时间=(216-定时初值)机器周期最大定时时间:216机器周期第19页,共101页,2022年,5月20日,3点3分,星期二6.2.2 模式1的逻辑
11、结构及应用 工作过程:当TL0计满时,向TH0进1;当TH0计满时,溢出使TF0=1,向CPU申请中断。 MCS-51单片机之所以设置几乎完全一 样 的方式0和方式1,是出于与 MCS-48单片机兼容的。第20页,共101页,2022年,5月20日,3点3分,星期二6.2.3 模式2的逻辑结构及应用 M1 M0 10时,选择模式2。逻辑结构如图6-7所示。 T0的结构: TL0:8位的定时器/计数器; TH0:8位预置寄存器,用于保存初值。 工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。第21页,共101页,20
12、22年,5月20日,3点3分,星期二6.2.3 模式2的逻辑结构及应用图6-7 模式2的逻辑结构图振荡器12分频T0(P3.4)TR0TF0中断GATE+C/T=0C/T=1TL0(8位)TH0(8位)P3.2第22页,共101页,2022年,5月20日,3点3分,星期二6.2.3 模式2的逻辑结构及应用 定时时间=(28 - 初值)机器周期 最大定时时间=28 机器周期优点:模式2能够进行自动重装载。模式0和1计数溢出后,计数器为全0。循环定时或计数时,需要重新设置初值。说明:在模式2能够满足计数或定时要求时,尽可能使用模式2。第23页,共101页,2022年,5月20日,3点3分,星期二6
13、.2.4 模式3的逻辑结构及应用1、T0模式3的结构特点 M1 M0 11,选择模式3。逻辑结构如图6-8和6-9所示: 结构: TL0、TH0分为两个独立的8位计数器 TL0: 8位定时器/计数器使用T0所有的资源和控制位 TH0:8位定时器使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1)第24页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用图6-8 模式3下T0的逻辑结构图第25页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用2、T0模式3时T1的工作模式T1可以模式0模式2
14、工作。T1的结构如图6-9所示由于TF1及中断矢量被TH0占用,所以T1仅用作波特率发生器或其它不用中断的地方。T1作波特率发生器,其计数溢出直接送至串行口。设置好工作方式,串行口波特率发生器开始自动运行。 TMOD中T1的M1M0=11,T1停止工作。第26页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用图6-9 模式3下,T1的逻辑结构图第27页,共101页,2022年,5月20日,3点3分,星期二思考:T0工作在模式3,T1怎么进行方式设置?串行口重新装入C/T=1C/T=0T1(P3.5)振荡器12分频TL1(8位)TH1(8位)第28页,共1
15、01页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用1、定时器/计数器工作模式的选择方法(1)首先计算计数值N(2)确定工作模式原则是尽可能地选择模式2若 N 256选择模式2,否则选择模式1(3)如果需要增加一个定时器/计数器选择模式3。第29页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用2、定时器/计数器初值X的计算方法因为X + N = 28或216所以X = 28或216-N(1)对定时器设定时时间为tN = t/机器周期所以X = 28或216- t/机器周期(2)对计数器X = 28或216- N第30页,共
16、101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用例6-1 设单片机的振荡频率为12MHz,用定时器/计数器0的模式1编程,在P1.0引脚产生一个周期为1000s的方波,定时器T0采用中断的处理方式。定时器的分析过程。工作方式选择 需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。 工作模式选择 根据定时时间长短选择工作模式。 首选模式2,可以省略重装初值操作。第31页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用 定时时间计算:周期为1000s的方波要求定时器的定时时间为500s,每次溢出时
17、,将P1.0引脚的输出取反,就可以在P1.0上产生所需要的方波。 定时初值计算: 振荡频率为12MHz,则机器周期为1s。 设定时初值为X,(65536-X)1s=500s X=65036=0FE0CH定时器的初值为:TH0=0FEH,TL0=0CH 第32页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用C语言程序:#include /包含特殊功能寄存器库sbitP1_0=P10; /进行位定义void main( ) TMOD=0 x01; /T0做定时器,模式1TL0=0 x0c;TH0=0 xfe;/设置定时器的初值ET0=1; /允许T0中断
18、EA=1; /允许CPU中断TR0=1; /启动定时器while(1); /等待中断 第33页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用void time0_int(void) interrupt 1/中断服务程序TL0=0 x0c;TH0=0 xfe;/定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波汇编语言程序:ORG0000HSJMPMAINORG000BHLJMPTIME0第34页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用MAIN:MOV TMOD,#01H;T0定时,模式1MOVTL
19、0,#0CH;置定时初值MOVTH0,#0FEH SETBET0;定时器T0开中断SETBEA;CPU开中断SETBTR0;启动定时器T0SJMP$;等待定时器溢出TIME0: ;中断服务程序MOV TL0,#0CHMOVTH0,#0FEH;重装定时初值CPLP1.0 ;P1.0取反RETI ;中断返回END第35页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式 3的逻辑结构及应用 例6-2 设单片机的振荡频率为12MHz,用定时器/计数器0编程实现从P1.0输出周期为500s的方波。分析:方法同例6-1定时时间: 方波周期为500s,定时250s。 模式选择: 定时器
20、0可以选择模式0、1和2。模式2最大的定时时间为256s,满足250s的定时要求,选择模式2。第36页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式 3的逻辑结构及应用(1)初值计算 (256-X)1s=250s X=6;则TH0=TL0=6 (2)程序:采用中断处理方式的程序 :C语言程序 :# include /包含特殊功能寄存器库sbit P1_0=P10; 第37页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用voidmain( )TMOD=0 x02; /选择工作模式TL0=0 x06;TH0=0 x06; /为定时器
21、赋初值 ET0=1; /允许定时0中断 EA=1;TR0=1;/启动定时器0while(1);/等待中断void time0_int(void) interrupt 1 P1_0=P1_0;第38页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用汇编语言程序:ORG0000HLJMPMAIN ORG000BH;中断处理程序CPLP1.0RETIORG 0030H;主程序MAIN:MOV TMOD,#02H MOV TL0,#06HMOV TH0,#06HSETB ET0;允许定时器0中断SETB EA;允许CPU中断SETB TR0;启动定时器0SJMP
22、 $;等待中断END第39页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用采用查询方式处理的程序: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;第40页,共101页,2022年,5月20日,3点3分,星期二6.2.4 模式3的逻辑结构及应用汇编语言程序:MAIN:MOV TMOD,#02H;主程序MOVTL0,#06HMOVTH0,#06HSETBTR0L
23、OOP:JNBTF0,$;查询计数溢出CLRTF0CPLP1.0 SJMPLOOPEND第41页,共101页,2022年,5月20日,3点3分,星期二6.3 定时器/计数器T2主要内容6.3.1 定时器T2的特殊寄存器6.3.2 定时器T2的工作方式及结构第42页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊寄存器89C52中的T2是一个16位的、具有自动重装载和捕获能力的定时器/计数器。T2的结构:除TL2、TH2和控制寄存器T2CON及T2MOD之外,还增加了捕获寄存器RCAP2L(低字节)和RCAP2H(高字节)。 T2的计数脉冲源有两个:一个
24、是内部机器周期,另一个是由T2(P10)端输入的外部计数脉冲。 第43页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器T2有4种工作方式自动重装、捕获和波特率发生器、可编程时钟输出。 增加了两个引脚: T2(P1.0),T2EX(P1.1)。1、定时器/计数器2的控制寄存器T2CON 可位寻址和字节寻址。 功能:选择T2的工作方式和工作模式。 允许位寻址和字节寻址。其格式如下: 第44页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器TF2 :定时器/计数器2的溢出中断标志位 T2溢出时置
25、位,申请中断。软件清零。波特率发生器方式下,RCLK1或TCLK1时,定时器溢出不对TF2进行置位。EXF2(T2CON.6):定时器/计数器2外部触发标志位T2CON(C8H)D7D6D5D4D3D2D1D0TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2图6-10 定时器T2的控制寄存器 第45页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器 EXEN21,且T2EX引脚上有负跳变将触发捕获或重装操作,EXF2=1,向CPU发出中断请求。 软件复位。RCLK:串行口接收时钟允许标志位RCLK=1时,T2溢出信号分频后做
26、串行口工作在模式1和3的接收波特率。RCLK=0时,T1溢出信号分频信后做串行口接收波特率。第46页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器TCLK:串行口发送时钟允许标志位TCLK=1时,T2溢出信号分频后做串行口工做在模式1和3的发送波特率。TCLK=0时,T1溢出信号分频后做串行口的发送波特率。第47页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器 EXEN2 ( T2CON3 ) :定时器/计数器2外部允许标志位EXEN2=1,定时器/计数器2没有工作在波特率发生器方式,如
27、T2EX(P1.1)引脚上产生负跳变时,将激活“捕获”或“重装”操作。 EXEN2=0,T2EX引脚上的电平变化对定时器/计数器2不起作用。第48页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器TR2 :定时器/计数器2启动控制位TR2=1,启动定时器/计数器2。TR2=0,停止定时器/计数器2。C/T2:T2的定时器或计数器方式选择位。 C/T2=1,T2为计数器。 对T2(P1.0)引脚输入脉冲进行计数(下降沿触发);当T2(P1.0)产生负跳变时,计数器增1。 第49页,共101页,2022年,5月20日,3点3分,星期二6.3.1
28、定时器/计数器T2的特殊功能寄存器C/T2=0, T2做定时器。每个机器周期T2加1。CP/RL2 :捕获和重装载方式选择控制位 捕获方式: CP/RL2=1,EXEN2=1,T2EX(P1.1)引脚负跳变将触发捕获操作。 重装载方式:CP/RL2=0,EXEN2=1,T2EX引脚有负跳变或T2计满溢出时,触发自动重装操作。第50页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器 RCLK=1或TCLK=1时,定时器/计数器2做波特率发生器。CP/RL2标志位不起作用,当T2溢出时强制自动装载。2、数据寄存器TH2、TL28位的数据寄存器,组
29、成16位定时器/计数器。 字节寻址,地址分别为CDH和CCH。复位后,TH2=00H,TL2=00H。3、捕获寄存器RCAP2H和RCAP2L第51页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器RCAP2H:高8位捕获寄存器,字节地址为CBH。RCAP2L:低8位捕获寄存器,字节地址为CAH。捕获方式,保存当前捕获的计数值。重装方式,保存重装初值。复位后均为00H。第52页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器功能:对定时器的加1减1计数方式进行设置。 选择是否工作在可编程时钟
30、输出方式。复位后为00B。T2MOD(C9H)D7D6D5D4D3D2D1D0 T2OEDCEN 图6-11 定时器T2的模式控制寄存器 4、定时器/计数器2的模式控制寄存器T2MOD第53页,共101页,2022年,5月20日,3点3分,星期二6.3.1 定时器/计数器T2的特殊功能寄存器T2MOD中标志 :保留位,未定义,为未来功能扩展用。T2OE:定时器/计数器2输出启动位。T2OE1,工作在可编程时钟输出方式。输出方波信号至T2(P1.0)引脚。DCEN:定时器/计数器2向上/向下计数控制位。当DCENl,T2自动向下(递减)计数当DCEN0, T2自动向上(递增)计数 第54页,共1
31、01页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式 定时器/计数器2是一个16位的加1计数器,具有四种工作方式。如表6-2所示: 方式选择寄存器:T2CON和T2MOD。注意:无论T2做定时器还是计数器,都具有捕获和自动重装的功能。第55页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式表6-2定时器/计数器2的工作方式RCLK+TCLKCP/RL2TR2T2OE工作方式001016位自动重装方式0110捕获方式1 10波特率发生器方式0 11时钟输出方式 0 关闭T2第56页,共101页,2022年,5月20
32、日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式一、16位自动重装方式CPRL20,DCEN=0时,选择自动重装方式。结构如下图所示:T2计满溢出时, TF2置1,申请中断。打开重装载三态缓冲器,将RCAP2H和RCAP2L的内容自动装载到TH2和TL2中。EXEN21且T2EX(P11)端的信号有负跳变时, EXF2置1,申请中断。引起重装载操作。第57页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式RCAPLRCAPHTF2TL2TH2EXF2EXEN2T2(P1.0)T2EX(P1.1)溢出T2中断请求TR2振荡器12C/T2=
33、0C/T2=1+第58页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式CP/RL20,DCEN=1时,定时器/计数器2既可以增量(加1)和减量(减1)计数。T2EX电平控制计数方向: 当T2EX(P1.1)引脚输入为高电平1时,T2执行增量(加1)计数。 增量计数过程:计满溢出时,一方面置位TF2,向主机请求中断处理;另一方面将存放在寄存器RCAP2L和RCAP2H中的16位计数初值自动重装TL2和TH2中,进行新一轮加1计数。第59页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式第60页,共101
34、页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式T2EX(P1.1)引脚为低电平0时,定时器/计数器2执行减量(减1)计数。减量计数过程:是用FFH分别初始化(预置)TL2和TH2,用0FFFFH减去计数次数所求得的下限初始化RCAP2L和RCAP2H。计数器不断减1,直至计数器中的值等于寄存器RCAP2L和RCAP2H中预置的值时,计满溢出。 0FFH重装TL2和TH2,进行新一轮的计数操作第61页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式增量(加1)计数是以65536为模。对计数次数求补得到计数初值,此
35、初值初始化TL2、TH2和RCAP2L、RCAP2H陷阱寄存器。在电平控制重装方式下,无论减量增量计数,溢出时TF2置1,EXF2状态翻转,相当于17位计数器的最高位。第62页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式二、捕获方式 当CPRL2l,选择捕获方式。存在以下两种情况。T2结构如下图所示,有两种情况:EXEN=0 定时器2的计数溢出,置位TF2,申请中断。 EXEN21 T2EX(P11)端的信号有负跳变时,触发捕获操作。将TH2和TL2的内容自动捕获到寄存器RCAP2H和RCAP2L中同时EXF2置1,申请中断。第63页,共101
36、页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式 图6-14 捕获方式的逻辑结构图第64页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式三、波特率发生器方式 RCLK=1或TCLK 1时,选择波特率发生器方式。结构如下图所示,从图可以看出:RCLK=1,T2为接收波特率发生器。 TCLK=1,T2为发送波特率发生器。 C/T20,选用内部脉冲。 C/T21,选用外部脉冲。 T2(P1.0)输入负跳变时,计数值增l。第65页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作
37、方式第66页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式计数溢出时,触发自动装载操作。 RCAP2H和RCAP2L的内容自动装载到TH2和TL2中。T2用做波特率发生器时,TH2的溢出不会将TF2置位,不产生中断请求。T2EX还可以作为一个附加的外部中断源。 T2用做波特率发生器时,若EXEN2=1,当T2EX有负跳变时,EXF2置1,由于不发生重装载或捕获操作,此时T2EX引脚可外接一中断源。第67页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式定时器/计数器T2作为波特率发生器使用时的编程方法
38、如下:RCAP2H=0 x30;/设置波特率RCAP2L=0 x38;TCLK=1;/选择定时器2的溢出脉冲作为波特率发生器 注意:在波特率发生器工作方式下,在 T2计数过程中不能再读/写 TH2和TL2的内容。第68页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式四、可编程时钟输出方式 T2OE=1时,C/T2=0时,T2工作于时钟输出方式。结构如下图所示: 工作过程:当T2计满溢出时,T2(P1.0)引脚状态翻转,从而输出频率可调、精度很高的方波信号;同时使RCAP2H和RCAP2L寄存器内容装入TH2和TL2寄存器中,重新计数。在时钟输出方
39、式下,T2溢出时不置位TF2。第69页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式当EXEN2=1,T2EX(P1.1)引脚有负跳变时,EXF2将置1。(同波特率发生器方式)从P1.0引脚输出的时钟信号频率为:Fosc/(4(65536-(RCAP2H,RCAP2L)第70页,共101页,2022年,5月20日,3点3分,星期二6.3.2 定时器/计数器T2的工作方式图6-16 T2时钟输出方式下的逻辑结构图第71页,共101页,2022年,5月20日,3点3分,星期二6.4 定时器应用举例主要内容6.4.1 定时器的初始化6.4.2 定时器应
40、用举例第72页,共101页,2022年,5月20日,3点3分,星期二6.4.1 定时器的初始化 在使用定时器/计数器前,应首先对其进行初始化编程。一、定时器的初始化步骤1、选择工作模式和工作方式。 设置TMOD、T2MOD。2、设置定时器的计数初值。 设置THx和TLx,RCAP2H和RCAP2L。3、中断设置:设置IE。4、启动定时器。 设置TCON或T2CON。 可以使用位操作指令。例如:SETB TRx。第73页,共101页,2022年,5月20日,3点3分,星期二6.4.1 定时器的初始化二、定时器/计数器初值计算 根据定时器/计数器的模式和方式,计算计数初值(注意T2)计数器的长度为
41、n,则计数的最大值为2n 。1、工作于定时方式计数脉冲由内部的时钟提供,每个机器周期进行加1。设晶振频率为fosc,则计数脉冲的频率为fosc/12,计数脉冲周期T=1/(fosc/12)。第74页,共101页,2022年,5月20日,3点3分,星期二6.4.1 定时器的初始化如果进行定时时间为t,计数初值为X,则:t=( 2n -X)12/fosc2、工作于计数方式 当工作在计数方式时,对外部脉冲计数。利用计数器计数结束产生溢出的特性,来计算初值X 。则有:X= 2n计数次数第75页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例例6-3 利用定时器T1的模
42、式2对外部信号进行计数,要求每计满100次,将P1.0端取反。分析:T1工作在计数方式。脉冲数100。模式2,模式字TMOD=0110b。1、初值计数:在模式2下:X= 28-100=156D=9CH2、C语言程序:#include sbit p1_0=p10;/进行位定义第76页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例void main ( )TMOD=0 x60;/T1工作在模式2,计数TL1=0 x9c;/装入计数(重装)初值TH1=0 x9c;ET1=1;/允许定时器1中断EA=1;/开中断TR1=1 ;/启动定时器1while(1);第77页
43、,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例void time0_int(void) interrupt 3 /中断服务程序P1_0=P1_0;/取反,产生方波3、汇编语言程序:MAIN: MOV TMOD,#60H;T1工作在模式2,计数MOVTL1,#9CH;装入计数初值MOVTH1,#9CH;装入计数(重装)初值第78页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例MOVIE,#88H;允许定时器中断SETBTR1;启动定时器HERE:SJMP HERE;等待中断中断服务程序:ORG 001BH;中断服务程序入口地
44、址CPLP1.0;对P1.0引脚信号取反RETI;中断返回第79页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例 例6-4 某一应用系统需要对INT0引脚的正脉冲测试其脉冲宽度。分析:可以设置定时器/计数器0为定时方式,工作在模式1,且置位GATE位为1,将外部需测试的脉冲从INT0引脚输入,设机器周期为1s。第80页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例C语言程序:计算脉宽和处理程序略。#include sbit P3_2=P32;unsigned int_test( )TMOD=0 x09;TL0=0 x00;
45、TH0=0 x00;while(P3_2);TR0=1;第81页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例while(!P3_2);while(P3_2);TR0= 0;return (TH0*256+TL0);汇编语言程序:INT00:MOV TMOD,#09H MOV TL0,#00H;设置计数初值MOV TH0,#00HLOP1:JBP3.2,LOP1;等待P3.2变低电平第82页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例 SETB TR0;启动T0计数LOP2:JNBP3.2,LOP2;等待P3.2变成高电
46、平LOP3:JBP3.2,LOP3;等待P3.2变成低电平 CLRTR0;停止T0计数MOV A,TL0;计数器TL0中的内容送AMOV B,TH0;计数器TH0中的内容送B 本题也可以使用定时器/计数器2工作在捕获方式下进行脉宽测试。 注意:T2脉宽测试必须在定时器未溢出的情况下才有效。 第83页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例例6-5 某应用系统要求通过P1.0和P1.1口分别输出脉冲周期为200s和400s的方波,fosc=6MHz。 分析:需要两个定时器。可以选择使用定时器/计数器0,设置为定时模式,工作模式3,分成两个8位的定时器。1
47、、计算定时初值。t=(256 -X)12/fosc初值分别为0CEH和9CH。第84页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例2、C语言程序:# include sbitP1_0=P10;/进行位定义sbitP1_1=P11;void main( )TMOD=0 x03;/设置T0定时,工作在模式3TL0=0 xce;/设置TL0计数初值,产生 200s方波TH0=0 x9c;/设置TH0计数初值,产生 400s方波ET0=1;/设置定时器0中断允许位第85页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例ET1=1;
48、/设置定时器/计数/器1中断允许位EA=1;/设置总中断允许位TR0=1;/启动定时器T0TR1=1;/启动定时器T1while(1); /等待溢出void time0L_int(void) interrupt 1/T0中断服务程序TL0=0 xce;/定时器重赋初值P1_0=P1_0;/产生方波第86页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例void time0H_int(void) interrupt 3 /T1中断服务程序TH0=0 x9c;/定时器重赋初值P1_1=P1_1;/产生方波3、汇编语言程序:主程序:ORG0000HLJMPMAIN第
49、87页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例ORG000BHLJMPT0SORG001BHLJMPT1SMAIN:MOVTMOD,#03H; 设置T0定时,模式3MOVTL0,#0CEH;设置TL0计数初值,产生200s方波MOVTH0,#9CH;设置TH0计数初值,产生400s方波第88页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例SETBEA;设置总中断允许位SETBET0;允许定时器0中断SETBET1;允许定时器1中断SETBTR0;启动定时器T0SETBTR1;启动定时器T1T0中断服务程序:T0S:M
50、OVTL0,#0CEH;重新设置定时初值CPLP1.0;P1.0口的输出取反RETI 第89页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器的应用举例T1中断服务程序:T1S:MOVTH0,#9CH ;重新设置定时初值CPLP1.1 ;对P1.0口输出信号取反RETI ;中断返回例6-6 利用定时器精确定时1s控制LED以秒为单位闪烁。已知fosc=12MHz。分析:定时器/计数器在定时方式下,各个模式最大定时时间分别为:第90页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器应用举例 定时器0=(8192-0)12/fosc=8.192ms 定时器1=(65536-0)12/fosc=65.536ms 定时器2=(256-0)12/fosc=0.256ms 选择模式1。定时时间为10ms,当10ms的定时时间到,TF1=1,连续定时100次,调用亮灯函数;再连续定时100次,调用灭灯函数。循环工作,即达到1s闪烁1次的效果。1、初值计算:(256-X)12/fosc=10ms初值X=55536=0D8F0H第91页,共101页,2022年,5月20日,3点3分,星期二6.4.2 定时器应用举例2、程序设计:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级语文上册教材分析
- 人教版小学语文二年级上语文园地三3课件
- 新版思想道德修养与法律基础-第四章课件
- 四年级上册科学教科版课件第4课 我们是怎样听到声音的
- 《人力资源法务》课件
- 土地协议书(2篇)
- 《凡客诚品物流分析》课件
- 《产褥期饮食与保健》课件
- 2023年云南省西双版纳自治州公开招聘警务辅助人员(辅警)笔试自考练习卷一含答案
- 《建筑工程测量绪论》课件
- 敦煌学智慧树知到期末考试答案章节答案2024年西北师范大学
- 大学生无人机技术创业计划书
- 《应用文写作》期末试题及答案(A卷)
- 国开《农村环境保护形成性考核册》形考1-3
- JGJT414-2018 建筑施工模板和脚手架试验标准
- 即兴表演智慧树知到期末考试答案章节答案2024年上海电影艺术职业学院
- 汽车行走的艺术智慧树知到期末考试答案章节答案2024年吉林大学
- 心理学研究方法 知到智慧树网课答案
- 系统解剖学(南方医科大学)智慧树知到期末考试答案章节答案2024年南方医科大学
- 2023年部编版五年级数学上册期末考试卷【含答案】
- 2024年浙江杭州临安法院编外工作人员招聘笔试参考题库附带答案详解
评论
0/150
提交评论