定时器计数器.ppt

上传人:本田雅阁 文档编号:3113193 上传时间:2019-07-10 格式:PPT 页数:55 大小:875.52KB
返回 下载 相关 举报
定时器计数器.ppt_第1页
第1页 / 共55页
定时器计数器.ppt_第2页
第2页 / 共55页
定时器计数器.ppt_第3页
第3页 / 共55页
定时器计数器.ppt_第4页
第4页 / 共55页
定时器计数器.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《定时器计数器.ppt》由会员分享,可在线阅读,更多相关《定时器计数器.ppt(55页珍藏版)》请在三一文库上搜索。

1、第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,第一章 概述,实现定时常用的三种方法:,软件定时 不可编程的硬件定时 可编程芯片定时,8.1 概述,第一章 概述,1. 软件定时,执行指令所花费的时间来构成一定的时间间隔,从而达到定时的目的。 例如: MOV R0,50H DELAY:NOP DJMZ R0, DELAY 优点:不需要专门的硬件设备。 缺点:浪费了宝贵的CPU资源,效率低。,第一章 概述,2.不可编程的硬件定时,如555电路,外接必要的元器件,即可构成硬件定时电路。但硬件连接好后,定时不能由软件

2、控制,即不可编程。,3.可编程芯片定时,定时值和定时范围容易用软件来确定和修改,使用灵活。在单片机的定时/计数器不够用时,需另外扩展。,第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,第一章 概述,8.2 定时/计数器的结构和工作原理,1、51单片机内部有2个16位的定时/计数器,结构如下:,第一章 概述,2、定时/计数器的工作原理,计数器脉冲来源:T0或T1引脚输入的外部事件脉冲信号,每来一个脉冲,计数器加1。 计数器溢出:计数器全1时,再来1个脉冲就计满回零,并产生溢出中断请求。,计数值N = 计数器当前

3、值Nc - 计数初值x,(1)计数原理,计数值N = 溢出时计数器值(2n) - 计数初值x,第一章 概述,定时时间 t 计数值N x 计数脉冲周期T,若 MCS-51主频为12MHz,机器周期为1s,即12MHz晶振时,每1s定时器完成加1操作。,(2)定时原理,定时器脉冲来源:系统时钟振荡器。 定时时间:定时器对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。,第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,第一章 概述,8.3 定时/计数器的控制,51单片机定时/计数

4、器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。,第一章 概述,M1、M0:工作方式设置位,1、工作方式寄存器TMOD,TMOD (89H),第一章 概述,C/T :计数器/定时器选择位 = 0, 定时器(内部时钟信号) = 1, 计数器(外部计数脉冲),GATE:门控位 = 0,启动/停止仅由软件对TRx位写“1”/“0”控制 = 1,启动/停止由软件对TRx位写“1”/“0” 和在外中断INTx引脚出现信号的高/低共同控制,TMOD (89H),第一章 概述,(1)TFx定时器的溢出标志位 =0,计数未满。=1,计数溢出 溢出中断服务程序时会

5、自动清零;但查询时必须软件清零。 (2)TRx定时器运行控制位 =0,停止计数。=1,启动计数 低4位与外部中断有关。,2、控制寄存器TCON,第一章 概述,(1)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式: IT0=0(电平触发),IT0=1(脉冲触发),可由软件设置。 (2)IE0外部中断请求0的中断请求标志位。 IE0=0,无中断请求。IE0=1,有中断请求。 (3)IT1与IT0类似。 (4)IE1与IE0类似。,各标志位的功能:,复习,第一章 概述,(1)EA:中断允许总控制位(总开关) 0:CPU屏蔽所有的中断请求(CPU关中断); 1:CPU开放所有中断(CPU开中断

6、),但中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。 (2)ES:串行口中断允许位(0:禁止,1:允许) (3)ET1ET0:定时器/计数器T1T0的溢出中断允许位 (4)EX1EX0:外部中断10的中断允许位,复习,中断允许寄存器IE,CPU对中断源的开放或屏蔽。,第一章 概述,(1)方式0,3. 定时器计数器的工作方式,方式 0(13位计数器),第一章 概述,计数个数:Nt / Tcy 初值:a213N=8192-N,GATE=0时,仅由TR0控制与门的开启; GATE=1时,与门开启,由INTx引脚信号和TR0共同控制。通常用于测量外部输入信号的脉冲宽度。,注意门控位GAT

