收藏 分销(赏)

第5章-2 单片机的定时器计数器.ppt

上传人:s4****5z 文档编号:13996575 上传时间:2026-05-24 格式:PPT 页数:40 大小:860.50KB 下载积分:10 金币
下载 相关 举报
第5章-2 单片机的定时器计数器.ppt_第1页
第1页 / 共40页
第5章-2 单片机的定时器计数器.ppt_第2页
第2页 / 共40页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,5.1,定时方法概述,1.,软件定时:执行一个循环程序进行时间延迟。,但是单片机,CPU,被占用,,无法进行多任务处理。,2.,硬件定时:定时时间较长。,3.,可编程定时器定时:对系统时钟脉冲的计数来实现。,采用专门的定时器和计数器独立运行,有利于提高单片机的性能,适用于,实时多任务,处理的要求,第五章,2,单片机的定时器计数器,1,5.2,、定时器,/,计数器的结构和功能,以,8051,系列为例:,2,个,16,位可编程定时器,/,计数器:,T0,和,T1.,T0:TL0/TH0,;,T1:TL1/TH1,TMOD/TCON:,工作方式寄存器,/,控制寄存器,1.,结构,2,2.,功能,16,位的定时器,/,计数器的实质:加法计数器。,(,1,)定时,对,机器周期,进行计数,即计数脉冲来自单片机的内部。即每个机器周期产生一个计数脉冲使得计数器加,1,,直至计满溢出,。,计数频率,f,osc,/12,,即,1,个机器周期;,“定时”时间:开始计数到溢出;,预置计数法:初值越大,定时越短。,3,(,2,)计数,对外部脉冲信号计数(,T0P3.4/T1P3.5),。,下降沿出现时,计数器值加,1.,在每个机器周期的,S5P2,拍节时对外部计数脉冲进行采样;,如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。,下一个周期的,S3P1,期间,新的计数值装入计数器。,最高计数频率,f,osc,/24,,即,2,个机器周期。,注:,定时器按设定的工作方式独立运行,不占用,CPU,的操作时间,除非定时器计满溢出,中断,CPU,。,4,1.,定时器控制寄存器,TCON,功能:控制定时器,T0,或,T1,的运行或停止,并标志定时器的溢出和中断情况。,位地址:,88H,,,可以位寻址。,TF0/TF1:,定时器溢出标志。溢出时,硬件自动使,TF0/TF1,置,1,并申请中断。,TR0/TR1:,定时器运行控制位。置,1,启动工作,置,0,停止工作。,IE0/IE1:,外部中断,0(INT0)/1(INT1),请求标志。,IT0/IT1:,外部中断,0/1,触发方式选择位。,位地址,8FH,8EH,8DH,8CH,8BH,8AH,89H,88H,TCON,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,5.3,控制寄存器和方式寄存器,5,2.,方式寄存器,GATE,门控位,GATE=0,以运行控制位,TR,启动定时器,GATE=l,以外中断请求信号或启动定时器,C/T,定时方式或计数方式选择位,C/T=0,定时工作方式,C/T=1,计数工作方式,D7,D6,D5,D4,D3,D2,D1,D0,GATE,C/T,M1,M0,GATE,C/T,M1,M0,定时器,T1,定时器,T0,6,M1 M0,方式,功能,0 0,0,13,位定时器,/,计数器,由,TL,中低,5,位和,TH,中,8,位组成。,0 1,1,16,位定时器,/,计数器,1 0,2,8,位自动重装定时器,/,计数器,,TL,为计数器,,TH,为常数寄存器,1 1,3,定时器,0,分为,2,个,8,位定时器,/,计数器,定时器,1,无此方式,TMOD,的位地址是,89H,,,不能位寻址,只能用字节传送指令设置定时器的工作方式。,复位时,,TMOD,所有位均清零。,7,5.4.1,工作方式,0,1.,电路逻辑结构,C/T=0:,定时器工作方式:,C/T=1:,计数器工作方式:,下降沿有效。,GATE=0:,或门输出为,1,与,INTX,无关;,TRx,1,接通计数器,否则断开停止计数。,GATE=1,:,TRx,1,或门、与门输出仅受,INTX,控制。,5.4,定时器,/,计数器的工作方式,8,2.,定时和计数应用,在方式,0,下,当为计数工作方式时,计数值的范围是:,1,8192,(,2,13,),当为定时工作方式时,定时时间的计算公式为,:,(,2,13,计数初值),晶振周期,12,或(,2,13,计数初值),机器周期,其时间单位与晶振周期或机器周期相同(,s,)。,如晶振频率为,6 MHz,,则最小定时时间为,2,13,(2,13,1)2us=2,(,s,),最大定时时间为,(,2,13,0,),2 us=16 384,(,s,),9,例,5.1,设单片机晶振频率为,6MHz,,使用定时器,1,以方式,0,产生周期为,500s,的等宽正方波连续脉冲,并由,P1.0,输出,以查询方式完成。,1,计算计数初值,(,2,13,X,),2=250,X=8067=1111110000011B,十六进制表示,高,8,位为:,0FCH,,低,5,位为,03H,。其中高,8,位放入,TH1,,即,TH1=0FCH,;低,5,位放入,TL1,,即,TL1=03H,10,2.TMOD,寄存器初始化,为把,T1,设定为方式,0,,则,M1M0=00,;,为实现定时功能,应使,C/T=0,;,为实现,T1,的运行控制,则,GATE=0,。,T0,不用,有关位设定为,0,。,因此,TMOD,寄存器应初始化为,00H,。,3.,由,TCON,中的,TR1,位控制定时的启动和停止,TR1=1,启动,TR1=0,停止。,11,例,5.1 ORG 0030H,;,查询方式,P112,MAIN:MOVTMOD,#00H,MOVTH1,#0FCH,MOVTL1,#03H,MOVIE,#00H,SETBTR1,LOOP:JBCTF1,LOOP1,AJMPLOOP,LOOP1:MOVTH1,#0FCH,MOVTL1,#03H,CPLP1.0,AJMP LOOP,END,12,5.4.2,工作方式,1,P113,M1=0 M0=1,与方式,0,一样,唯一差别是,16,位定时,/,计数器,由,THx8,位和,TLx8,位组,成,16,位加,1,计数器计数。,13,2.,定时和计数,当为计数工作方式时,计数值的范围是,1,65536,(,2,16,),当为定时工作方式时,定时时间的计算公式为,(,2,16,计数初值),晶振周期,12,或(,2,16,计数初值),机器周期,其时间单位与晶振周期或机器周期相同(,s,)。,14,以中断方式完成,例,6.1,。单片机晶振频率为,6MHz,,使用定时器,1,以工作方式,1,产生周期为,500s,的等宽正方波连续脉冲,并由,P1.0,输出。,1,计算计数初值,TH1=0FFH TL1=83H,2,TMOD,寄存器初始化,TMOD=10H,3,程序设计,15,ORG 0000H,LJMP MAIN,ORG 001BH,LJMP TOINT,MIAN:MOVTMOD,#10H,MOVTH1,#0FFH,MOVTL1,#83H,SETBEA,SETBET1,SETBTR1,HERE:SJMPHERE,TOINT:MOVTH1,#0FFH,MOVTL1,#83H,CPLP1.0,RETI,16,例,5.2:,利用定时器,T1,方式,1,进行定时,使,P1.1,端每隔,1s,取反一次,设晶振频率为,12MHz,。,解:方式,1,下最大定时时间:,Tmax,2,16,1us,65536us,65.536ms,当定时时间大于,Tmax,时,可设置软件计数器。,设,T1,定时时间为,50ms,,,则计满,20,次就可。,(,2,16,X,),1us,50000us,X,15536=3CB0H,所以,TH1=3CH,TL1=B0H,程序如下:,17,START:MOVA,#00;A,赋计数初值,0,MOVTMOD,#10H;T1,为方式,1,MOVTH1,#3CH,MOVTL1,#0B0H,SETBTR1;,启动,T1,LOOP:JBCTF1,NEXT,SJMPLOOP,NEXT:MOVTH1,#3CH,MOVTL1,#0B0H,INCA,CJNEA,#20,LOOP,CPLP1.1,MOVA,#00,SJMPLOOP,18,5.4.3,定时工作方式,2 P113,M1=1 M0=0,自动装载,初值,8,位定时,/,计数器。,TLx,为,8,位加,1,计数器,,THx,为,8,位初值暂存器。,用于需要重复定时和计数的场合,最大计数值,:,256(2,8,),最大定时时间,(12MHZ T=1,s),:,256,s,定时时间,=,(,2,8,-,Tx,初值),x,振荡周期,x 12,19,例,5.3,使用定时器,0,以工作方式,2,产生,100s,定时,在,P1.0,输出周期为,200s,的连续正方波脉冲。已知晶振频率,f,osc,=6MHz,。,1,计算计数初值,6MHz,晶振下,一个机器周期为,2us,,以,TH0,作重装载的预置寄存器,,TL0,作,8,位计数器,假设计数初值为,X,,则,(,256,X,),2=100,us,求解得,X,=206D=11001110B=0CEH,把,0CEH,分别装入,TH0,和,TL0,中:,TH0=0CEH,,,TL0=0CEH,20,例,5.3,(,查询方式,),ORG 0000H LJMP MAIN,ORG 0030H,MAIN:MOVIE,#00H,MOVTMOD,#02H,MOVTH0,#0CEH,MOVTL0,#0CEH,SETBTR0,LOOP:JBCTF0,LOOP1,AJMPLOOP,LOOP1:CPLP1.0,AJMP LOOP,END,21,(中断方式),;等待中断,$,SJMP,HERE,:,;定时开始,TR0,SETB,LOOP,:,;定时器,0,允许中断,ET0,SETB,;开中断,EA,SETB,;设置计数初值,#0CEH,TL0,,,MOV,;保存计数初值,#0CEH,TH0,,,MOV,;设,T,0,为工作方式,2,#02H,TMOD,,,MOV,MAIN,:,ORG0000H,LJMPMAIN,ORG000BH,LJMPT1INT,;中断返回,RETI,;输出方波,P1.0,CPL,T1INT:,22,例,5.4:,用定时器,1,以工作方式,2,实现计数,每计,100,次进行累加器加,1,操作。,1.,计算计数初值,256-100=156D,9CH,则,TH1=TL1=9CH,2.TMOD,初始化,M1M0=10,C/T=1,GATE=0,因此,TMOD=60H,23,例,5.4 ORG0000H P115,LJMPMAIN,ORG 0030H,;,查询方式,MAIN:MOVIE,#00H,MOVTMOD,#60H,MOVTH1,#9CH,MOVTL1,#9CH,SETBTR1,DEL:JBCTF1,LOOP,AJMPDEL,LOOP:INCA,AJMP DEL,END,24,例,:(应用两个定时器),设重复周期大于,1ms,的低频脉冲信号从,P3.5,引脚(,T1,)输入。要求,P3.5,每发生,1,次负跳变时,,P1.0,输出,1,个,500s,同步负脉冲,同时,P1.1,输出,1,个,1ms,的同步正脉冲,其波形图如下,设,fosc,6MHz,。,P3.5,P1.0,P1.1,1ms,500s,1ms,25,计算计数初值,:定时器,T0,定时,500us,,使用方式,2,,,T1,用于计数,1,个脉冲(每一次负跳变发生一次变化,,考虑如何检测负跳变?,),同时使用两个定时计数器,:,T0:,(,2,8,-x,),2us,500us x=6D=06H,TH0,06H,,,TL0,06H,T1:,X=2,8,-1 X=255D=0FFH,TH1=0FFH,TL1=0FFH,T0,用于定时,C,T,0,,方式,2 M1 M0,10,,,GATE=0,T1,用于计数,C,T,1,,方式,2 M1 M0,10,,,GATE=0,TMOD,寄存器初始化:,TMOD,62H,P3.5,P1.0,P1.1,1ms,500s,1ms,26,ORG 0030H,START1:MOV TMOD,#62H,MOV TH0,#06H,;,T0,,定时,500us,MOV TL0,#06H,MOV TH1,#0FFH,;,T1,计数一个脉冲,MOV TL1,#0FFH,SETB P1.0,CLR P1.1,SETB TR1,;,启动,T 1,LP1:JBC TF1,NEX1,;,检测外部跳变信号,SJMP LP1,NEX1:CLR P1.0,SETBP1.1,SETB TR0,;,启动,T 0,LP2:JBC TF0,NEX2,;定时,500us,SJMP LP2,NEX2:SETB P1.0,LP3:JBC TF0,NEX3,SJMP LP3,NEX3:CLR P1.1,;,定,2,次,500us,共,1ms,CLR TR0,;T0,停止工作,AJMP LP1,P3.5,P1.0,P1.1,1ms,500s,1ms,27,5.4.4,定时工作方式,3 P115,只适用于定时器,T0,被分成两个独立的,8,位计数器,TL0,和,TH0.,定时器,T1,没有方式,3,状态,若设置为方式,3,则停止工作。,28,振荡器,12,TL1,(8/5,位,),T1(P3.5),端,C/,T=0,C/,T=1,TH1,(8,位,),串行口,控制,振荡器,12,TL1,(8,位,),串行口,T1(P3.5),端,C/,T=0,C/,T=1,TH1,(8,位,),重新装入,(,a,),T1,方式,1,或,0,(,b,),T1,方式,2,T0,方式,3,时,T1,的工作方式,29,5.5,外部中断源的扩展,5.5.1,通过,OC,门线或实现,利用一个外部中断输入线,INT0(,或,INT1),,,采用集电极开路的非门构成或非电路。,查询,P1.0P1.3,的逻辑电平来判断哪个中断源引起中断。,30,中断,INT1,服务程序段如下:,ORG00013H,;,中断矢量地址,LJMPINTRPT;,转到入口地址,INTRPT:PUSHPSW;,保护现场,。,PUSHACC,JBP1.0,SERV1,JBP1.1,SERV2,JBP1.2,SERV3,JBP1.3,SERV4,EXIT:POPACC,POPPSW,RETI,SERV1:.,AJMPEXIT,31,利用,T0/T1,的外部事件计数输入端作为边沿触发器的外部中断输入端;,将,T0/T1,设置成计数方式,计数器初值设为满量程值,即全,1,状态;,T0/T1,端出现负跳变脉冲时,计数器加,1,就溢出产生中断;,TF0/TF1,作为外部中断请求标志。,5.5.2,通过定时器,/,计数器实现,32,例:定时器,T1,设置为方式,2,外部计数方式,允许,T1,中断,且,CPU,开放中断。,MOVTMOD,#60H,MOVTL1,#0FFH,MOVTH1,#0FFH,SETBEA,SETBET1,SETBTR1,5.5.2,通过定时器,/,计数器实现,33,5.6,定时器与中断综合应用,例,:,利用定时器,0,控制产生周期为,2ms,和,100ms,的方波信号,分别由,P1.0,和,P1.1,引脚输出,,采用中断方式,。系统时钟为,12MHz,。,分析:方波为,2ms,,定时时间为,1ms,。,机器周期为,1s,,采用方式,0,,则计数初值为,X=2,13,-1000=7192=1110000011000B,TH0=E0H,,,TL0=18H,方波为,100,ms,,定时时间为,50ms,,可采用,50,次,1ms,定时,34,ORG 0000H,LJMP BEGIN,ORG 000BH,LJMP TOINT,ORG 2000H,BEGIN,:,MOV TMOD,,,#00H,MOV TL0,,,#18H,MOV TH0,,,#0E0H,MOV R2,,,#50,SETB EA,SETB ET0,SETB PT0,SETB TR0,HERE,:,SJMP HERE,TOINT,:,MOV TL0,,,#18H,MOV TH0,,,#0E0H,CPL P1.0,DJNZ R2,,,RETURN,CPL P1.1,MOV R2,,,#50,RETURN,:,RETI,35,查询方式,中断方式,LOOP1:,JBC,TF0,LOOP2,SJMPLOOP1,HERE,:,SJMP HERE,ORG 000BH,LJMP TOINT,SETB EA,SETB ET0,SETB PT0,SETB TR0,SETB TR0,TOINT:,使用中断方式时:,定时器溢出中断请求标志位,TF0,TF1,由硬件自动清,0,。,使用查询方式时:,定时器溢出中断请求标志位,TF0,TF1,由用户软家清,0,。,36,例,:,设单片机振荡频率为,6MHz,,,要求每隔,100ms,,,从外部,ROM,以,data,开始的数据区传送一个字节数据到,P1,口输出,共传送,100,个数据。要求,(,1,)定时采用定时器,T0,以方式,2,实现(,2,)数据输出在中断服务程序中完成。,解:定时器,T0,方式,2,最大定时时间,512us,0.512ms,因此,设定时时间为,0.5ms,500us,,,采用一个软件计数器计数,200,次实现达到,100ms,。,(,256,X,),2=500X,6=06H,。,程序如下:,37,ORG0000H,AJMPSTART,ORG000BH,AJMPTOINT,START:MOVTMOD,#02H,MOVTL0,#06H,MOVTH0,#06H,SETBEA,SETBET0,SETBPT0,SETBTR0,MOVDPTR,#data,MOVR6,#100D,LOOP:MOVR7,#200D,MOVA,R7,HERE:JNZHERE,DJNZR6,LOOP,CLRTR0,TOINT:DJNZR7,LP1,CLRA,MOVCA,A+DPTR,MOVP1,A,INCDPTR,LP1:MOVA,R7,RETI,38,单片机专门固化的定时器,/,计数器的特点:总结,1,、,51,子系统有,2,个,计数器、,52,子系统有,3,个,计数器,2,、每个计数器都是一个,加法,计数器。,3,、每个计数器都可定义为,8bit,、,13bit,、,16bit,等,4,种工,作方式,以方便在不同的环境下使用。,4,、每个计数器都可以,置初值,,每来一个脉冲,+1,。,5,、每个计数器都可以选择计数源,内部或外部。,6,、当选择内部振荡源,由于已知频率,所以可以当定,时器,计数频率固定为振荡频率的,12,分频,。,7,、当选择外部脉冲,由于频率未知,可用内部振荡频,率去测量,最大计数脉冲为振荡频率的,24,分频,。,39,作业,1,、,8051,单片机内有几个定时器,/,计数器?每个定时器,/,计数器有几种工作方式,如何选择?,2,、定时器工作在方式,2,有什么特点?适用于什么场合?,3,、假定单片机的晶振频率为,6MHz,,使用定时器,0,以定时方法在,P1.0,输出周期为,400us,,占空比为,10:1,的矩形脉冲,以定时工作方式,2,编程实现。,4,、假定单片机的晶振频率为,12MHz,,利用定时器,T0,(工作方式,2,)在,P1.1,引脚上输出周期为,0.4ms,的方波信号,采用中断方式实现。,5,、假定单片机的晶振频率为,6MHz,,要求每隔,50ms,,从内部,RAM,以,30H,开始的数据区传送一个字节数据外部,RAM,以,2000H,开始的连续存储区,共传送,50,个数据。要求以定时器,T1,的工作方式,2,实现,并且数据传送在中断服务程序中完成。,40,
展开阅读全文

开通  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 

客服