#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臺了,公司老板大大獎賞了 |