1. 这段代码根本就不是用定时器产生方波,而是靠延时硬憋出来的。
2. 这段代码可能是配合触发器之类工作的,其结果是在P1.0上产生8个跳变沿。
3. 至于是否实际产生40kHz的方波,还要由外接的晶振频率以及单片机本身的配置所决定。
4. 你贴出的这段代码有基本的语法错误,不可能编译通过。
定时器定时时间为0,不晓得还怎么产生中断,for循环只是个简单粗略的延时,至于40KHZ,还要算算这个for循环完成的时间是不是一个波长周期,反正这个程序很可能不对
我不清楚是不是40KHZ,但是可以产生方波,是很笨的方法,也不准确,最好用定时器。
#include
sbit a=P1^0;
main()
{
a=1;
TMOD=0X01;//定时器0
TH0= ;//自己算吧
TL0= ;
ET0=1;//定时器0允许
TR0=1;//打开定时器0
EA=1;//开总中断
while(1);
}
void timer0() interrupt 0 //中断程序
{
TH0= ;
TL0= ;
a=~a;
}
3不是随着每