7、E的作用:,第一章 概述,(2)方式1,方式 1(16位计数器),计数初值:a216N=65536-N,第一章 概述,(3)方式2,方式 2(初值自动重装的8位计数器),计数初值:a28N=256-N,第一章 概述,(4)方式3,T0分成为两个独立的8位计数器TL0和TH0 。此时T1无中断可用。,第一章 概述,方式0:1-8192; 方式1:1-65536; 方式2:1-256;,定时时间 t 计数值N x 计数脉冲周期T,计数值N的取值范围:,计数值N = 溢出时计数器值(2n) - 计数初值x,计数初值,第一章 概述,定时/计数器初始化程序: 确定工作方式(对TMOD赋值) 计算初值(写

8、入TH0、TL0或TH1、TL1) 开中断(对IE赋值) 启动定时/计数器(TR0或TR1置位),4. 定时/计数器应用举例,第一章 概述,例:用T0的方式0产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。采用中断方式,设系统时钟频率为6 MHz。,20ms,第一章 概述,解:1、计算计数初值X 晶振为6MHz,故机器周期T为2s。 Nt/ T 1010-3/210-6= 5000 a213500031920C78H 即应将63H(高8位)送入TH0中,18H(低5位)送入TL0中.,第一章 概述,ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0

9、ORG 0100H MAIN:MOV TMOD,#00H MOV TH0,#63H MOV TL0,#18H SETB ET0 SETB EA SETB TR0 SJMP $,DVT0:CPL P1.0 MOV TH0,#63H MOV TL0,#18H RETI END,采用中断方式:,第一章 概述,ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV TMOD,#00H ;设置T0 LOOP: MOV TH0,#63H ;计数初值 MOV TL0,#18H MOV IE,#00H ;禁止中断 SETB TR0 ;启动定时 JNB TF0,$ ;查询计数溢出 CLR

10、 TF0 ;清溢出标志 CPL P1.0 ;取反输出 SJMP LOOP ;重复循环 END,采用查询方式:,第一章 概述,例:已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。 假定红灯亮时停止统计, 红灯灭时才在上次统计结果的基础上继续统计, 试用单片机定时器 /计数器T1的方式1完成该项产品的计数任务。,第一章 概述,方式 1(16位计数器),第一章 概述,(3) 启动T1计数, 开T1中断。,第一章 概述,程序编写:,ORG 0000H AJMP START ; 复位入口 ORG 001BH AJMP T1INT ; T1中断入口

11、ORG 0100H START: MOV TMOD, 0D0H ; 初始化程序 MOV TH1, 00H MOV TL1, 00H MOV R0, 00H ; 清中断次数计数单元,第一章 概述,SETB ET1 ; 开T1中断 SETB EA ; 开总中断 SETB TR1 ; 启动T1 MAIN: ACALL DISP ; 主程序, 调显示子程序 ORG 0A00H T1INT: INC R0 ; 中断服务子程序 RETI DISP: ; 显示子程序 RET,第一章 概述,例:用于外部中断扩展(P185) 假设有一个用户系统中已使用了两个外部中断源。现要求再增加一个外部中断源, 并由 P1.

12、0 口输出一个 5 Hz的方波(假设晶振频率为 6 MHz)。,分析: T0 置于工作方式3,把 TL0 预置为 0FFH, 当T0 端出现由1至0 的负跳变时, TL0 立即溢出, 申请中断, 相当于边沿触发的外部中断源。 在方式3下, TH0 总是作 8 位定时器用, 可以靠它来控制由 P1.0 输出的 5 kHz方波。 ,第8章 定时器计数器,8.1 概述,8.2 定时/计数器的结构和工作原理,8.3 定时/计数器的控制,8.4 定时/计数器的功能扩展,第一章 概述,8.4 定时/计数器的功能扩展,一、8253的主要功能,具有3个独立的16位计数器; 每个计数器都可按二进制或BCD码进行

13、计数; 每个计数器有6种工作方式;,第一章 概述,1. 8253内部结构图,图:8253的内部结构,2)缓冲器。8253与CPU数据总线连接的8位双向三态缓冲器,3)读/写逻辑。8253内部操作的控制部分。读数据由8253传向CPU,写数据由CPU传向8253。,4)控制寄存器。在8253初始化编程时,由CPU写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读出,1)计数器0、1、2。三个独立的16位可预置值的减1计数器,第一章 概述,2. 8253外部引脚,第一章 概述,3. 8253的控制字,第一章 概述,例:设8253的端口地址是8000h-8003h,计数器1工作在方式0,按二

