用单片机定时器输出脉冲问题?

单片机定时器中断产生频率从P3^4口输出,但在示波器上观察看见波形的高电平和低电平处有很多振动,一点都不平滑,这是什么干扰了还是因为程序问题呢?
我把程序其他的部分全部删掉了 只有定时器中断产生脉冲输出,但是在示波器上观察频率还是不稳定,高低处都存在振动不平滑 以下是程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar t;
sbit CLK=P3^5;
sbit clk=P3^4;
sbit en=P2^1;
sbit dir=P2^2;
sbit key1=P2^0;
/**************延时函数*********************/
void delay() // 延时10微秒
{
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
}
void delay_1ms(uint z)// 延时1毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
}
}
void timer0() interrupt 1
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
CLK=~CLK;
}

那么AVR单片机是不是抗干扰比较强呢

第1个回答  2010-08-28
单片机每个I/O口线的输出能力都是有限的,也就是说都存在内阻,所以在输出时会有变化。通常还有外部信号的耦合干扰,会让高低电平存在波动。
第2个回答  2010-08-30
51单片机容易受干扰,看干扰程度大不大,干扰不大的话一般环境还是可以用的。
第3个回答  2010-08-29
示波器探头上有1*和10*选项,可以换一下试试,也可能因为有外部的噪声,但只要是毛躁不是和大,不会有什么影响!!!
第4个回答  2010-08-28
1、当前测试的地线位置不变,测量一下单片机的电源有没有干扰成分。
2、再测量一下单片机的地线与该位置的地线间有无干扰。
3、如果有干扰波出现说明电源、地线电路中存在干扰影响的。改变接地点再测量后看情况有无变化。
3、可以在单片机和每块电路的电源和地线之间,就近并联104的电容看有无好转。
4、如果怀疑程序问题,可以去掉其他无关程序,用最少的最关键的程序做一下试验。
5、如果怀疑中断有影响,还可以不用中断程序,用最简单的循环延时程序产生脉冲,用以测试一下是硬件问题还是软件问题。
6、电路布线不合理也会产生干扰。本回答被提问者采纳
第5个回答  2010-08-28
是不是你设置的定时时间太短了又或者这个程序中你是否有不止一个中断呢?详细说一下, 或者把程序发上来一下
相似回答