




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第5章 定时器/计数器2 第第5章章 目录目录5.1 定时定时/计数器的结构计数器的结构 5.1.1 定时器定时器/计数器的核心原型计数器的核心原型 5.1.2 定时器定时器/计数器的组成计数器的组成 5.1.3 定时器定时器/计数器的工作方式寄存器计数器的工作方式寄存器TMOD 5.1.4控制寄存器控制寄存器TCON5.2 定时器定时器/计数器的工作方式计数器的工作方式 5.2.1 方式方式1 5.2.2 方式方式2 5.2.3 方式方式3 5.2.4 方式方式05.3 定时器定时器/计数器的应用计数器的应用 5.3.1 方式方式1的应用举例的应用举例 5.3.2 方式方式2的应用举例的应
2、用举例 5.3.3 方式方式3的应用举例的应用举例 5.3.4 外部输入的计数脉冲信号的要求外部输入的计数脉冲信号的要求习题习题35.1 5.1 定时器定时器/ /计数器的结构计数器的结构 微处理器应用系统中,经常完成如下工作: 1. 1. 特定事件的定时控制特定事件的定时控制 2. 2. 脉冲个数的统计脉冲个数的统计 因此,定时功能和计数功能就是处理器必须具备的一项基本配备。 51单片机内部就具备定时器和计数器,以满足功能需要。定时器定时器/ /计数器计数器的核心部件就是计数器核心部件就是计数器(参考数字电子技术中的时序逻辑电路),额外附件了其他控制单元电路。45.1.1 5.1.1 定时器
3、定时器/ /计数器的核心原型计数器的核心原型 定时器/计数器的主要功能部件的核心原型就是+1计数器。图51 3位异步+1计数器的组成 5图52 3位异步+1计数器的时序图 在计数脉冲CP的作用下, JK触发器输出端Q0Q0、Q1Q1、Q2Q2的状态变换由000001010011100101110111000000001010011100101110111000时,总共需要8个计数脉冲。 6定时功能(设定时功能(设5 5秒定时):秒定时):(1) 设置Q0、Q1、Q2的初始状态为“011”(定时初值 )(2) CP脉冲(频率为1Hz)作用下,Q0、Q1、Q2状态变换历经011100 101110
4、111000。(3) 5个时钟脉冲周期之后,即时间恰好为5秒,此时计数状态由111 000 ,溢出。计数功能(需计数功能(需3 3次计数):次计数):(1) 设置Q0、Q1、Q2的初始状态为“101”(定时初值 )(2) 外部待计数的触发脉冲(频率未知)作用下,Q0、 Q1、Q2状态变换历经101110111000。 (3) 3个计数触发脉冲之后,即计数次数恰好为3,此时计数状态由111 000 ,溢出。75.1.2 5.1.2 定时器定时器/ /计数器的组成计数器的组成 51单片机内部一般有2 23 3个可编程定时器个可编程定时器/ /计数器计数器,其结构基本相同。常规系列80C51单片机内
5、部设有2 2个个1616位位可编程定时器/计数器,分别是T0T0和和T1T1。图53 定时器/计数器结构框图8特点:特点:(1) 独立性独立性:定时器/计数器和内部CPU相互独立,互不 影响,即计数过程计数过程与单片机执行程序并行进行执行程序并行进行。(2) 51单片机内部有T0、T1两个定时器/计数器。(3) 两个定时器/计数器结构相同结构相同。(4) 每个定时器/计数器均具备独立的+1计数器计数器THx和 TLx(x取0或1)。(5) 两个定时器/计数器共同受TMOD(工作方式寄存器) 和TCON(控制寄存器)相应位相应位的控制控制其工作。9(1) GATE 门控位 (2) 工作模式选择位
6、(3) M1和M0 工作方式选择位5.1.3 5.1.3 工作方式寄存器工作方式寄存器TMOD TMOD 特殊功能寄存器特殊功能寄存器TMODTMOD用于设置设置定时器/计数器T0和T1工作方式工作方式。字节地址为89H,不能位寻址。图54 TMOD的位定义/C T10GATE 门控位GATE=0:定时器定时器/计数器的运行启动控制与外部引脚无关计数器的运行启动控制与外部引脚无关,仅由仅由TRx(x取0或1)位通过置置1实现。GATE=1:定时器/计数器的运行启动控制与外部引脚有关,即由TRx(x取0或1)位和外部引脚 (x取0或1)的电平情况共同作用。 当 ,TRx=1,启动Tx/ Cx工作
7、。TMODTMOD工作方式寄存器工作方式寄存器 INTx1INTx 11 工作模式选择位 =0,定时器/计数器的工作模式工作模式为定时器定时器,固定的定时时钟脉冲来自于12分频分频的单片机时钟脉时钟脉冲冲 。 =1,定时器/计数器的工作模式工作模式为计数器计数器,计数脉冲计数脉冲来自于P3.4(T0)/P3.5(T1)引脚输入引脚输入的计数脉冲 。/C T/C T/C T12M1和M0 工作方式选择位 M1M0工作方式工作方式备备 注注00方式013位计数长度,软件程序装载初值,T0和T1均适用01方式方式116位计数长度,软件程序装载初值,T0和T1均适用10方式方式28位计数长度,自动重新
8、装载初值,T0和T1均适用11方式方式3特殊情况,仅适用于T0,分成两个8位计数器,T1停止计数13(1) TFx 溢出标志位 (2) TRx 运行控制位(3) IEx 外部中断请求标志位(与定时器与定时器/计数器无关计数器无关)(4) ITx 外部中断触发模式选择位(与定时器与定时器/计数器无关计数器无关)5.1.4 5.1.4 控制寄存器控制寄存器TCON TCON 控制寄存器控制寄存器TCONTCON用来完成启动控制、溢出判断、中断标志等功能配置 。字节地址为88H,位寻址8FH88H。图55 TCON的位定义14TFx 溢出标志位TFx =0,计数值无溢出。TFx =1,计数值有溢出。
9、当+1计数器的计数值达到最大值时,在下一个输入脉冲作用下产生溢出,由硬件完成TFx的置1操作,并同时申请中断。 控制寄存器控制寄存器TCONTCON15TRx 运行控制位TRx=0,停止定时器/计数器Tx工作(绝对控制,计数器此时停止工作) 。TRx=1,启动定时器/计数器Tx工作(相对控制,是否计数开始还需要考虑GATE位的配置)。165.2 5.2 定时器定时器/ /计数器的工作方式计数器的工作方式 通过对定时器/计数器的工作方式寄存器TMOD的配置,编程M1位位和M0位位,可以实现定时器/计数器的工作方式选择。 51单片机的定时器/计数器具备4 4种工作方种工作方式式,分别是方式方式0
10、0,方式,方式1 1,方式,方式2 2,方式,方式3 3。 现以T0为例来说明定时器/计数器的各个工作方式。175.2.1 5.2.1 方式方式1 1 方式1为1616位位定时器/计数器工作方式,其16位计数器由TH0TH0和和TL0TL0共同组成共同组成,其中TH0为高8位,TL0为低8位。图56 方式1基本电路结构框图 18工作模式选择定时/计数(计数脉冲来源)启动/停止控制电路(启动:与门输出为1)(停止:与门输出为0)启动/停止模拟开关(闭合:控制端为1)(打开:控制端为0)16位计数器模块(TH0:高8位)(TL0:低8位)中断标志(溢出: TF0=1)(正常: TF0=0)19启动
11、/停止控制电路计数器模块模拟开关溢出中断工作模式选择工作模式选择定时定时/计数计数(计数脉冲来源计数脉冲来源)/C T=0时,开关S1拨至上侧,定时模式。16位+1计数器的计数脉冲信号来自于51单片机时钟振荡器的时钟脉冲的12分频。=1时,开关S1拨至下侧,计数模式。外部计数触发脉冲来自于单片机的引脚T0(P3.4)。/C T20计数触发脉冲启动/停止控制电路计数器模块溢出中断模拟开关模拟开关(闭合:控制端为闭合:控制端为1)(打开:控制端为打开:控制端为0)模拟开关 当控制端电平信号为1(高电平)时,模拟开关闭合,通道导通,触发脉冲加载到计数器模块。 当控制端电平信号为0(低电平)时,模拟开
12、关打开,通道断开,触发脉冲无法加载到计数器模块。21计数触发脉冲计数器模块模拟开关溢出中断启动启动/停止控制电路停止控制电路(启动:与门输出为启动:与门输出为1)(停止:与门输出为停止:与门输出为0)TR0=0,与门输出锁定为0(低电平),模拟开关打开,停止计数,T0停止工作。 TR0=1,与门输出需考虑另一端电平(即或门输出)。GATE=0,非门控状态非门控状态。或门输出锁定为1(高电平),此时T0启/停只受TR0控制。 GATE=1,门控状态。或门输出受外部引脚P3.2(INT0)控制,仅有P3.2引脚为高电平时,或门输出为1,结合TR0,共同控制 T0的启/停。22计数触发脉冲启动/停止
13、控制电路模拟开关溢出中断16位计数器模块位计数器模块(TH0:高:高8位位)(TL0:低:低8位位)计数器模块计数器模块:1616位计数器,位计数器,例如指定计数初值为5000H,则计数器变化5000H5001H5002HFFFEHFFFFH0000H在计数触发脉冲作用下,从指定的计数初值开始+1操作,每一个脉冲,进行一次+1操作。当计数值由FFFFH0000H变化时,产生溢出,置位溢出标志位。其中,高8位存放在TH0中,低8位存放在TL0中,组合生成16位计数值。23计数触发脉冲启动/停止控制电路计数器模块中断标志中断标志(溢出:溢出: TF0=1)(正常:正常: TF0=0)计数器模块计数
14、触发脉冲计数器模块启动/停止控制电路计数触发脉冲计数器模块模拟开关中断标志模块中断标志模块:当16位计数器计数值由FFFFH0000HFFFFH0000H跳变时,硬件置位TF0,标明定时器/计数器T0已经发生溢出,供处理器中断查询。245.2.2 5.2.2 方式方式2 2 方式2为自动装载初值自动装载初值的8 8位位定时器/计数器工作方式 ,其8位计数器位计数器由TL0组成。而TH0作为自动重载自动重载初值备用寄存器,当溢出发生后,由硬件完成计数初值硬件完成计数初值的重新赋值重新赋值。图57 方式2基本电路结构框图 与方式与方式1 1的区别的区别255.2.3 5.2.3 方式方式3 3 方
15、式3:只能用于设置定时器定时器/计数器计数器T0。 工作方式3的引入,目的在于通过该方式的设置,实现增加一个8位定时器的目的。 T0工作于方式3时, T0被设置为两个8位定时器定时器/计数器,计数器,一个占用一个占用T0的资源,另一个在的资源,另一个在硬件上占用了T1的TR1和TF1,导致T0工作于方式3时,T1不能够使用TR1和TF1,使得T1的功能弱化。26方式方式3 3结构框图结构框图图58 T0方式3基本电路结构框图 定时器定时器/ /计数器功能计数器功能只有定时器功能只有定时器功能与与27T0T0工作于方式工作于方式3 3时时T1T1的工作状态的工作状态图59 T1工作于方式1基本电
16、路结构框图 图510 T1工作于方式2基本电路结构框图 或或285.2.4 5.2.4 方式方式0 0 方式0为1313位位定时器/计数器工作方式,其13位计数器由TH0和TL0的低5位共同组成。方式0基本电路结构框图 295.3 5.3 定时器定时器/ /计数器的应用计数器的应用 定时器/计数器是所有的微处理器不可或缺的组成部件,应用广泛。其应用应用方面:定时和计数。其编程方法编程方法:查询法和中断法。其编程过程:(1) 计算初值。 (2) 定时器/计数器的初始化编程。 (3) 定时器/计数器所要完成功能的程序设计。30计算初值计算初值X X 计算初始计数开始的值计算初始计数开始的值,即从哪
17、个值开始进行+1操作,直至计数溢出或被停止。 初值初值:计数的最大值确定的定时时间t所需要的计数个数 或计数的最大值确定的计数值M所需要的计数个数计数功能定时功能方式1方式方式1:16265536XMM方式方式1:162=2=65536 1212nOSCOSCtftftXT方式方式2、3:82=2=256 1212nOSCOSCtftftXT方式2、3方式2、382256XMM方式方式2、3:82256XMM315.3.1 5.3.1 方式方式1 1的应用举例的应用举例例例5-1 某51单片机应用系统,系统晶振的时钟频率采用12MHz,在P1.0引脚输出一个周期为10ms的方波信号,如图511
18、所示。 图511(1) (1) 计算定时初值计算定时初值X X 时钟频率fOSC=12MHz,12分频后为1MHz,周期为1s,定时时间5ms。365 1065536= 6553665536121065536500060536EC78HOSCtftXT(2) (2) 初始化定时器初始化定时器T1T1:查询方法编程。初始化TL1、TH1、TMOD、TCON32 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP, #60H ;开辟堆栈空间,栈底的地址设置为60H MOV TMOD, #10H ;设置T1为工作方式1,非门控的定时器模式 MOV TCON, #00H
19、 ;设置T1相关标志位,TR1=0,TF1=0 MOV TL0, #78H ;设置定时初值低8位 MOV TH0, #0ECH ;设置定时初值高8位 SETB TR1 ;启动T1开始定时 LOOP:JBC TF1, TIME1 ;判断T1是否溢出,若TF1=0,顺序执行 ;如果TF1=1,清TF1,转移到TIME1执行 SJMP LOOP ;TF1=0,返回LOOP再继续查询TIME1:LCALL CPLP10 ;TF1溢出位有效,调用定时处理子程序CPLP10 SJMP LOOP ;实现产生方波脉冲的循环输出 ORG 0090H ;定时处理子程序入口地址CPLP10:MOV TL1, #78
20、H ;重新设置定时初值低8位 MOV TH1, #0ECH ;重新设置定时初值高8位 CPL P1.0 ;取反P1.0,输出10ms方波 RET ;子程序返回 END ;汇编源文件编译结束(3 3)完成功能程序设计:)完成功能程序设计:查询TF1是否为1,判断是否溢出,定时时间到,完成P1.0引脚的取反操作。初初始始化化查询溢出标志位查询溢出标志位调用调用子程序子程序 33方式方式1 1的应用举例的应用举例例例5-2 某51单片机应用系统,系统晶振的时钟频率采用12MHz,通过定时器T0产生1s的定时,驱动P1.0引脚电平取反操作程序。 时钟频率为12MHz时,各工作方式最长定时时间如下: 方
21、式0 最长定时时间:8.192ms方式1 最长定时时间:65.536ms方式2 最长定时时间:0.256ms方式3 最长定时时间:0.256ms1321s1621s821s821s 根据题目要求,需要定时1秒,即便选择方式1,也无法直接实现1秒定时需要。此时可采用“硬件硬件( (定时器定时器) )定时定时+ +软件计数软件计数”的方法达到目标要求。 设定定时时间为50ms50ms,通过程序设置循环变量计数2020次次,可得到2050ms=1000ms=1s的定时时间。 34(1) 50ms定时初值定时初值X 3650 1065536655366553650000155363CB0H10tXT(
22、2) 初始化定时器初始化定时器T0 初始化程序主要完成对TL0、TH0、TMOD、TCON的设置,以及循环变量计数值的初始化设置。设循环变量R0存放计数值,则初始化其值为(R0)=20。 设定定时时间为设定定时时间为50ms50ms。 35(3) 完成功能程序设计完成功能程序设计 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV SP, #60H MOV TMOD, #01H MOV TCON, #00H MOV TL0, #0B0H MOV TH0, #3CH MOV R0, #20 SETB TR0LOOP:JBC TF0, TIME0 SJMP LOOPTIM
23、E0:LCALL MS50 SJMP LOOP ORG 0090H MS50:DJNZ R0, NEXT CPL P1.0 MOV R0, #14H NEXT:MOV TL0, #0B0H位 MOV TH0, #3CH RET END365.3.2 5.3.2 方式方式2 2的应用举例的应用举例例例5-3 编写应用T0实现对T0(P3.4)引脚的方波脉冲个数检测程序。每检测到100个脉冲,驱动P1.0引脚电平取反,如图512。 图512 方波脉冲(1) 计算定时初值计算定时初值X (2) 初始化定时器初始化定时器T1 查询方法编程。初始化TL1、TH1、TMOD、TCON82256 10015
24、69CHXM37(3) 完成功能程序设计完成功能程序设计 ORG 0000H LJMP MAIN ;跳转到主程序 ORG 0030H MAIN:MOV SP, #60H ;开辟堆栈空间 MOV TMOD, #06H ;初始化T0为工作方式2,计数器模式 MOV TCON, #00H ;初始化T0相关标志位 MOV TL0, #9CH ;初始化8位计数初值 MOV TH0, #9CH ;初始化TH0,必须满足(TH0)=(TL0) SETB TR0 ;启动T0工作 LOOP:JBC TF0, CNT100 ;判断T0是否溢出,若TF0=0,顺序执行 ;如果TF0=1,清TF0,转移到CNT100
25、执行 ;当TF0由01时,单片机自动将(TH0)TL0 SJMP LOOP ;反复查询CNT100:LCALL CPLP10 ;TF0溢出位有效,调用计数处理子程序 SJMP LOOP ;实现产生方波脉冲的循环输出 ORG 0090H ;计数处理子程序入口地址CPLP10:CPL P1.0 ;已计数100个脉冲,取反P1.0 RET ;子程序返回 END ;汇编源文件编译结束385.3.3 5.3.3 方式方式3 3的应用举例的应用举例例例5-4 某51单片机应用系统,要求P1.0引脚以200s的周期输出方波,P1.1引脚以482s的周期输出方波,且同时以T1作为串行通信的波特率发生器。(系统
26、晶振采用12MHz,波特率为9600bps) 分析:分析:根据题目要求,至少需要三个硬件定时器/计数器完成该项工作,而51单片机内部仅仅具备两个硬件定时器/计数器。T0工作于方式3恰好可以解决此问题,应用T0实现两个硬件的8位定时器(参见图58),将T1设置为方式2(参见图510),构建三个硬件定时器,满足本题目的要求。(1) 计算定时初值X (2) 初始化定时器T1:查询方法编程。初始化T0、T1相关寄存器的初始化。TL0作为8位定时器: TH0作为8位定时器: T2为工作于方式2的定时器,波特率Xbps计算公示为: 6806100 102=2=256 1001569CH 10nTLtXT6
27、806241 102=2=256241150FH 10nTHtXT6812 10(0 1)22563253FDH384 9600bpsX39(3) 完成功能程序设计完成功能程序设计 ORG 0000H LJMP MAIN ORG 0050H MAIN:MOV SP, #60H MOV TMOD, #23H ;初始化T0定时:方式3;T1定时:方式2 MOV TCON, #00H ;初始化T0、T1相关标志位 MOV TL0, #9CH ;设置TL0的定时初值X:t=100s MOV TH0, #0FH ;设置TH0的定时初值X:t=241s MOV TL1, #0FDH ;设置波特率发生器的定
28、时初值Xbps MOV TH1, #0FDH ;设置TH1的初值,(TH1)=(TH0)=FDH SETB TR0 ;启动T0的TL0定时 SETB TR1 ;启动T0的TH0定时 LOOP:JBC TF0, TIME100 ;判断100s定时计数是否溢出,溢出转移 JBC TF1, TIME241 ;判断241s定时计数是否溢出,溢出转移 SJMP LOOP ;反复查询TIME100:MOV TL0, #9CH ;100s定时处理程序,重新装载定时参数初值 CPL P1.0 ;每个100s取反一次P1.0 SJMP LOOP ;实现周期为200s的方波脉冲的循环输出TIME241:MOV T
29、H0, #0FH ;241s定时处理程序,重新装载定时初值 CPL P1.1 ;每个241s取反一次P1.1 SJMP LOOP ;实现周期为482s方波脉冲的循环输出 END ;汇编源文件编译结束40例例5-5 5-5 测量外部信号电平宽度测量外部信号电平宽度 利用定时器T0测量 (P3.2)引脚外部输入周期性方波信号的高电平THx持续时间。(振荡频率fOSC=12MHz)图5130INT 根据题目要求,待测方波如图513所示。 由于不对低电平测量,可以应用T0门控GATE方式进行测量,设置T0为定时器模式,工作于方式1,定时初值:(TH0)=(TL0)=00H。 过程分析:过程分析: (1
30、) GATE=1, 输入为低电平时,设置TR0=1,T0停止定时。 0INT(2) GATE=1,TR0=1, 输入由01的上升沿跳变时,T0开始定时。 TH0和TL0组成的16位+1计数器从0000H开始+1计数。 0INT(3) 当 (P3.2)引脚输入由高电平低电平时,即高电平THx的下降 沿,T0停止定时,读出并存放TH0和TL0中的定时计数值,该值T 就是高电平THx的持续时间。 0INT41(3) 完成功能程序设计完成功能程序设计 CNT_H EQU 45H CNT_L EQU 44H ORG 0000H ;程序开始 LJMP MAIN ;跳转到主程序 ORG 0050H ;主程序
31、入口地址 MAIN:MOV SP,#60H ;开辟堆栈空间 MOV TMOD, #09H ;设置T0门控方式,工作于定时方式1,GATE=1 CLR A MOV TCON, A ;初始化T0相关标志位 MOV TL0, A ;初始化定时低8位初值(TL0)=00H MOV TH0, A ;初始化定时高8位初值(TH0)=00H SETB P3.2 ;设置P3.2引脚为高电平,为正确读取输入状态作好准备 JB P3.2, $ ;P3.2=0,顺序执行;P3.2=1,等待待测方波低电平的出现 SETB TR0 ;为启动T0定时计数做好准备LOOP:SETB P3.2 ;P3.2输入为0,设置P3.2=1,为正确读取输入状态作好准备 JNB P3.2, LOOP ;P3.2=0转移;P3.2=1顺序执行,并启动T0定时计数 JB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 12家乡的喜与忧 第二课时 教学设计-2023-2024学年道德与法治四年级下册统编版
- Module4 单元整体(教学设计)-2024-2025学年外研版(三起)英语五年级上册
- 9《知法守法依法维护》(第2课时)教学设计-2024-2025学年道德与法治六年级上册统编版
- 20《金字塔:不可思议的金字塔》教学设计-2023-2024学年统编版语文五年级下册
- 19 只有一个地球 教学设计-2024-2025学年语文六年级上册统编版
- 造瘘袋更换的护理
- 诊断业务趋势
- 2023六年级英语下册 Unit 2 Good habits Period 1教学设计 译林牛津版
- 讯飞智文导出
- 2023九年级物理下册 第九章 家庭用电9.2家庭电路第1课时 认识家庭电路教学设计 (新版)教科版
- 2025年山东省济南市市中区中考物理一模试卷(无答案)
- 2025年全国中小学生安全教育日专题
- 2025太阳能光热发电站熔融盐储热系统技术
- DL∕T 1751-2017 燃气-蒸汽联合循环机组余热锅炉运行规程
- JGJ33-2012 建筑机械使用安全技术规程
- 国家开放大学《理工英语3》章节测试参考答案
- 常用螺电批扭力选用对照表
- 幼儿园安全问题的研究
- 特种橡胶项目可行性分析报告(范文参考)
- 电度表检验报告格式(共4页)
- 《绿色化学原理》PPT课件.ppt
评论
0/150
提交评论