14、进制计数,计数初值为4。写出初始化程序。,1.控制字为01010000B=50H。 2.计数初值为4。 3.初始化程序为: MOV DPTR,#8003H ;控制寄存器地址送DPTR MOV A,#50H ;设置控制字 MOVX DPTR,A ;送控制寄存器 MOV DPTR,#8001H ;T1计数器地址送DPTR MOV A,#4 ;设置计数初值 MOVX DPTR,A ;送计数器1,启动计数,第一章 概述,4. 8253的工作方式,方式0 计数结束中断方式 方式1 可编程单拍脉冲方式 方式2 频率发生器(n分频器) 方式3 方波发生器 方式4 软件触发选通工作方式 方式5 硬件触发选通工

15、作方式,第一章 概述,5. 8253的初始化编程,(1) 写入每个计数器的控制字,规定计数器的工作方式; (2) 写入计数初值。 若规定只写低8位,则写入的为计数值的低8位,高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位,低8位自动置0; 若是16位计数值,则分两次写入,先写入低8位,再写入高8位。,第一章 概述,例:设8253计数器1工作于方式0,按BCD码计数,计数初值为400,端口地址为8000H-8003H。写出8253的初始化程序。,解: 1)控制字为01110001B=71H。写入控制寄存器,端口地址为8003H。 2)计数初值为400,由于采用BCD码计数,故按BC

16、D码方式组成0400H,送入计数器1的数据端口,地址为8001H,16位数送两次,先送低00H,再送高8位04H。,第一章 概述,3)初始化程序 MOV DPTR,#8003H MOV A,#71H MOVX DPTR,A ;把控制字写入端口 MOV DPTR,#8001H MOV A,#00H MOVX DPTR,A ;先写低8位计数值 MOV A,#04H MOVX DPTR,A ;然后写高8位计数值,第一章 概述,1、重点掌握51系列单片机内部2个16位的定时计数器,有四种不同的工作方式。 2、了解8253的功能、工作方式及应用等。,本章小结,第一章 概述,方式0计完最后一个数时中断,当

17、CPU写控制字之后,OUT输出端变低,但计数器没有赋予初值,也没开始计数。 要开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT一直维持为低,直到计数到“0”时。OUT输出变高。,第一章 概述,方式0的基本时序,第一章 概述,当CPU写控制字之后,输出为高。 当CPU写完计数值后,计数器并不开始计数,直到GATE的上升沿出现时,输出OUT变低。 因整个计数过程中,OUT都维持为低,直到计数到0,输出为高,因此输出为一个单拍脉冲。若外部再次启动GATE,则可以再产生一个单拍脉冲。,方式1可编程的单拍脉冲,第一章 概述,方式1的基本时序,GATE上升沿后的下

18、一个CLK脉冲的下降沿开始计数。 GATE每启动一次,就重新开始计数。,第一章 概述,在计数过程中,若GATE变为低电平,停止计数,OUT保持为高电平。 GATE恢复到高电平时,计数器装入初值重新开始计数,计数到1时,输出低电平,经过一个CLK周期,输出恢复为高,且计数器自动开始重新计数。,方式2速率发生器,第一章 概述,方式2的基本时序,当GATE为低电平时,计数停止。,计数器自动开始重新计数。,第一章 概述,方式3和方式2的输出都是周期性的,主要区别:方式3输出有一半时间为高,另一半时间为低。 (1)当计数值n为偶数时,输出对称方波,在前n/2计数值时输出高电平,后n/2计数值时输出低电平

19、; (2)当计数值n为奇数时,在前(n+1)/2计数值时输出高电平,后(n-1)/2计数值时输出低电平。,方式3方波速率发生器,第一章 概述,计数值分别为4和5的两种情况。,方式3的基本时序,当GATE为低电平时,计数停止。,第一章 概述,当写入控制字后,输出为高。当写入计数值后立即开始计数,计数到0后,输出变低,经过一个输入时钟周期,输出又变高,计数器停止计数。 一次性计数,只有在输入新的计数值后,才开始新的计数。 计数期间,GATE出现低电平时,计数器停止工作,但GATE恢复高电平后,又从原设定的计数值开始重新计数。,方式4软件触发选通,第一章 概述,方式4的基本时序,第一章 概述,写入控制字后,输出为高。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲GATE的上升沿触发启动。当计数到0时,输出变低,经过一个CLK脉冲,输出恢复为高,停止计数。要等到下次GATE信号的触发才能再计数。 在计数期间,GATE变为低电平时,不禁止计数,但GAET再次出现上升沿,则重新按原设定的计数值开始计数。,方式5硬件触发选通,第一章 概述,方式5的基本时序,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1