定时器计数器一定时器计数器的功能定时器.ppt

上传人:小飞机 文档编号:6385990 上传时间:2023-10-26 格式:PPT 页数:24 大小:273.32KB
返回 下载 相关 举报
定时器计数器一定时器计数器的功能定时器.ppt_第1页
第1页 / 共24页
定时器计数器一定时器计数器的功能定时器.ppt_第2页
第2页 / 共24页
定时器计数器一定时器计数器的功能定时器.ppt_第3页
第3页 / 共24页
定时器计数器一定时器计数器的功能定时器.ppt_第4页
第4页 / 共24页
定时器计数器一定时器计数器的功能定时器.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

1、1,第五章 定时器 计数器一、定时器计数器的功能:1定时器的功能:定时发出脉冲信号,向CPU申请中断,其定时间隔的长短及起始控制的时间均可由程序控制。例如某机械零件的热处理工艺曲线为:,温度,开始定时,保温5分钟,淬火 清洗,开始定时回火3小时,空冷,实际控制可以由单片机定时发出信号控制自动完成整个工艺过程。,2,2.计数功能:对外界发生的事件计数,当达到程序规定的计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示,计数24瓶,光电信号,24瓶装完申请中断,转入中断服务程序装箱,输送带,3,二.8031单片机的定时器计数器控制 8031片内有两个16位定时器计数器,称为T0,T1

2、,与其有关的特殊功能寄存器SFR有:1.方式控制字 TMOD T1 T0 GATE C/T M1 M0 GATE C/T M1 M0 字节地址89HGATE:门控位 C/T:1 计数 M1 M0:00 方式0 0 定时 01 方式1 10 方式2 11 方式3,4,2.定时器控制寄存器 TCON 字节地址88H 可位寻址 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 对T1控制 与中断有关下章介绍 TR0置1则启动中断响应后自动清0 T0溢出中断标志 例 MOV TMOD#06H 0 0 0 0 0 1 1 0 门控位为0 T1方式0 T0方式2 定时功能 计数功能只要用 S

3、ETB TR0,SETB TR1 即可启动T0 T1 开始工作。,5,3.控制定时器计数器长度的寄存器 TL0 TH0 TL1 TH1 用于存放计数初值,它是加1计数器,溢出中断。它们的字节地址是:TH1(8位)TL1(8位)TH0(8位)TL0(8位)8DH 8BH 8CH 8AH 控制定时器计数器时,计数长度可分别选择8位,16位,13位,与工作方式有关。注意它是加1计数器,例如选择8位计数器,最大可存255,如果置入初值250,则计数6次即溢出中断。,6,三8031单片机定时器计数器的四种工作方式:以T0为例1方式0 13位计数器 TH0高8位 TL0低5位 TL0高3位无用 讨论定时方

4、式选择T0方式0定时,TMOD的低4位为:0 0 0 0,7,例如:要求从P1.0脚发出周期为2ms的方波只要选T0定时间隔1ms求反P1.0即可满足。定时工作方式中令计数器加1的周期是每个机器周期加1,即每隔12/f 加1,1,0,高电平1ms,低电平1ms,8,设定时器时间常数为X则有(213-X)(12/f)=1ms 设f=6MHZ(213-X)(12/6106)=110-3 X=8192-500=76927692=1E0CH 00011110 00001100B 11110000 00001100 TH0=F0H TL0=0CH 即共加500次,每次耗费2s,共耗费时间1ms,9,讨论

5、计数方式:例如前述的啤酒生产线,计数24瓶中断转入装箱程序。选T1方式0计数,TMOD的高4位为:0 1 0 0初始常数X的计算:213-X=24 X=8192-24=81688168=1FE8H 00011111 11101000B 11111111 00001000 TH1=FFH TL1=08H加24次即溢出中断。程序如下:,10,ORG 0000H AJMP MAIN ORG 000BH AJMP IT0P ORG 001BH AJMP IT1P MAIN:MOV SP,#60H MOV TMOD,#40H;T0方式0定时,T1方式0计数 MOV TH0,#0F0H MOV TL0,#

6、0CH;T0定时1ms时间常数 MOV TH1,#0FFH MOV TL1,#08H;T1计数24次初始常数,11,SETB TR0;启动T0开始定时 SETB TR1;启动T1开始 计数 SETB EA;允许CPU中断 SETB ET0;允许T0中断 SETB ET1;允许T1中断HERE:AJMP HERE;等待IT0P:MOV TH0,#0F0H;重装时间常数 MOV TL0,#0CH CPL P1.0;P1.0求反,输出方波 RETIIT1P:略,12,2.方式1 16位计数器 方式1与方式0唯一的区别是计数器是16位,即TL 8位,TH 8位,因此,计算时间常数的公式中 213 应改

7、为216,上述程序如改用方式1,则常数计算为:定时(216-X)(12/f)=110-3 解之X=FE0CH 即TH0=FEH,TL0=0CH计数 216-X=24 解之 X=FFE8H 即TH1=FFH,TL0=E8H程序中的TMOD赋值相应改为方式1,13,3.方式2 8位计数器,能自动重装时间常数,定时准确 TL0作为8位计数器,当TL0计数溢出中断时,在置1溢出中断标志TF0的同时,自动将TH0中所装的原初始常数送TL0,使TL0从原初始常数开始重新计数。初始化时在TL0、TH0中装入同样的初始常数,TH0即记忆了该初始常数,因此在中断服务程序中不必重装时间常数,省去了重装时间常数的时

