项目五定时器计数器的应用.ppt

上传人:小飞机 文档编号:5889445 上传时间:2023-08-30 格式:PPT 页数:36 大小:666KB
返回 下载 相关 举报
项目五定时器计数器的应用.ppt_第1页
第1页 / 共36页
项目五定时器计数器的应用.ppt_第2页
第2页 / 共36页
项目五定时器计数器的应用.ppt_第3页
第3页 / 共36页
项目五定时器计数器的应用.ppt_第4页
第4页 / 共36页
项目五定时器计数器的应用.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《项目五定时器计数器的应用.ppt》由会员分享,可在线阅读,更多相关《项目五定时器计数器的应用.ppt(36页珍藏版)》请在三一办公上搜索。

1、项目五 定时器/计数器的应用,任务一秒闪电路任务二按键计数器任务三 计时器,任务一秒闪电路,所谓秒闪,即1s定时闪烁电路,就是让一个发光二极管每一秒钟固定闪烁一次,实际上就是让发光二极管亮500ms,然后灭500ms,如此循环。500ms的定时可以通过软件延时的方式,也可以用单片机的内部资源定时器/计数器(P3.4和P3.5)如何实现500ms,单片机定时器计数器如何使用,与计时有关的装置,时钟交通红绿灯时间倒计时显示器知识竞赛选手回答的即时的计时显示器运动场上记录运动员成绩的秒表等等,与计数有关的装置,老年人用的步走器电动机的转速测量器等等,计时的本质是计数,计时和计数的工作可以用定时/计数

2、器来实现,定时器/计数器相关知识,定时计数的概念-一个定时/计数的形象实例,假如有一个水容器,1000滴水刚好装满,初始时已经装入500滴水,问:还需滴入多少滴水才能将其 装满?,答:还需滴入500滴水才能将其 装满,501滴溢出。,答:还需500秒时间才能将其装满,501秒溢出。,问:如果每秒滴入1滴水,还需多 长时间才能将其装满?,这就是“计数”,这就是“定时”,这就是“计数初值”,定时与计数的关系,定时/计数器:对电脉冲进行计数的单元电路。定时与计数的关系用计数器为周期性脉冲计数,产生定时。定时和计数是同一个概念,本质上定时只是计数的一个特例。,定时计数器工作时,关心问题:1、定时/计数

3、器(容器)的位宽度。2、初值(容器初始已有水滴数)的设置。3、水溢出以后的处理。,定时/计数器的计数方向、初值计算及溢出处理,计数方向加计数:每个脉冲计数器加1减计数:每个脉冲计数器减1。计数器的容量:计数器有一定的计数范围(脉冲计数的最大个数),由计数器的位宽度决定。2n=X初值+要求(计数或定时)X初值=2n 要求(计数或定时)计数器的溢出:不同CPU计数器的容量不同,若为16位,则计数容量最大可存放数值为65535,65536为刚好溢出时的值。当加到计数器为全1时,再输入一个脉冲就使计数器回零并溢出。计数器溢出会产生溢出位,作为程序处理溢出的标记。,1 定时器/计数器的结构,两个可编程的

4、定时器/计数器T1、T0。,控制T0、T1的启动和停止计数,并包含了 T0、T1的状态。,2种工作模式:(1)计数器工作模式(2)定时器工作模式4种工作方式(方式0-方式3)。,(1)GATE门控位 0:以TRx(x=0,1)来启动定时器/计数器运行。1:用外中断引脚(INTx*)上的高电平和TRx来启动定时器/计数器运行。(3)C/T*计数器模式和定时器模式选择位0:定时器模式。1:计数器模式。(2)M1、M0工作方式选择位 M1 M0 工 作 方 式 0 0 方式0,13位定时器/计数器。0 1方式1,16位定时器/计数器。1 0 方式2,8位常数自动重新装载 1 1 方式3,仅适用于T0

5、,T0分成两个8位计数器,T1停 止计数。,1.1 工作方式控制寄存器TMOD,低4位与外部中断有关,已介绍。高4位的功能如下:(1)TF1、TF0计数溢出标志位(2)TR1、TR0计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作,1.2 定时器/计数器控制寄存器TCON,(1)方式0 M1M0=00工作原理,13位的定时计数器,由TH的8位和TL的低5位组成,定时/计数器方式0逻辑图,1,1,1,“+1”,中断,TL40,(以T1为例T0原理相同)。,TF1,“+1”,“+1”,2定时器/计数器的4种工作方式,(2)方式1 M1M0=01工作原理,16位的定时计数器,由

