第五章 MCS-51单片机定时计数器原理及应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章定时/计数器原理及应用一、定时/计数器的原理2个16位定时器/计数器——(52系列有3个16位Timer)定时器:对片内机器时钟(周期方波)进行计数计数器:对Tx引脚输入的脉冲进行计数与Timer工作有关的特殊功能寄存器:TCON和TMOD251子系列单片机内有两个十六位加1定时/计数器TH0计数值高八位TL0计数值低八位TH1计数值高八位TL1计数值低八位TMODTCON工作方式定时/计数控制控制控制3GATEC/TM1M0GATEC/TM1M0定时器方式寄存器TMOD(89H)T1T0M1,M0:工作方式定义位(定义4种方式):C/T:计数器/定时器选择位=1外部事件计数器。对Tx引脚的脉冲计数;=0片内时钟定时器。对机器周期脉冲计数定时00:13位Timer01:16位Timer——常用10:可自动重装的8位Timer——常用11:T0分为2个8位Timer;T1不工作——极少用4GATEC/TM1M0GATEC/TM1M0T1T0GATE门控位:Timer可由软件与硬件两者控制GATE=0——普通用法Timer的启/停由软件对TRx位写“1”/“0”控制定时器方式寄存器TMOD(续)(89H)GATE=1——门控用法Timer的启/停由软件对TRx位写“1”/“0”和在INTx引脚上出现的信号的高/低共同控制5定时器控制寄存器TCON(88H)TF1TR1TF0TR0IE1IT1IE0IT0TCONTF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断)二、定时/计数器的四种工作方式M1M0方式说明00013位定时/计数器高八位TH(7~0)+低五位TL(4~0)01116位定时/计数器TH(7~0)+TL(7~0)1028位计数初值自动重装TL(7~0)TH(7~0)113T0运行,而T1停止工作,8位定时/计数。1、工作方式0计数寄存器TLi低5位+THi8位(T1、T0的等效逻辑结构)C//T=0——定时;C//T=1——对外计数。定时:fosc/12=1/(12/fosc)=1/T波形等间隔,次数已定,时间确定,即对机器周期进行计数。左图定时时间为N*TN个方波T计数:脉冲不等间隔。每个下降沿计数一次确认一次负跳变需两个机器周期,所以,计数频率最高为fosc/24。9能否启动定时/计数器工作与GATE有关,分两种情况:GATE=0时,若TRi=1,开启Ti计数工作;(i=0或1)若TRi=0,停止Ti计数。GATE=1时,若TRi=1且/INTi=1时开启Ti计数;若TRi=1且/INTi=0时不能开启Ti计数。若TRi=0,停止Ti计数。2、工作方式1与模式0相似,与模式0的区别:计数位数不同。计数寄存器:THi(高8位)+TLi(低8位)TFi中断TLi(8位)THi(8位)0~70~7控制BAC/T=0振荡器1/12&≥1TiTRiGATEINTiC/T=13、工作方式2与方式0、1的区别:1)计数位数不同;2)初值自动重装。124、工作方式3T0定时/计数,而T1停止计数,但可作波特率发生器。T0分成两独立定时/计数器TL0和TH0。TF0中断控制BAC/T=0振荡器1/12&≥1T0TR0GATEINTiC/T=1TL0(8位)振荡器1/12TH0TF1中断(a)TL0作8位定时/计数器(b)TH0作8位定时器TR1编程前确定参数:(1)定时/计数器——T0、T1选择其一(2)工作模式——C//T及GATE(3)工作方式——M1、M0三、定时/计数器的应用(4)定时计数初值计数初值:X=M-N;M=213=8192(方式0)M=216=65536(方式1)M=28=256(方式2、3)定时:X=M–N=M–t/T(t为所要求的定时时间,T为机器周期)N00101046MX15定时器应用程序举例:分析:已知fosc=6MHz则:(振荡周期)P=1/6MHz(机器周期)T=12P=12/6MHz=2S粗略地说:Tmin2S16位定时器最大数值为:216=65536=0FFFFH+1故选择方式1工作可以得到:Tmax=655362=131072S=131.072mS例1:若晶振频率为6MHz,计算在工作方式1下的最小与最大定时时间:16分析:已知fosc=6MHz则:机器周期T=2S100mS÷2S=5000016位定时器最大数值为:216=65536(=0FFFFH+1)故选择方式1工作可以满足要求。计算初值:65536-50000=15536=例2:要求对T0产生100mS定时进行初始化,晶振6MHz。3CB0H17GATEC/TM1M0GATEC/TM1M0定时器方式寄存器TMOD由分析得知:T0选择方式1,初值=3CB0HXXXX0001初始化:MOVTMOD,#01H;选T0方式1MOVTH0,#3CH;赋初值高8位MOVTL0,#0B0H;赋初值低8位SETBTR0;启动T0定时18例3:设单片机晶振频率为6MHz,使用定时器1以方式0产生周期为500s的等宽周期性方波,并由P1.0输出。分析:已知fosc=6MHz则机器周期T=2S,t=500S/2=250St/T=125方式0:13位定时器最大数值为:213=8192计算初值:8192-125=8067=500us1F83H19=0001111110000011B,1F83H00011TL111111100TH1FCH03H由分析得知:T1选择方式0,初值=FC03H20MOVTMOD,#00H;T1定时,工作方式0;MOVTH1,#0FCHMOVTL1,#03H;装入初值;SETBTR1;开启定时器;SETBP1.0;P1.0初态;LOOP:JBCTF1,LOOP1;判断是否溢出;溢出则定时已到,跳转;SJMPLOOP;未溢出返回,等待;LOOP1:MOVTH1,#0FCH;MOVTL1,#03H;重装初值(溢出归0);CPLP1.0;求反,输出方波;SJMPLOOP;继续产生方波END2122

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功