用两个单片机通讯,实现数据交换,但为何只能收到一个数据?
程序如下: A机程序: 功能:接收数据
while(1) {
dely(200); dely(250); led=1; Delay(6000); disp_time(); disp_P3(); disp_P2(); disp_P1(); disp_P0();
} }
/********************************** 串口中断服务程序 **********************************/ void uart(void) interrupt 4 using 1 { unsigned char i; unsigned int t; if(RI) { led=0; RI=0; buf[0]=SBUF; if( buf[0]!=0xaa) return; t=0xfff;
for(i=0;i<7;i++) { while(!RI) { if(t<10) return; else t--; } buf=SBUF; RI=0; t=0xfff; } flag=1; count_rx=200; } }
B机程序: 功能发送
while(1) {
dely(200); dely(250); led=1; Delay(6000); EA=0; I2C_Gets(0xd0,0x00,7,time); EA=1; for(j=0;j<1;j++) { led=0; SBUF=0xaa; for(i=0;i<7;i++) { TI=0; SBUF=time;
//while(!TI); //TI=0; }
} led=1; } } /********************************** 串口中断服务程序 **********************************/ void uart(void) interrupt 4 using 1 { TI=0; } |