#include
unsigned char e;
unsigned int a,b,c,d;
sbit a0=P1^0;//左脉冲
sbit a1=P1^1;//右脉冲
sbit a2=P1^2;//左正反转
sbit a3=P1^3;//右正反转
sbit b0=P2^4;//炉后启动信号
sbit b1=P3^2;//给小马达IC信号
sbit b2=P2^7;//声音播放控制
sbit b3=P2^6;//炉前往炉后障碍信号3
sbit b4=P2^6;//炉前往炉后障碍信号1
sbit b5=P2^6;//炉前往炉后障碍信号2
sbit b8=P2^5;//炉后往炉前障碍信号3
sbit b6=P2^5;//炉后往炉前障碍信号1
sbit b7=P2^5;//炉后往炉前障碍信号2
sbit c0=P2^2;//炉后到达信号,追加干簧管
sbit c1=P2^3;//炉前到达信号,追加干簧管
sbit c2=P3^4;//复位信号 ,未追加感应器
sbit c3=P3^3;//给小马达IC灯闪烁信号
sbit c4=P3^0;
void delay(int x)
{
int c,d;
for(c=x;c>0;c--)
for(d=1000;d>0;d--);
}
void inter_init()
{
EA=1;//开总中断
ET0=1;//开定时器0
TMOD=0X01;//使用方式1
TH0=(65535-200)/256;//定时器赋初值
TH1=(65535-200)%256;//定时器赋初值
TR0=0;
}
void chushihua()
{
b0=1;
P0=0x00;
P1=0x00;
P2=0x80;
c2=0;
c3=1;
b1=1;
a=100;
e=0;
b=100;
}
main()
{
inter_init();
chushihua();
while(1)
{
if(e==0&&c2==0)
{
delay(2);
if(c2==0)//炉前往炉后
{
a2=1;
a3=1;
c3=1;
delay(2);
TR0=1;
if(c0==1)
{
delay(5);
if(c0==1)
{
c0=1;
TR0=0;
c3=0;
b2=0;
b1=1;
delay(100);
b2=1;
b1=0;
a=0;
e++;
}
}
}
}
if(b0==1&&b3==0&&a==0) //炉后启动信号,c0为地标,b0炉后启动信号
{ //b4,b5,b3为障碍信号, b2为声音控制
b0=1;
a=1;
a2=0;
a3=0;
delay(30);
a++;
}
if(a==2)
{
c3=1;
c0=0;
b2=0;
delay(20);
b2=1;
b0=0;
delay(20);
TR0=1;
a=3;
}
if(c1==1&&a==3)
{
c1=1;
TR0=0;
a=4;
}
if(c1==1&&a==4)
{
TR0=0;
c3=0;
b2=0;
delay(30);
b2=1;
b=0;
a=9;
}
if(a==3)
{
if(b3==1||b4==1||b5==1)
{
delay(5);
if(b3==1||b4==1||b5==1)
{
b2=0;
delay(15);
c3=0;
TR0=0;
b2=1;
a=8;
}
}
}
if(a==8&&b3==0)
{
delay(3);
if(a==8&&b3==0)
{
a=2;
}
}
if(b6==0&&b==0) //炉前自动启动信号,C1为坐标
{ //b2 为声音控制
a2=1;
a3=1;
delay(200);
b=2;
}
if(b==2)
{
c3=1;
c1=0;
b2=0;
delay(20);
b2=1;
delay(20);
TR0=1;
b=3;
}
if(c0==1&&b==3)
{
c0=1;
TR0=0;
b=4;
javascript:;
}
if(b==4&&c0==1)
{
c3=0;
TR0=0;
b2=0;
delay(20);
b2=1;
b1=1;
delay(60);
b=5;
}
if(b==5&&c3==0)
{
b1=1;
delay(200);
b1=0;
delay(600);
a=0;
b=6;
}
if(b==3)
{
if(b6==1||b7==1||b8==1)
{
delay(5);
if(b6==1||b7==1||b8==1)
{
b2=0;
c3=0;
delay(15);
TR0=0;
b2=1;
b=10;
}
}
}
if(b==10&&b6==0)
{
delay(3);
b=2;
}
}
}
void time()interrupt 1 using 1
{
TH0=(65535-200)/256;
TL0=(65535-200)%256;
a1=~a1;
a0=~a0;
}
目前已经生产了10台了,公司老板大大奖赏了 |