命题-第13章-计算(1)

作者: 0108_张蓉蓉 | 来源:发表于2017-06-09 20:45 被阅读100次

                                                                  单片机计数初值的计算(一)

                                                                                                                                              0108-张蓉蓉

    例题:定时器在方式1(16位)工作,软件启动,定时操作50ms,计数初值。

          解:  设最大计数值为 M,M=2*16 =65536

              50ms定时操作需要50000个机器周期,所以需要50000次计数操作

                时器初值=65536-50000=15536

            解析:

    定时或计数方式下计数初值如何确定,定时器选择不同的工作方式,不同的操作模式其计数值均不相同。

    若设最大计数值为 M ,各操作模式下的 M 值为:

          方式 0 (13位): M=2*13 =8192(假装2*13为2的13次方,下同)

          方式 1(16位) : M=2*16 =65536

          方式 2 (8位): M=2* 8 =256

        方式 3(8位) : M=256 ,定时器 T0 分成 2 个独立的 8 位计数器,所以 TH0 、 TL0 的 M 均为 256

            由于 MCS-51 的两个定时器均为加 1 计数器,当初到最大值( 00H 或 0000H )时产生溢出,将 TF 位置 1 ,可发出溢出中断,因此计数器初值 X 的计算式为: X=M- 计数值。式中的 M 由操作模式确定,不同的操作模式计数器的长不相同,故M值也不相同。而式中的计数值与定时器的工作方式有关。

              1 、定时工作方式时

            因为计数脉冲由内部供给,是对机器周期进行计数,故计数脉冲频率为 f cont =f osc(时钟频率) × 1/12 、计数周期 T=1/f cont =12/f osc ,1个机器周期=1us(不是ms哦),因此计数器初值 X 的计算式为: X=M- 计数值

          拓展:有时也会计算TH0、TL0的值

            如例题所示,需设置定时器初值15536=65536-50000,即3CB0H(10进制15536转换成16进制数3CB0),所以TH0=0x3c,TL0=0xb0,高位就是TH0的值,低位为TL0的值。

        所以,TH0=(M-所需计数次数)/256=初值/256;

                  TL0=(M-所需技术次数)%256=初值%256

    相关文章

      网友评论

      本文标题:命题-第13章-计算(1)

      本文链接:https://www.haomeiwen.com/subject/ujyfqxtx.html