mcs-51单片机T0、T1的四种工作方式功能及定时初始值计算
扫描二维码
随时随地手机看文章
1、 方式0
当位M1M0=00时。T为13位计数器,THi是高8位,TLi是低5位。
设计数值为N,则计数初值X=2^13-N;2^13=8192=2000H
例1:设fosc=6MHz,要求用T1的方式0定时10ms,求TH1、TL1的初值。
设计数初值为X;由已知条件得:1个机器周期=12/fosc=2us;
10,000us=12/fosc*(2^13-X)us
X=2^13-10000/2=8192-5000=3192=0C78H
得:TL1=18H,TH1=63H
2、 方式1
当位M1M0=01时。T为16位计数器,THi是高8位,TLi是低8位。
设计数值为N,则计数初值X=2^16-N;2^16==65536=10000H
例2:设fosc=6MHz,要求用T1的方式1定时100ms,求TH1、TL1的初值。
设计数初值为X;由已知条件得:1个机器周期=12/fosc=2us;
100,000us=12/fosc*(2^16-X)us
X=2^16-100000/2=65536-50000=15536=3CB0H
得:TH1=3CH,TL1=0B0H
3、 方式2
当位M1M0=10时。T为自动重装初值的8位计数器,计数在TLi ,当TL溢出时,不仅使TF=1,同时将TH中的值自动送到TL,且TH的值不变。
设计数值为N,则计数初值X=2^8-N;2^8=256=100H
例3:设fosc=6MHz,要求用T1的方式2定时500us,求TH1、TL1的初值。
设计数初值为X;由已知条件得:1个机器周期=12/fosc=2us;
500us=12/fosc*(2^8-X)us
X=2^8-500/2=256-250=6
得:TH1=6H,TL1=6H,实际上只要给TH赋初值就行。
4、 方式3
当位M1M0=11时。只有T0才有方式3。若设T1为方式3,则使其停止工作。
T0为方式3时,TH0、TL0成为两个独立的8位计数器;TL0使用T0的控制资源:GATE、C//T、TR0、TF0、/INT0引脚等,可作为8位定时/计数器,而TH0占用T1的TR1、TF1,为固定的8位定时器。此时T1由方式位控制,方式3停止,方式0~2允许工作,但计数溢出时并不置TF1为1,即不能产生中断请求。此情况下,一般是把T1用作串行口的波特率发生器。