6、TH1的8位和TL1的8位组成,定时/计数器方式1逻辑图,“+1”,1,(以T1为例,T0原理相同),中断,TF1,“+1”,“+1”,方式2 M1M0=10,可自动重装载的8位计数器,TH1(TH0)被定义为赋值寄存器,TL1(TL0)被定义为计数器,定时/计数器方式2逻辑图,重装载,1,“+1”,以T1为例:,中断,TF1,“+1”,“+1”,定时器/计数器的方式2工作过程如图所示(x=0,1)。省去用户软件中重装初值的程序,定时精确。,增加一个附加的8位定时器/计数器,从而具有3个定时器/计数器。只适用于定时器/计数器T0。T1不能工作在方式3,T1方式3时相当于TR1=0,停止计数(此

7、时T1可用来作串行口波特率产生器)。,(4)方式3 M1M0=11,外部计数脉冲的最高频率为系统振荡器频率的1/24,例如选用12MHz频率的晶体,则可输入500KHz的外部脉冲。输入信号的高、低电平至少要保持一个机器周期。如图所示,图中Tcy为机器周期。,3 定时器/计数器对输入信号的要求,4定时器/计数器1的应用,(1)设定单片机定时/计数器的工作方式,定时还是计数。(2)计算定时/计数器中的计数初值,并装载到TH和TL。(3)开启定时/计数器。(4)判断时间到否(查询或中断),若用中断需设IE寄存器。(5)时间到后处理,TMOD,例:使定时/计数器1工作在方式1,定时时间50ms。1)方

8、式寄存器TMOD的设置执行:TMOD0 x10;,2)设定时间常数 假设时间常数寄存器TH1和TL1设为“0000H”,机器周期为1us,最大定时为65536*1us=65.536ms,现定时为50ms,则 TH1和TL1的初始值为65536-50000=15536=3CB0H。执行:TH1=(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,就

9、需重复从3CB0H继续对机器周期计数,即恢复初始值。执行:TH1=(65536-50000)/256;或 TH1-50000/256;TL1=(65536-50000)%256;TL1-50000%256;,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的定

10、时,该如何修改程序?,秒闪电路软件设计,500ms定时设计思路 51的定时/计数器是16位的,最多能够计数65536个机器周期,若每个机器周期为1s,只能计时0.065536s,达不到要求的1s,对长时间的定时(超过定时器本身最大的定时时间)一般采用基本定时(由定时器完成)加软件计时的方法实现。基本定时加软件计数的方法是有关时间尤其是长时间定时中最常用的方法。,例如,基本定时50ms,用软件计数10次即为500ms,只要基本定时准确,那么500ms的定时就是准确的。怎样检测基本定时是否达到呢?A)程序查询溢出位,当TFx为“1”即表示时间到,软件计数可加1,这种方式较简单,但往往达不到用定时器

11、提高CPU效率的目的;B)中断方式,当定时达到后,TFx为“1”,向CPU提出中断请求,这时CPU可执行计数加1的操作。查询方式就好比为了知道时间到否,而不断的去看钟:而中断方式好比是个带闹铃的钟,设置好后就可不管它了,时间到了会有铃声提醒。,查询方式,中断方式,任务二按键计数器,未按下按键,数码管无显示;当第一次按下按键时,数码管显示1,依次类推,当按下9次后,重新对按键次数进行计数。单片机构成最小系统;P3.4或P3.5接一按键,P0口接一数码管。,硬件设计,软件设计,任务三 计时器,一、基本要求,LED计时显示器的基本功能为:(1)有2位数码显示,可显示099共100个数字(2)显示的最

12、大值在程序中给定(3)有一个小键盘,上面有4个单键,分别为开始键、暂停键、清零键和复位键。(4)操作过程如下:开始键:开始计时显示,每秒钟显示数字加1;暂停键:按下时计时显示停止,松开后继续显示;清零键:中止计时,显示“00”;复位键:停止计时,显示设定值。,根据要求知首先要设计一个秒计数器,然后可对其进行累加。如何得到秒计时是解决本问题的关键,即设计要点。通过软件延时的方式 通过单片机中的定时/计数器部件,二、设计要点,1)功能描述用定时器设计一个2为LED计时显示器,功能如下:(1)计时由0开始,计时的终值在程序中给定,开机后即显示终值。(2)按下“开始”键后,1s后显示数值加1。(3)按

13、下“暂停”键后,显示停止,松开“暂停”键后继续显示。(4)按下“清零”键后,显示“00”。(5)按下“复位”键后,回到初始状态。(6)计时到终值后返回初始状态,等待重新开始。,三、项目实现(用定时/计数器实现),2)设计思路 51的定时/计数器是16位的,最多能够计数65536个机器周期,若每个机器周期为1s,只能计时0.065536s,达不到要求的1s,对长时间的定时(超过定时器本身最大的定时时间)一般采用基本定时(由定时器完成)加软件计时的方法实现。基本定时加软件计数的方法是有关时间尤其是长时间定时中最常用的方法。,例如,基本定时50ms,用软件计数20次即为1s,只要基本定时准确,那么1

14、s的定时就是准确的。,3)硬件电路设计 根据要求知所需器件:4个按键,2个数码管,1个扬声器,若干电阻、电容等。,用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)程序流程,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号