实物
原理图
#include
#include
sbit relay = P3^7;
sbit relay1 = P1^2;
bit test_bit,send_bit;
unsigned char test,data_1;
unsigned char data_H[16]={0};
unsigned char code data_c[5]={0x34,0x0f,0x10,0x10,0x10};
void delay2s(void) //误差 0us
{
unsigned char a,b,c;
for(c=127;c>0;c--)
for(b=235;b>0;b--)
for(a=32;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void MCUInit(void)
{
TMOD = 0x21;
TH0 = 0x00;
TL0 = 0x00;
EA = 1;
SCON = 0x50;
TH1 = 0xF3;
TL1 = TH1;
PCON = 0x00;
ES = 1;
TR1 = 1;
EX0=1;
IT0=1;
relay = 0;
relay1 = 0;
}
void SendOneByte(unsigned char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
MCUInit();
while(1)
{
if(send_bit==1)
{
send_bit=0;
SendOneByte(0x55);
SendOneByte(data_H[1]);
SendOneByte(data_H[2]);
if(data_c[0]==data_H[1])
{
if(data_c[1]==data_H[2])
{
SendOneByte(0xbb);relay=~relay;relay1=~relay1;
}
}
data_H[1]=0;data_H[2]=0;data_H[3]=0;data_H[4]=0;data_H[5]=0;
EA=1;
}
delay2s();
test=0;
}
}
void EX0Interrupt(void) interrupt 0
{
test++;
TR0=1;
data_H[test-1]=TH0;
TH0=0;
TL0=0;
SendOneByte(data_H[test-1]);
if(test==16)
{test=0;TR0=0;send_bit=1;EA=0;
SendOneByte(0xaa);
}
}
我 来 完成 吧