单片机输出方波

想让单片机某一管脚输出20KHZ的方波,应怎样写程序?我用的stc12系列的。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit p0=P1^0; // 方波 在 P1.0 输出
uchar tt;
void main()
{
tt=0;
TMOD=0x01;
TH0=(65535-300)/256; // 12 M 晶振 1T 模式1
TL0=(65535-300)%256; // 25 uS
EA=1;
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
while(1)
{
}
}
void timer0() interrupt 1
{
TH0=(65535-300)/256; // 12 M 晶振 1T 模式1
TL0=(65535-300)%256; // 300*0.08333 --- uS = 25 uS
p0 = ~p0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-20
STC单片机还是用片内资源为好,仔细读下STC12C**的数据手册关于PCA/PWM的相关内容,有讲解有例程,搞懂了就会了。
第2个回答  2012-10-21
12系列的是不是自带寄存器可以输出方波,可以调试分频,输出20KHZ的方波,不行的话,可以用32M的晶振
第3个回答  2012-10-20
按晶振的频率延时或定时