一个简单的红绿灯实验51的C语言编了下面的程序 模拟一直出错
单片机吧
全部回复
仅看楼主
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
level 4
zaqxswx 楼主
我知道不能发急求之类的话 但是真的很急 关键自己找不出问题出来
2015年11月14日 06点11分 2
level 4
zaqxswx 楼主
顶
2015年11月14日 06点11分 3
level 9
路过,帮顶!
2015年11月14日 06点11分 4
1