程序不能运行,求指点。
源代码
#include<reg52.h>
#define uint unsigned int
sbit D1=P2^0;
sbit D2=P2^1;
sbit D3=P2^2;
sbit D4=P2^3;
sbit ENA=P2^4;
sbit ENB=P2^5;
sbit E1=P3^4;
sbit E2=P3^5;
sbit E3=P3^6;
sbit E4=P2^6;
sbit E5=P2^7;
sbit E6=P3^2;
sbit E7=P3^1;
sbit E8=P3^0;
sbit ALE=P1^4;
sbit A=P1^7;
sbit C=P1^5;
sbit ST=P1^2;
sbit OE=P1^0;
sbit CLK=P1^3;
sbit EOC=P1^1;
uint a,b,c,d,e,f,g,h,t[8];//八个数字量存放
uint *z,*x;//两个数字信号判断 ,将数组赋值给变量
delays(int p)
{ int l,m;
for(l=p;l>0;l--)
for(m=1100;m>0;m--);
}
void houzuo() //左后轮正转
{ D1=1;
D2=0;
delays(200);
delays(200);
D1=1;
D2=1;
}
void init1()
{
TMOD=0X01; //定时器中断0
ALE=1;
CLK=0; //脉冲信号初始值为0
TH0=(65536-2)/256; //定时时间高八位初值
TL0=(65536-2)%256; //定时时间低八位初值
EA=1; //开CPU中断
ET0=1; //开T/C0中断
TR0=1;
}
void houyou() //右后轮正转
{ D3=1;
D4=0;
delays(200);
delays(200);
D3=1;
D4=1;
}
void houzuodao() //左后轮反转
{ D1=0;
D2=1;
delays(200);
delays(200);
D1=0;
D2=0;
}
void houyoudao() // 右后轮反转
{ D3=0;
D4=1;
delays(200);
delays(200);
D3=0;
D4=0;
}
void qianjin() //前进
{ D1=1;
D2=0;
D3=1;
D4=0;
delays(200);
delays(200);
D1=1;
D2=1;
D3=1;
D4=1;
}
void houtui() //倒车·
{
D1=0;
D2=1;
D3=0;
D4=1;
delays(200);
delays(200);
D1=1;
D2=1;
D3=1;
D4=1;
}
chejian() //小车光强
{
OE=0;
A=0;
B=0;
C=0;
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
a=E1;
b=E2;
c=E3;
d=E4;
e=E5;
f=E6;
g=E7;
h=E8;
OE=0;
t[0]=a;
t[1]=b;
t[2]=c;
t[3]=d;
t[4]=e;
t[5]=f;
t[6]=g;
t[7]=h;
z=&t[0];
A=1;
B=0;
C=0;
ST=0;
ST=1;
ST=0;
while(EOC==0) ;
OE=1;
a=E1;
b=E2;
c=E3;
d=E4;
e=E5;
f=E6;
g=E7;
h=E8;
OE=0;
t[0]=a;
t[1]=b;
t[2]=c;
t[3]=d;
t[4]=e;
t[5]=f;
t[6]=g;
t[7]=h;
x=&t[0];
}
/* A=0;
B=1;
C=0;
ST=0;
ST=1;
ST=0;
while(!EOC);
OE=1;
c=E3;
OE=0;
d[2]=c;
A=1;
B=1;
C=0;
ST=1;
ST=1;
ST=0;
while(!EOC) ;
OE=1;
d=E4;
OE=0;
}*/
main()
{ ENA=1;
ENB=1;
init1();
while(1)
{ if(z>x)
houzuo();
/*if(a>b>c>d||a>b>d>c&&a-d>15)
while(a!=b||abs(a)-abs(b)>6)
{ houyou();
chejian();
}
if(b>a>c>d||b>a>d>c&&b-c>15)
while(a!=b||abs(b)-abs(a)>6)
{ void zuoyou();
chejian();
}
if(c>d>b>a||c>d>a>b&&c-b>15)
while(c!=E4||abs(a)-abs(b)>6)
{ houyoudao();
chejian();
}
if(d>c>b>a||d>c>a>b&&d-a>15)
while(c!=d||abs(a)-abs(b)>6)
{ void houyzuodao();
chejian();
}
if(a==c||abs(a)-abs(c)<5||abs(c)-abs(a)<5)
while( a!=b||abs(a)-abs(b)>2||abs(b)-abs(a)>2)
{ houzuodao();
chejian();
}
if(b==E4||abs(b)-abs(E4)<5||abs(E4)-abs(b)<5)
while( a!=b||abs(a)-abs(b)>2||abs(b)-abs(a)>2)
{ houyoudao();
chejian();
}
if(a>=(1.4*c)||b>=(1.4*d))
while(a>=1.1*c||b>=(1.1*d))
{
qianjin();
chejian();
}
if(c>=(1.4*a)||d>=(1.4*b))
while(c>=(1.1*a)||d>=(1.1*a))
{
qianjin();
chejian();
} */
}
}
void T0_time() interrupt 1
{ TH0=(65536-2)/256; //定时时间高八位初值
TL0=(65536-2)%256;
CLK=~CLK;
}
|