收藏 分销(赏)

ch6 定时器及应用.ppt

上传人:xrp****65 文档编号:13738363 上传时间:2026-04-07 格式:PPT 页数:40 大小:215.50KB 下载积分:10 金币
下载 相关 举报
ch6 定时器及应用.ppt_第1页
第1页 / 共40页
ch6 定时器及应用.ppt_第2页
第2页 / 共40页


点击查看更多>>
资源描述
第,6,章 定时器及应用,定时,/,计数器是一种应用非常广泛的硬件逻辑电路,它有两种不同的工作方式,-“,定时”、“计数”,。,6.1,定时器概述,1,、,定时,:,产生一个标准的时间间隔,(,对等间隔脉冲计数)。,如,20mS,100mS,或,1000,mS,等。单片机使用这种方式可以产生一个符合某一要求的脉冲方波,(,如下图,),。,20mS,40mS,MCS-51,P x.y,输出波形,2,、,计数,:,对外部的事件,(,脉冲,),进行统计。,很明显外部事件的发生是随机的,单片机不可能预知外部事件何时发生,但能对间隔可能不相等的脉冲进行统计计数。当达到所要求的计数值时,单片机进行相应的操作。,MCS-51,T0(T1),端口,外部脉冲,外部,设备,定时,/,计数器的基本模型,D7,D6,D5,D4,D3,D2,D1,D0,TF,计数脉冲,CP,溢出标志,8,位的加,1,计数器,8051,定时,/,计数器结构,8051,定时,/,计数器的工作原理,(,1,):何时控制启动计数器?,思考:,(,2,):如何控制是定时还是计数?,(,3,):如何控制定时,/,计数的长短?,N,位增量,计数器,TF,N,位,初值寄存器,系统内部,时钟,fosc/12,启动控制,TR,外部脉冲,T0,或,T1,引脚,定时,/,计数,控制,C/T,计数器溢出,(中断信号),计数脉冲,CP,C/T=0,C/T=1,MCS-51,单片机定时器模型,由启动控制开关,TR,来控制计数器是否计数:,当,TR=0,时:计数器计数脉冲被断开,所以停止工作;,当,TR=1,时:计数器的计数脉冲输入端与信号源接通,,计数器开始计数(工作)。,定时、计数方式由,C/T,控制。,当,C/T=1,时:多路器选择的是系统时钟(,fosc/12,),,即,定时方式,;,当,C/T=1,时:多路器选择的是外部(,T0,或,T1,引脚)输入,,即,计数方式,。,定时,/,计数的长短,由,初值寄存器中的,计数,初值来设定,。,作定时器用,:,每个机器周期计数器加,1,计数速率是,f,osc,/12.,作,计数器用:,用,2,个机器周期识别一个脉冲下降沿,故最快计数速率是,f,osc,/24.,定时,/,计数器的四种工作模式,模式,0,:,13,位计数器模式,模式,1,:,16,位计数器模式,模式,2,:,8,位,自动重装初值模式,模式,3,:拆分,/,组合扩展,8,位模式,1,、模式,0:,13,位计数器模式,13,位计数器在某一个初值的基础上加,1,计数,,当计数器计满为全,“,1,”,再来一个计数脉冲时,就产生一个,“,溢出中断信号,”,TF1=1,。,TH1,TL1,震荡器,1/12,(8位),(低5位),TF1,中断,启动控制,T1,引脚,TR1,GATE,INT1,高三位弃用,C/T=0,C/T=1,13,位加,1,计数器,GATE=0,时,TR1=1,开始定时,/,计数,;,GATE=1,时,(,门控方式,),TR=1,且,INT1=1,时,开始工作,.,此种方式主要用于,测量加在,INT1,脚上一个正脉冲的脉宽,。,2,、模式,1:,既,16,位计数器模式,(,以,T1,为例,),TL1,TH1,震荡器,1/12,(8位),(8位),TF1,中断,启动控制,T1,引脚,TR1,GATE,INT1,C/T=0,C/T=1,16,位加,1,计数器,由,TL1,做计数器,,TH1,做初值寄存器,工作,前,TL1,TH1,分别预置相同的初值。,TL1,计数,时,当产生溢出的同时,将,TH1,中的初值自动重装,TL1,。,TL1,继续计数,,此模式主要用于做串行口波特率发生器。,3,、模式,2,:,8,位,自动重装初值模式,TL1(8位),TH1(8位),震荡器,1/12,TF1,中断,控制,T1,引脚,TR1,GATE,INT1,C/T=1,C/T=0,8,位加,1,计数器,8,位初值寄存器,在这种模式中,单片机将,T0,和,T1,重新进行“拆分、组合”,将,T0,变为由,TH0,TL0,组成的两个独立的,8,位定时,/,计数器。,将,T1,设定在模式,3,则相当于停止工作。,TL0,震荡器,1/12,TF0,中断,控制,T0,引脚,TR0,GATE,INT0,C/T=0,C/T=1,TH0,TF1,中断,控制,TR1,Fosc/12,在模式,3,时的模式中,定时器,T0,的结构图,4,、模式,3,拆分,/,组合扩展模式,模式,3,下,T0,(,TH0,TL0,)及,T1,的各自特点,:,1,、,TH0,计数脉冲来自内部,fosc,所以它只能处于”定时”方式,;,2,、,TH0,分别借用了定时器,T1,的,TR1,和,TF1,为自己服务,使,TH0,能象,TL0,那样用,TR1,启动定时,并用,TF1,来作为,TH0,的溢出中断的标志,;,3,、,此时,由于,T1,缺少了启动控制信号,TR1,和溢出中断标志,TR1,那么在模式,3,时,T1,是如何启动和工作?,没有溢出中断标志,TF1,则,T1,就不用中断方式工作,(,实际上连查询也不行,);,没有启动控制信号,TR1,可以让它在模式,3,之前就开始工作,并且让它事先设定为自动重装模式,.,4,、,模式,3,就是将单片机原有,的,T0,T1,两个计数器变成三个独立的计数器,其中,T1,要事先设定为模式,2(,串行口的波特率发生器,),并启动起来。,注:,8051,系统只有,T1,能作,串行口的波特率发生器。,模式,3,时,T0,T1,的电路结构,TL0,八位定时,/,计数器,TH0,八位定时器,T1(TL1,TH1),自动重装模式,TF0,TF1,将,T0,分解为两个计数器,TL0,和,TH0,其中,TH0,借,用了,T1,的,TR1,和,TF1,T1,已无,TR1,TF1,功能,建议,T1,做波特率发生器,TH0,TL0,和,T1,三个计数器,定时,/,计数器,4,种模式比较,模 式,计数模,M,最大计数值,模式,0,13,位,T max=2,13,=8192,模式,1,16,位,T max=2,16,=65536,模式,2,,,3,8,位,T max=2,8,=256,6.2,定时器的控制,6.2.1,工作模式寄存器,TMOD,6.2.2,控制寄存器,TCON,6.3,定时器四种模式应用,6.3.1,模式,0,应用,模式,0,定时时间计算公式:,例,1:,设定时器,T0,选择工作模式,0,定时时间为,1ms,fosc=6MHz,试确定,T0,初值,计算最大定时时间,.,解,:X=8192-500=7692=1111000001100B,(TH0)=0F0H,(TL0)=0CH,最大定时,T=16.384ms,例,2:,设,T0,工作在模式,0,定时时间为,1ms,fosc=6MHz.,在,P1.0,引脚输出,2ms,方波,编写其定时功能程序,解,:(1,),分析,:,(2),选择工作方式,:,计算,T0,初值,X,(3),程序,:a.,采用中断方式,b.,采用查询方式,ORG0000H,AJMPMAIN,ORG000BH,AJMPITOP,ORG0100H,MAIN:MOVSP,#60H,ACALLPTOMD,HERE:AJMPHERE,PTOMD:MOVTMOD,#00H,MOVTL0,#0CH,MOVTH0,#F0H,SETBTR0,SETBET0,SETBEA,RET,;,中断服务程序,ORG0120H,ITOP:MOVTL0,#0CH,MOVTH0,#0F0H,CPLP1.0,RETI,查询方式,:ORG0000H,AJMPMAIN,ORG0100H,MAIN:MOVSP,#60H,MOVTMOD,#00H,MOVTL0,#0CH,MOVTH0,#0F0H,SETBTR0,LOOP:JBCTF0,NEXT,SJMPLOOP,NEXT:MOVTL0,#0CH,MOVTH0,#0F0H,CPLP1.0,SJMPLOOP,6.3.2,模式,1,应用,模式,1,定时时间计算公式:,例,3:,用定时器,T1,产生一个,50hz,的,方波,由,P1.1,输出,程序使用查询方式,fosc,=12MHz.,解,:(1,),求定时器初值,:T=1/50=0.02s,T1,定时,10ms,初值,X=D8F0h,(2),程序,:MOVTMOD,#10H,SETBTR1,LOOP:MOVTH1,#0D8H,MOVTL1,#0F0H,JNBTF1,$,CLRTF1,CPLP1.1,SJMPLOOP,6.3.3,模式,2,应用,模式,2,定时时间公式:,例,4:,当,P3.4,引脚上的电平发生负跳变时,从,P1.0,输出一个,500us,的同步脉冲。,解:,(1),模式选择,:,先设,T0,为,模式,2,外部计数方式(,TMOD:06H,),当,P3.4,负跳变时,T0,计数器加,1,溢出,改为,T0,为,500us,定时工作方式(,TMOD:02H,),(2),初值计算,:,外部计数方式,:X+1=28,X=0ffh,定时方式,:,X=(28-250,)=6h,(3),程序,:,START:MOVTMOD,#06H,MOVTH0,#0FFH,MOVTL0,#0FFH,SETBTR0,LOOP1:JBCTF0,PTFO1,SJMPLOOP1,PTFO1:CLRTR0,MOVTMOD,#02H,MOVTL0,#06H,MOVTH0,#06H,CLRP1.0,SETBTR0,LOOP2:JBCTF0,PTFO2,SJMPLOOP2,PTFO2:SETBP1.0,CLRTR0,SJMPSTART,例,5,:,利用,T1,的模式,2,对外部信号计数,要求每计满,100,次,将,P1.0,端取反,.,解:,(1),模式选择,:,模式,2,计数方式,(2),计算,T1,的初值:,156,(,9CH),(3),程序,MAIN:MOVTMOD,#60H,MOVTL1,#9CH,MOVTH1,#9CH,MOVIE,#88H,SETBTR1,HERE:SJMPHERE,ORG001BH,CPLP1.0,RETI,6.3.4,模式,3,应用,例,6:,某用户系统中已使用了两个外部中断源,并置定时器,T1,工作在模式,2,作为波特率发生器,现要求再增加一个外部中断源,并由,P1.0,输出一个,5khz,的方波,fosc,=12Mhz,。,根据输出信号频率,=,5khz,,,则周期,=200us.,由此得,:,定时时间,=100us.,(3),程序,:MOVTMOD,#27H,MOVTL0,#0FFH,MOVTH0,#156,MOVTH1,#data,MOVTL1,#data,MOVTCON,#55H,MOVIE,#9FH,TL0INT:MOVTL0,#0FFH,RETI,TH0INT:MOVTH0,#156,CPLP1.0,RETI,解:,(1,),模式选择,:,将,T0,工作在模式,3,计数方式,把,T0,的引脚作为附加的外部中断端,TL0,作计数用,TH0,作定时用。,(2),初值计算,:TL0=,ffh,TH0,=256-100*12/12=156,6.3.5,综合应用举例,例,7,:,设时钟频率为,6Mhz,试编写利用,T0,产生的,1s,定时的程序,例,8,:,设计实时时钟程序,7,解:(,1,)定时,器,T0,工作模式的确定,模式,0,最长可定时,16.384ms,模式,1,最长可定时,131.072ms,模式,2,最长可定时,512us,题中要求定时,1s,可选模式,1,每间隔,100ms,中断,1,次,中断,10,次,为,1s,(2),求计算,值,X,(216-X)12/6106=10010-3s,X=15 536=3CB0H,因此,(TL0)=0B0H;(TH0)=3CH,(3),程序,ORG0000H,LJMPMAIN,ORG000BH,AJMPSERVE,ORG2000H,MAIN:MOVSP,#60H,MOVB,#0AH,MOVTMOD,#01H,MOVTL0,#0B0H,MOVTH0,#3CH,SETBTR0,SETBET0,SETBEA,SJMP$,SERVE:MOV TL0,#0B0H,MOV TH0,#3CH,DJNZ B,LOOP,CLR TR0,LOOP:RETI,END,8,解:,(1,),实现时钟计时的基本方法,a,、,计算计数初值,时钟计时的最小单元是秒,可以方式,1,定时时间为,100ms,计数溢出,10,次得到时钟计时最小单位,1,秒,b,、,采用中断方式进行溢出次数的累计,c,、,从秒到分和从分到时的计时是通过累加和数值比较实现,(,2,)程序,ORG0000H,AJMPMAIN,ORG001BH,AJMPSERVE,MAIN:MOVTMOD,#10H,MOV20H,#0AH,CLRA,MOV 30H,A;,时单元清,0,MOV 31H,A,;,分单元清,0,MOV 32H,A,;,秒单元清,0,SETBET1,SETBEA,MOVTH1,#3CH,MOVTL1,#0B0H,SETBTR1,SJMP$,SERVE:PUSHPSW,PUSHACC,MOVTH1,#3CH,MOVTL1,#0B0H,DJNZ20H,RETUNT,MOV20H,#0AH,MOVA,#01H,ADDA,32H,DAA,MOV32H,A,CJNEA,#60h,RETUNT,MOV32H,#0,MOVA,#01H,ADDA,31H,DAA,MOV31H,A,CJNEA,#60h,RETUNT,MOV31H,#0,MOVA,#01H,ADDA,30H,DAA,MOV30H,A,CJNEA,#24h,RETUNT,MOV30H,#00H,RETUNT:POPACC,POPPSW,RETI,END,作业,P,111,2、8、18、,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服