单片机输出TTL信号(问题简化)
时间:10-02
整理:3721RD
点击:
我想用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 }
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 }
你把b=20改成b==20试试!
兄弟,你的这个定时器还没有启动呢