专题5定时器计数器o.ppt

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

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

1、6.1 定时器/计数器的结构及工作原理 6.2 定时器/计数器的方式与控制 6.3 定时器/计数器应用举例,第6章 定时器/计数器,6.1 定时器/计数器的结构及工作原理,6.1.1系统结构 1、组成2个16位的定时/计数器 T0:TH0+TL0 T1:TH1+TL1 2、工作模式:(软件设置TMOD) (1)定时器/计数器 (2)方式0、1、2、3,启停控制 溢出控制 初值设定,6.1.2工作原理,1、定时器模式 从初始值开始,对机器周期计数,记满溢出,自动产生中断。,单片机中独立的自动运行部件,加法计数。,2、计数器模式 对外部脉冲计数。,计数周期不同,设最大值为 M, 计数值为 N, 初

2、值为 X, 则 X的计算方法如下: 计数状态: X=MN 定时状态: X=M定时时间/T 而 T=12晶振频率,初值的设定,加法计数器是计满溢出时才申请中断, 所以在给计数器赋初值时, 不能直接输入所需的计数值。,输入的是计数器计数的最大值与这一计数值的差值,图 6.2 TMOD各位定义,6.2 方式与控制,6.2.1 方式控制寄存器 一、 工作方式寄存器TMOD,1、M1M0工作方式控制位,2、C/T 定时/计数模式选择位 1:计数器方式 0:定时器方式。 3、GATE 启动门控标志位 1:只有INT0(或INT1)引脚为高电平且TR0(或TR1)置 1 时, 相应的定时器/计数器才被选通工

3、作。 0:只要TR0(或 TR1)置1,定时器/计数器就被选通。,可用于测量在INTx端出现的正脉冲的宽度。,TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。 TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时被清 0。,二、定时器控制寄存器TCON,6.2.2 定时器/计数器逻辑结构,输入时钟与控制逻辑关系图,图6.3 方式 0(13位计数器),6.2.3 工作方式,一、

4、 方式 0 (T0、T1相同),组成:TH8+TL5,1、组成 TH8位+TL低5位(高3位不用) 最高计数值213 2、计数结束, TF自动置位 a、产生中断 b、定时查询TF位 3、重新计数 重装计数初值,计数值M, 初始值设多少?,图 6.4 方式 1(16位计数器),二、 方式1(T0、T1相同),图 6.5 方式 2(初始常数自动重装载),三、方式 2(T0、T1相同),1、TL计数,TH为初值 重装过程TH数值不变,改变其值,将影响下次的重装值。 2、应用: 可用于双重循环的计数,图 6.6 方式 3(两个 8 位独立计数器),四、方式 3 (T0工作,T1不工作),1、T0:TH

5、0、TL0两个独立工作的8位计数器。 控制位C/T,TRi,GATE,INTi,TFi T0的控制位被TL0占有,工作方式与前面相同。 T1的控制位TR1、TF1给TH0作控制。,仅作定时器!,2、T1:不工作 但是可以将其设置为其他工作方式。但此时TR1、TF1不能控制。用于产生不需中断的场合。例如时钟发生器。,例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振频率为 6 MHz。 分析:选用T0 作定时器, P1.0输出, 2 ms 的方波只要每隔 1 ms对 P1.0 取反一次即可得到。 定时 1 ms的初值: 因为 机器周期=126 MHz= 2 s 所以 1 ms内T0 需

6、要计数N次: N= 1 ms2 s = 500 29,6.3 定时器/计数器应用举例,一、方式0 的应用,由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=MN=8 192500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为 TH0=0F0H, TL0=0CH TMOD初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0) TCON初始化: 启动TR0=1 IE初始化: 开放中断EA=1, 定时器T0 中断允

7、许ET0=1,程序清单如下: ORG 0000H AJMP START; 复位入口 ORG 000BH AJMP TOINT ; T0中断入口 ORG 0030H START: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0赋初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 启动T0,SETB ET0 ; 开T0中断 SETB EA ; 开总允许中断 SJMP $ TOINT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RETI,等待循环, 与方式0基本相同,只是改用16位计数器。定时周期较长时, 13

