level 4
zaqxswx
楼主
#include <reg51.h>
sbit R=P1^0;
sbit W=P1^1;
sbit L=P1^2;
unsigned int a,b=0;
unsigned char code c[]={0xfe,0xfc,0xfb};
void choice ()
{
if (b==0)
{b=1;TH1=0xec;TL1=0x78;TR1=1;}
if (b==1)
{b=2;TH0=0xec;TL0=0x78;TR0=1;}
if (b==2)
{b=0;TH0=0xec;TL0=0x78;TR0=1;}
}
void timer10s () interrupt 1
{
if (a<2000)
{
TH0=0xec;
TL0=0x78;
a++;
TR0=1;
}
if (a>=2000)
{
TH0=0xec;
TL0=0x78;
choice();
}
}
void timer2s ()interrupt 3
{
if (2000<=a<2400)
{
TH1=0xec;
TL1=0x78;
a++;
TR1=1;
}
if (a>=2400)
{
TH1=0xec;
TL1=0x78;
a=0;
choice ();
}
}
void main ()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
b=0;
while (1)
{
P1=c[b];
}
}
模拟出来始终平p1.0亮 就是红灯亮 已经调试了很久了一点办法都没有请问我这个程序到底哪里出了问题
2015年11月14日 06点11分
1
sbit R=P1^0;
sbit W=P1^1;
sbit L=P1^2;
unsigned int a,b=0;
unsigned char code c[]={0xfe,0xfc,0xfb};
void choice ()
{
if (b==0)
{b=1;TH1=0xec;TL1=0x78;TR1=1;}
if (b==1)
{b=2;TH0=0xec;TL0=0x78;TR0=1;}
if (b==2)
{b=0;TH0=0xec;TL0=0x78;TR0=1;}
}
void timer10s () interrupt 1
{
if (a<2000)
{
TH0=0xec;
TL0=0x78;
a++;
TR0=1;
}
if (a>=2000)
{
TH0=0xec;
TL0=0x78;
choice();
}
}
void timer2s ()interrupt 3
{
if (2000<=a<2400)
{
TH1=0xec;
TL1=0x78;
a++;
TR1=1;
}
if (a>=2400)
{
TH1=0xec;
TL1=0x78;
a=0;
choice ();
}
}
void main ()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
b=0;
while (1)
{
P1=c[b];
}
}
模拟出来始终平p1.0亮 就是红灯亮 已经调试了很久了一点办法都没有请问我这个程序到底哪里出了问题