主机
1 #include 2 #include 3 unsigned char cort = 0; 4 sbit P3_5 = P3 ^ 5; 5 key_serial() interrupt 0 using 1 6 { 7 ++cort; 8 if (cort == 3) 9 cort = 1;10 }11 void main()12 {13 P2 = 0xff;14 TMOD = 0x20;15 TH1 = 0xFD;16 TL1 = 0xFD;17 PCON = 0x00;18 TR1 = 1;19 SCON = 0xF8;20 EA = 1;21 EX0 = 1;22 IT0 = 1;23 P3_5 = 1;24 while(1)25 {26 if (cort == 1)27 {28 SBUF = 0x01;29 while(TI != 1);30 TI = 0;31 P3_5 = 0;32 RB8 = 1;33 while(RI != 1);34 RI = 0;35 P2 = SBUF;36 P3_5 = 1;37 }38 if(cort == 2)39 {40 SBUF = 0x02;41 while(TI != 1);42 TI = 0;43 P3_5 = 0;44 RB8 = 1;45 while(RI != 1);46 RI = 0;47 P2 = SBUF;48 SM2 = 1;49 P3_5 = 1;50 }51 52 }53 }
从机1
1 #include 2 #include 3 sbit P3_5 = P3 ^ 5; 4 void serial(void) interrupt 4 using 1 5 { 6 ES = 0; 7 RI = 0; 8 if (SBUF == 0x01) 9 {10 P3_5 = 1;11 RI = 0;12 TB8 = 1;13 P1 = 0x10;14 SBUF = 0x10;15 while(!TI);16 TI = 0;17 }18 else P1 = 0;19 P3_5 = 0;20 ES = 1;21 }22 void main()23 {24 P1 = 0x00;25 TMOD = 0x20;26 TH1 = 0xFD;27 TL1 = 0xFD;28 PCON = 0x00;29 TR1 = 1;30 SCON = 0xF0;31 EA = 1;32 ES = 1;33 P3_5 = 0;34 while(1)35 _nop_();36 }
从机2
1 #include 2 #include 3 sbit P3_5 = P3 ^ 5; 4 void serial() interrupt 4 using 1 5 { 6 ES = 0; 7 RI = 0; 8 if (SBUF == 0x02) 9 {10 P3_5 = 1;11 RI = 0;12 TB8 = 1;13 P1 = 0x20;14 SBUF = 0x20;15 while(!TI);16 TI = 0;17 }18 else P1 = 0;19 P3_5 = 0;20 ES = 1;21 }22 void main()23 {24 P1 = 0x00;25 TMOD = 0x20;26 TH1 = 0xFD;27 TL1 = 0xFD;28 PCON = 0x00;29 TR1 = 1;30 SCON = 0xF0;31 EA = 1;32 ES = 1;33 P3_5 = 0;34 while(1)35 _nop_();36 }