在用Proteus8仿真keil编写的AT89C51的时候
用单片机定时器定时一个100KHz的方波,占空比就是50%
#include
sbit P1_0=P1^0;
void main()
{
TMOD=0x01;
TH0=(65536-5)/256;
TL0=(65536-5)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
void time0_int(void) interrupt 1
{
TH0=(65536-5)/256;
TL0=(65536-5)%256;
P1_0 = ~P1_0;
}
然后采用Proteus仿真,发现频率不太对劲
当然是性能要求越高,偏差就越大了
多大的成本就干多大的活
你看你定时器TH0,TL0的装入值(65536-5),仅剩下5个时钟了,5个时钟你还想要什么精度