标题: /* SOS!!!!想做这个:利用定时T0产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,但是灯第一次闪的有问题,接着第二个灯开始到第八 [打印本页]

作者: slzfzh    时间: 2012-3-24 09:37
标题: /* SOS!!!!想做这个:利用定时T0产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,但是灯第一次闪的有问题,接着第二个灯开始到第八

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void initial(void); 
uchar num,co;
uchar a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
main()
{
 initial();
 while(1);

}

void initial(void)   //初始化
{
 P1=0xfe;
 co=0;
 num=0;
 TMOD= 0x01;       
 TH0=(65536-10)/256;      
 TL0=(65536-10)%256;
 EA=1;           
 ET0=1;         
 TR0=1;
}
void timeT0() interrupt 1
{
 TH0=(65536-10)/256;      
 TL0=(65536-10)%256;
 num++;
 
 if(num==1)
 { co++;
  num=0;
     P1=a[co];
  if(co==8)
   co=0;
 }
  
}


作者: slzfzh    时间: 2012-3-24 09:38

求教高手


作者: 游理想    时间: 2012-3-25 21:29
co++; num=0; P1=a[co]; 顺序换下。。 P1=a[co]; co++; num=0; 应该能看出来原因吧




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1