[资料分享] STC单片机遇到的问题,请大家帮忙分析下~~!

稻盛和夫   2014-7-24 11:38 楼主
本人新手,刚做了一款报警灯的产品,要求闪烁的频率一样(10个产品放在一起同时上电 用肉眼在5个小时内不能看出来一个慢一个快)。选用的STC11F01单片机,核心器件是PT4115做的恒流驱动,STC产生一个高低电平控制PT4115的开关,实现闪烁。但在测试的时候发现闪烁了半个小时后 10个产品中就有的会慢一点,用肉眼就能区分出来了,不同步闪烁了。开始用12M晶振,后面换了6M的也没有改善。
#include
#define uchar unsigned char
#define uint  unsigned int
sbit LED=P1^7;
sbit buz=P1^5;
uint m ; //计数中断次数

void Init_Timer0(void)
{
   TMOD|=0X01;
   TH0=0X9E;
   TL0=0X58;
   TR0=1;
   ET0=1;
   EA=1;
}

void main(void)
{
  P1M0=0X80;//输出模式推免
  P1M1=0X00;//
  Init_Timer0();
while(1);
}

void timer0()interrupt 1
{

  TH0=0X9E;
  TL0=0X58;
  m++;
  if(m==12)
   {
  LED=~LED;
  m=0;
   }
  }
QQ图片20140707135014.jpg


QQ图片20140707135019.jpg



电子工程师论坛

回复评论 (6)

找偏差小的晶振,6ppm以下
点赞  2014-7-24 12:19
和单片机关系不大,晶振问题
点赞  2014-7-24 12:52
我觉得差在这:

void timer0()interrupt 1
{

  TH0=0X9E;
  TL0=0X58;
  m++;
  if(m==12)
   {
  LED=~LED;
  m=0;
   }
  }

应加上TR0 = 0;
TH0=0X9E;
  TL0=0X58;
最后在结尾加上
TR0 = 1;
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2014-7-24 13:11
过来看看~~~不是太懂
点赞  2014-7-24 15:28
这是做的什么东西?
点赞  2014-7-27 23:13
是晶振的偏差,你可以自己推算一下,没有特殊手段很难保持同步的.
点赞  2014-7-28 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复