8、间,因此定时准确。时间常数计算公式为:定时(28 X)12/f=定时间隔计数 28 X=计数次数,14,4.方式3 三个8位定时器计数器 方式3只适用于T0 TL0 作为8位定时器计数器,使用T0的C/T、GATE、TR0、TF0,可定时亦可计数,外部计数脉冲从T0引脚输入,TR0置1启动。TH0 可单独用作8位定时器,不能用作外部计数。置1 TR1即可启动,溢出中断时将TF1置1,即它占用了T1的启动位和中断源。TH1 TL1 当定时器T0定义为工作方式3时,定时器T1常用作串行口的波特率发生器,T1仍可选择方式0、1、2,用TL1、TH1分别作为13、16、8位计数器,可以改变不同的波特率

9、范围。此时的T1不能使用中断源。,15,例 写出符合下述要求的8031定时器计数器初始化程序段1.用T0计数外界事件192次申请中断2.用T1定时50ms申请中断,设晶振频率f=6MHZ分析:TMOD=14H 0 0 0 1 0 1 0 0 设定T0方式0计数,T1方式1定时 T0计数初始常数 213 X=192 X=8192 192=8000 8000=1F40H=0001111101000000B TH0=FAH TL0=00H T1定时初始常数(216 X)(12/f)=50 10 3 X=65536-25 10 3=40536=9E58H TH1=9EH TL1=58H,16,程序段如

10、下:MOV SP,#60H;建立堆栈MOV TMOD,#14H;T0方式0计数,T1方式1定时MOV TL0,#00H;T0计数192次初始常数MOV TH0,#0FAHMOMOV TL1,#58H;T1定时50ms时间常数MOV TH1,#9EHSETB TR0;启动T0开始计数SETB TR1;启动T1开始定时SETB EA;以下3条指令与中断有关下章介绍SETB ET0SETB ET1,17,四.关于定时器的小结与补充:1.关于定时计数两种功能:8031单片机具有T1、T0两个定时器计数器,并分别具有定时和计数两种功能。C/T=0选择定时功能,此时令计数器加1的脉冲信号是由机内提供的等间

11、隔的信号,每隔一个机器周期加1,即每隔12/f 秒加1。C/T=1选择计数功能,此时令计数器加1的脉冲信号由外部输入,即从8031的T0和T1(8031的14脚和15脚)输入,当被计数的外部事件发生一次,则产生一个脉冲信号从T0或T1引脚输入,令计数器加1,该脉冲信号的速率决定与外部事件的发生速率,不一定等间隔。定时和计数的主要区别是令计数器加1的脉冲信号来源不同。,18,振荡器,TH TL,TF1,中断,GATE,INT1,TR1,控制,12,T1端,与门,或门,19,2.初始常数X的计算公式:定时:(2n X)(12/f)=定时间隔 计数:2n X=计数次数 式中的 n,当分别选择工作方式

12、0、1、2、3时,n=13、16、8、8,20,3.定时间隔和计数的范围:以6MHZ晶振为例 方式0 13位计数器 最大定时间隔为:当X=0000H时 213210-6=16.384ms 最小定时间隔为:当13位计数器全1,即X=FF1FH或 FFFFH时 2s 计数范围:18192 方式1 16位计数器 最大定时间隔为:当X=0000H时 216 210-6=65536 210-6=131.072 ms 最小定时间隔为:当X=FFFFH 时 2s 计数范围:165536方式2和方式3 8位计数器 定时间隔为:2s512s 计数范围:1256,21,4.扩大定时间隔的方法:可采用多次中断的方法

13、。例:要求用一台单片机控制10台加热炉,每隔10秒钟进行一次温 度测量。则需要定时10秒。设 f=6MHZ 分析:可选择定时100mS中断,当中断100次时,可达到10秒。计算定时100mS的时间常数X,选T0方式1定时。(2n X)(12/f)=定时间隔(216 X)2 10-6=100 10-3 X=3CB0H 即 TH0=3CH TL0=B0H 程序如下:,22,0000 H AJMP STAR000BH LJMP IT0P STAR:MOV SP,#60H MOV TMOD,#01H;T0方式1定时 MOV TH0,#3CH MOV TL0,#0B0H;定时100mS时间常数 MOV

14、R0,#0;中断次数计数单元清零 SETB TR0;启动T0 SETB EA;允许CPU中断 SETB ET0;允许T0中断.;以下CPU可执行主程序.,23,T0中断服务程序:IT0P:MOV TH0,#3CH MOV TL0,#0B0H;重装100mS时间常数 INC R0;中断次数计数加1 CJNE R0,#100,RETN;到10秒了吗?MOV R0,#0;10秒已到,清中断计数 LCALL CYPID;调温度控制程序 RETN:RETI,24,P78页例3:测量正脉冲宽度分析:首先计数器清零,在正脉冲开始时,在正脉冲结束的下降准确启动计数器开始定时,则 沿关闭计数器,此时,计数器每隔一个机器周期加1。计数器中的数为正脉 冲的机器周期数。编程使GATE=1,则启动T0需要INT0=1和TR0=1两个条件,将待测正脉冲接在INT0引脚,在INT0低电平时用SETB TR0指令使TR0=1,则在INT0引脚上的正脉冲变高时T0立刻启动开始定时,在INT0引脚上的正脉冲变低时T0立刻关闭停止定时,此时,计数器中的数为正脉冲的机器周期数,正脉冲宽度可测。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号