#include
#define uchar unsigned char
uchar cnt=0,sec=0;
sbit Asgn=P1^0;
sbit Bsng=P1^1;
sbit Out=P1^4;
bit flag=0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=20)
{
cnt=0;
sec++;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
sec1=0;
sec2=0;
while(1)
{
sec=0;
cnt=0;
TR0=0;
while(Bsng==1);//死等B信号
TR0=1;
cnt=0;
sec=0;
while(sec1<1) //1秒内等待A信号
{
if(Asng==0)
{
sec=0;
cnt=0;
flag=1;
}
}
if(flag) //如果出现有效信号
{
while(sec<3); //等待3秒
out=0;
flag=0;
}
}
}
自己慢慢做吧