单片机输出TTL信号(问题简化)

2019-07-16 04:29发布

我想用STC89C52RC输出一个TTL信号,使用示波器测量的下面这个程序输出的信号频率为331Hz,当我把第18和19行中的b换成20时,输出信号的频率变成了14.3kHz。但程序中第8行有b=20,所以我想两种写法的输出频率应该一样才对,怎么会相差这么多。14.3kHz才是我需要的频率,请高手帮助,谢谢了。晶振频率11.0592MHz.

1    #include <reg52.h>
2
3    sbit motor1  = P0^0;
4
5    unsigned int b;
6    main()
7    {
8        b=20;
9        TMOD = 0x01;
10        TH0  = 100;
11        TL0  = 100;
12        TR0  = 1;
13        while(1)
14        {
15            if(1 == TF0)
16            {
17                TF0 = 0;
18                TH0=(65536-b)/256;
19                TL0=(65536-b)%256;
20                motor1 = ~motor1;
21            }
22        }
23    }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。