《项目五定时器计数器的应用.ppt》由会员分享,可在线阅读,更多相关《项目五定时器计数器的应用.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、项目五项目五 定时器定时器/计数器的应用计数器的应用项目五 定时器/计数器的应用任务一任务一秒闪电路秒闪电路任务二任务二按键计数器按键计数器任务三任务三 计时器计时器项目五项目五 定时器定时器/计数器的应用计数器的应用任务一任务一秒闪电路秒闪电路所谓秒闪,即1s定时闪烁电路,就是让一个发光二极管每一秒钟固定闪烁一次,实际上就是让发光二极管亮500ms,然后灭500ms,如此循环。500ms的定时可以通过软件延时的方式,也可以用单片机的内部资源定时器/计数器(P3.4和P3.5)如何实现500ms,单片机定时器计数器如何使用项目五项目五 定时器定时器/计数器的应用计数器的应用与计时有关的装置时钟
2、交通红绿灯时间倒计时显示器知识竞赛选手回答的即时的计时显示器运动场上记录运动员成绩的秒表等等与计数有关的装置老年人用的步走器电动机的转速测量器等等计时的本质是计数,计时和计数的工作可以用定时/计数器来实现定时器定时器/计数器相关知识计数器相关知识项目五项目五 定时器定时器/计数器的应用计数器的应用定时计数的概念-一个定时/计数的形象实例假假如如有有一一个个水水容容器器1000滴水刚好装满滴水刚好装满初始时已经装入初始时已经装入500滴水滴水问:还需滴入多少滴水才能将其问:还需滴入多少滴水才能将其 装满?装满?答:还需滴入答:还需滴入500滴水才能将其滴水才能将其 装满,装满,501滴溢出。滴溢
3、出。答:还需答:还需500秒时间才能将其装秒时间才能将其装满,满,501秒溢出。秒溢出。问:如果每秒滴入问:如果每秒滴入1滴水,还需多滴水,还需多 长时间才能将其装满?长时间才能将其装满?这就是这就是“计数计数”这就是这就是“定时定时”这就是这就是“计数初值计数初值”项目五项目五 定时器定时器/计数器的应用计数器的应用定时与计数的关系定时/计数器:对电脉冲进行计数的单元电路。定时与计数的关系用计数器为周期性脉冲计数,产生定时。定时和计数是同一个概念,本质上定时只是计数的一个特例。定时计数器工作时,关心问题:1、定时/计数器(容器)的位宽度。2、初值(容器初始已有水滴数)的设置。3、水溢出以后的
4、处理。项目五项目五 定时器定时器/计数器的应用计数器的应用定时/计数器的计数方向、初值计算及溢出处理计数方向加计数:每个脉冲计数器加1减计数:每个脉冲计数器减1。计数器的容量:计数器有一定的计数范围(脉冲计数的最大个数),由计数器的位宽度决定。2n=X初值+要求(计数或定时)X初值=2n 要求(计数或定时)计数器的溢出:不同CPU计数器的容量不同,若为16位,则计数容量最大可存放数值为65535,65536为刚好溢出时的值。当加到计数器为全1时,再输入一个脉冲就使计数器回零并溢出。计数器溢出会产生溢出位,作为程序处理溢出的标记。项目五项目五 定时器定时器/计数器的应用计数器的应用1 定时器定时
5、器/计数器的结构计数器的结构两个可编程的定时器两个可编程的定时器/计数器计数器T1T1、T0T0。控制控制T0T0、T1T1的启动和停的启动和停止计数,并止计数,并包含了包含了 T0T0、T1T1的状态的状态。2 2种种工作模式工作模式:(1 1)计数器工作模式)计数器工作模式(2 2)定时器工作模式)定时器工作模式4 4种种工作方式工作方式(方式方式0-0-方式方式3)3)。项目五项目五 定时器定时器/计数器的应用计数器的应用(1 1)GATEGATE门控位门控位 0 0:以以TRxTRx(x=0,1x=0,1)来启动定时器来启动定时器/计数器运行。计数器运行。1 1:用外中断引脚用外中断引
6、脚(INTxINTx*)*)上的高电平和上的高电平和TRxTRx来启动定时器来启动定时器/计数计数器运行。器运行。(3)C/T*(3)C/T*计数器模式和定时器模式选择位计数器模式和定时器模式选择位0 0:定时器模式。定时器模式。1 1:计数器模式。计数器模式。(2 2)M1M1、M0M0工作方式选择位工作方式选择位 M1 M0 M1 M0 工工 作作 方方 式式 0 0 0 0 方式方式0 0,1313位定时器位定时器/计数器。计数器。0 10 1方式方式1 1,1616位定时器位定时器/计数器。计数器。1 0 1 0 方式方式2 2,8 8位常数自动重新装载位常数自动重新装载 1 1 1
7、1 方式方式3 3,仅适用于,仅适用于T0T0,T0T0分成两个分成两个8 8位计数器,位计数器,T1T1停停 止计数。止计数。1.1 1.1 工作方式控制寄存器工作方式控制寄存器TMODTMOD项目五项目五 定时器定时器/计数器的应用计数器的应用低低4 4位与外部中断有关,已介绍。高位与外部中断有关,已介绍。高4 4位的功能如下:位的功能如下:(1)TF1(1)TF1、TF0TF0计数溢出标志位计数溢出标志位 (2)TR1(2)TR1、TR0TR0计数运行控制位计数运行控制位 1 1:启动定时器启动定时器/计数器工作计数器工作 0 0:停止定时器停止定时器/计数器工作计数器工作1.2 1.2
8、 定时器定时器/计数器控制寄存器计数器控制寄存器TCONTCON项目五项目五 定时器定时器/计数器的应用计数器的应用(1)(1)方式方式方式方式0 M1M0=000 M1M0=00工作原理工作原理工作原理工作原理 1313位的定时计数器,由位的定时计数器,由位的定时计数器,由位的定时计数器,由THTH的的的的8 8位和位和位和位和TLTL的低的低的低的低5 5位组成位组成位组成位组成T1T1(P P 3.53.5)GATEGATETR1TR1INT1INT1震荡器震荡器震荡器震荡器1212TL1TL15 5位位位位TH1TH18 8位位位位TF1TF1中中中中断断断断KKC/T=0C/T=0C
9、/T=1C/T=1控制控制控制控制定时定时定时定时/计数器方式计数器方式计数器方式计数器方式0 0逻辑图逻辑图逻辑图逻辑图1 11 11 1“+1+1”中中中中断断断断TLTL4 40 0(以(以(以(以T1T1为例为例为例为例T0T0原理相同)。原理相同)。原理相同)。原理相同)。1313位计数器位计数器位计数器位计数器TF1TF1“+1+1”“+1+1”2 2定时器定时器/计数器的计数器的4 4种工作方式种工作方式项目五项目五 定时器定时器/计数器的应用计数器的应用(2)(2)方式方式方式方式1 M1M0=011 M1M0=01工作原理工作原理工作原理工作原理 1616位的定时计数器,由位
10、的定时计数器,由位的定时计数器,由位的定时计数器,由TH1TH1的的的的8 8位和位和位和位和TL1TL1的的的的8 8位组成位组成位组成位组成T1T1(P P 3.53.5)GATEGATETR1TR1INT1INT1震荡器震荡器震荡器震荡器1212TL1TL18 8位位位位TH1TH18 8位位位位TF1TF1中中中中断断断断KKC/T=0C/T=0C/T=1C/T=1控制控制控制控制 定时定时定时定时/计数器方式计数器方式计数器方式计数器方式1 1逻辑图逻辑图逻辑图逻辑图1616位计数器位计数器位计数器位计数器“+1+1”1 1(以(以(以(以T1T1为例,为例,为例,为例,T0T0原理
11、相同)原理相同)原理相同)原理相同)中中中中断断断断TF1TF1“+1+1”“+1+1”项目五项目五 定时器定时器/计数器的应用计数器的应用 方式方式方式方式2 M1M0=10 2 M1M0=10 可可可可自动自动自动自动重装载重装载重装载重装载的的的的8 8位计数器位计数器位计数器位计数器TH1TH1(TH0TH0)被定义为赋值寄存器被定义为赋值寄存器被定义为赋值寄存器被定义为赋值寄存器TL1TL1(TL0TL0)被定义为计数器被定义为计数器被定义为计数器被定义为计数器定时定时定时定时/计数器方式计数器方式计数器方式计数器方式2 2逻辑图逻辑图逻辑图逻辑图 T1(P T1(P3.53.5)G
12、ATEGATETR1 TR1 INT1INT1震荡器震荡器震荡器震荡器1212TL1TL18 8位位位位TF1TF1中中中中断断断断KKC/T=0C/T=0C/T=1C/T=1控制控制控制控制TH1TH18 8位位位位重装载重装载重装载重装载重装载重装载重装载重装载1 1“+1+1”以以以以T1T1为例:为例:为例:为例:中中中中断断断断TL1TL1 8 8位位位位TF1TF1“+1+1”“+1+1”项目五项目五 定时器定时器/计数器的应用计数器的应用定时器/计数器的方式2工作过程如图所示(x=0,1)。省去用户软件中重装初值的程序,定时精确。项目五项目五 定时器定时器/计数器的应用计数器的应
13、用 增加一个增加一个附加附加的的8 8位定时器位定时器/计数器,从而具有计数器,从而具有3 3个定个定时器时器/计数器。只适用于定计数器。只适用于定时器时器/计数器计数器T0T0。T1T1不能工不能工作在方式作在方式3 3,T1T1方式方式3 3时相时相当于当于TR1=0TR1=0,停止计数(此停止计数(此时时T1T1可用来作串行口波特可用来作串行口波特率产生器)。率产生器)。(4)(4)方式方式方式方式3 M1M0=113 M1M0=11项目五项目五 定时器定时器/计数器的应用计数器的应用 外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/241/24,例如
14、选用例如选用12MHz12MHz频率的晶体,则可输入频率的晶体,则可输入500KHz500KHz的外部脉冲。的外部脉冲。输入信号的高、低电平至少要保持一个机器周期。输入信号的高、低电平至少要保持一个机器周期。如图所示,图中如图所示,图中TcyTcy为机器周期。为机器周期。3 3 定时器定时器/计数器对输入信号的要求计数器对输入信号的要求项目五项目五 定时器定时器/计数器的应用计数器的应用4 4定时器定时器/计数器计数器1 1的应用的应用(1)设定单片机定时/计数器的工作方式,定时还是计数。(2)计算定时/计数器中的计数初值,并装载到TH和TL。(3)开启定时/计数器。(4)判断时间到否(查询或
15、中断),若用中断需设IE寄存器。(5)时间到后处理TMOD项目五项目五 定时器定时器/计数器的应用计数器的应用例:使定时/计数器1工作在方式1,定时时间50ms。1)方式寄存器TMOD的设置执行:TMOD0 x10;D7D6D5D4D3D2D1D0GATE C/M1M0GATE C/M1M00001XXXX项目五项目五 定时器定时器/计数器的应用计数器的应用2)设定时间常数 假设时间常数寄存器TH1和TL1设为“0000H”,机器周期为1us,最大定时为65536*1us=65.536ms,现定时为50ms,则 TH1和TL1的初始值为65536-50000=15536=3CB0H。执行:TH
16、1=(65536-50000)/256;或 TH1-50000/256;TL1=(65536-50000)%256;TL1-50000%256;3)开启定时器 TR1=1;4)用查询方式判断时间是否到了TF=1表示时间到。当TF=1后要清除TF标志。项目五项目五 定时器定时器/计数器的应用计数器的应用5)时间到 T1设定的时间到后如果仍需继续定时50ms,就需重复从3CB0H继续对机器周期计数,即恢复初始值。执行:TH1=(65536-50000)/256;或 TH1-50000/256;TL1=(65536-50000)%256;TL1-50000%256;项目五项目五 定时器定时器/计数器
17、的应用计数器的应用void D50MS()TMOD=0 x10;/设定定时器1工作于定时方式1 TH1=(65536-50000)/256;TL1=(65536-50000)%256;/设定时间常数为50ms TR1=1;/开启定时/计数器1 while(TF1)TF1=0;TR1=0;/查询方式判断时间到否?项目五项目五 定时器定时器/计数器的应用计数器的应用思考、定时器有中断方式,用中断方式如何实现50ms定时呢?、若要实现秒闪电路中的500ms的定时,该如何修改程序?项目五项目五 定时器定时器/计数器的应用计数器的应用秒闪电路软件设计500ms定时设计思路 51的定时/计数器是16位的,
18、最多能够计数65536个机器周期,若每个机器周期为1s,只能计时0.065536s,达不到要求的1s,对长时间的定时(超过定时器本身最大的定时时间)一般采用基本定时(由定时器完成)加软件计时的方法实现。基本定时加软件计数的方法是有关时间尤其是长时间定时中最常用的方法。项目五项目五 定时器定时器/计数器的应用计数器的应用 例如,基本定时50ms,用软件计数10次即为500ms,只要基本定时准确,那么500ms的定时就是准确的。怎样检测基本定时是否达到呢?A)程序查询溢出位,当TFx为“1”即表示时间到,软件计数可加1,这种方式较简单,但往往达不到用定时器提高CPU效率的目的;B)中断方式,当定时
19、达到后,TFx为“1”,向CPU提出中断请求,这时CPU可执行计数加1的操作。查询方式就好比为了知道时间到否,而不断的去看钟:而中断方式好比是个带闹铃的钟,设置好后就可不管它了,时间到了会有铃声提醒。项目五项目五 定时器定时器/计数器的应用计数器的应用查询方式中断方式项目五项目五 定时器定时器/计数器的应用计数器的应用任务二任务二按键计数器按键计数器未按下按键,数码管无显示;当第一次按下按键时,数码管显示1,依次类推,当按下9次后,重新对按键次数进行计数。单片机构成最小系统;P3.4或P3.5接一按键,P0口接一数码管。硬件设计项目五项目五 定时器定时器/计数器的应用计数器的应用软件设计项目五
20、项目五 定时器定时器/计数器的应用计数器的应用任务三任务三 计时器计时器项目五项目五 定时器定时器/计数器的应用计数器的应用一、基本要求LED计时显示器的基本功能为:(1)有2位数码显示,可显示099共100个数字(2)显示的最大值在程序中给定(3)有一个小键盘,上面有4个单键,分别为开始键、暂停键、清零键和复位键。(4)操作过程如下:开始键:开始计时显示,每秒钟显示数字加1;暂停键:按下时计时显示停止,松开后继续显示;清零键:中止计时,显示“00”;复位键:停止计时,显示设定值。项目五项目五 定时器定时器/计数器的应用计数器的应用 根据要求知首先要设计一个秒计数器,然后可对其进行累加。如何得
21、到秒计时是解决本问题的关键,即设计要点。通过软件延时的方式 通过单片机中的定时/计数器部件二、设计要点项目五项目五 定时器定时器/计数器的应用计数器的应用1)功能描述用定时器设计一个2为LED计时显示器,功能如下:(1)计时由0开始,计时的终值在程序中给定,开机后即显示终值。(2)按下“开始”键后,1s后显示数值加1。(3)按下“暂停”键后,显示停止,松开“暂停”键后继续显示。(4)按下“清零”键后,显示“00”。(5)按下“复位”键后,回到初始状态。(6)计时到终值后返回初始状态,等待重新开始。三、项目实现(用定时/计数器实现)项目五项目五 定时器定时器/计数器的应用计数器的应用2)设计思路
22、 51的定时/计数器是16位的,最多能够计数65536个机器周期,若每个机器周期为1s,只能计时0.065536s,达不到要求的1s,对长时间的定时(超过定时器本身最大的定时时间)一般采用基本定时(由定时器完成)加软件计时的方法实现。基本定时加软件计数的方法是有关时间尤其是长时间定时中最常用的方法。项目五项目五 定时器定时器/计数器的应用计数器的应用 例如,基本定时50ms,用软件计数20次即为1s,只要基本定时准确,那么1s的定时就是准确的。项目五项目五 定时器定时器/计数器的应用计数器的应用3)硬件电路设计 根据要求知所需器件:4个按键,2个数码管,1个扬声器,若干电阻、电容等。项目五项目
23、五 定时器定时器/计数器的应用计数器的应用用P1.0P1.3这4个接口作为输入,接四个按键,即S1、S2、S3、S4S设定为“启动”、“暂停”、“清零”和“复位”功能。P3.4作为输出接蜂鸣器,时间到响铃提醒。P0口接显示数字的十位,P2口接显示数字的各位.项目五项目五 定时器定时器/计数器的应用计数器的应用4)程序流程思路:延时1s的子程序(TDELAY):采用定时器1定时方式1实现50ms定时,软件计数20次实现。2位数显示子程序:先将要显示的十六进制数转化为十进制数再显示,看到的是十进制数效果。十六进制数转化为十进制数采用的是除10取余的方法。如,十六进制数0CH,除10(0AH),得到商为1(十进制数的十位),余数为2(十进制数的个位)。用查询方式判断4个按键“开始”“暂停”“清零”“复位”的释放与按下。程序的关键之处在于“定时器初始化”和延时1s,计时器加1部分的功能实现,按键处理采用分支程序设计。该程序的定时器时间到否采用的是程序查询方式。项目五项目五 定时器定时器/计数器的应用计数器的应用4)程序流程
限制150内