8、位计数器不够用, 改用 16 位计数器。 例 2 某生产线的传送带上不断有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计, 红灯灭时才在上次统计结果的基础上继续统计, 试用单片机定时器 /计数器T1的方式1完成该项计数任务。,二、方式1的应用,图 6.7 硬件原理图,(1) 初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式1时, 溢出产生中断, 且计数器回零, 故在中断服务程序中, 需用R0计数中断次数, 以保护累积计数结果。,(3) 启动T1计数, 开T1中

9、断。 程序清单如下:,ORG 0000H AJMP START ; 复位入口 ORG 001BH AJMP T1INT ; T1中断入口 ORG 0100H START: MOV SP, 60H ; 初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H,MOV TL1, 00H MOV R0, 00H ; 清中断次数计数单元 MOV P3, 28H; 设置P3.5第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序 ORG 0A00H T1I

10、NT: INC R0 ; 中断服务子程序 RETI DISP: ; 显示子程序 RET,方式2是定时器自动重装载的操作方式, 在这种方式下, T0、T1的工作是相同的, 它的工作过程与方式0、方式1 基本相同, 只不过在溢出的同时, 将 8 位二进制初值自动重装载, 即在中断服务子程序中, 不需要编程送初值, 这里不再举例。,三、方式2的应用,定时器T0工作在方式3时是2个8位定时器/计数器。且TH0借用了T1的溢出中断标志TF1和运行控制位 TR1。 例3 假设有一个用户系统中已使用了两个外部中断源, 并置定时器 T1 方式2, 作串行口波特率发生器用, 现要求再增加一个外部中断源, 并由P

11、1.0 口输出一个5 Hz的方波(假设晶振频率为 6 MHz)。,三、方式3的应用,在不增加其它硬件开销时, 可把定时器/计数器 T0 置于工作方式 3, 利用外部引脚 T0端作附加的外部中断输入端, 把 TL0 预置为 0FFH, 这样在 T0 端出现由 1至 0 的负跳变时, TL0 立即溢出, 申请中断, 相当于边沿激活的外部中断源。 在方式 3下, TH0 总是作 8 位定时器用, 可以靠它来控制由 P1.0 输出的 5 kHz方波。 由 P1.0 输出 5 kHz的方波, 即每隔 100 s使 P1.0 的电平发生一次变化。则TH0中的初始值 X=MN=256100/2=206。 下

12、面是有关的程序。,MOV TL0, 0FFH MOVTH0, 206 MOVTL1, BAUD ; BAUD根据波特率要求设置常数 MOVTH1, BAUD MOVTMOD, 27H ; 置T0工作方式3 ; TL0工作于计数器方式 MOVTCON, 55H ; 启动定时器 T0、 T1, 置外部中断 0 和 1 ; 为边沿激活方式 MOVIE, 9FH ; 开放全部中断,TL0 溢出中断服务程序(由 000BH单元转来): TL0INT: MOV TL0, 0FFH ; 外部引脚 T0 引起中断处理程序 RETI TH0 溢出中断服务程序(由 001BH转来): TH0INT: MOVTH0

13、, 206 CPL P1.0 RETI 此处串行口中断服务程序、 外中断 0和外中断 1的中断服务程序没有列出。,实验:利用定时/计数器,控制小灯闪烁,周期1s。设单片机晶振12MHz。,分析:闪烁周期大于最大定时值,1、软件计数器,2、硬件计数器,定时50ms,输出P1.0,计数5次,输出P1.1,MAIN: MOV TMOD,#01100001B MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#0FBH MOV TL1,#0FBH MOV IE,#10001010B SETB TR0 SETB TR1 SJMP $,T_INT0:MOV TH0,#3CH MOV TL0,#0B0H CPL P1.0 RETI,T_INT1:CPL LED RETI,

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

当前位置:首页 > 其他


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