写了一个两个单片机之间的通信程序,就是甲单片机中发送数据乙单片机将此数据显示出来,可是只能传送一次数据,程序不知道哪个地方错了,请高手帮忙看看。。。。
sbit K1 = P1^7;//用于发送数据(共三个数据)
sbit LED1 = P1^0;//显示发送数据
sbit LED2 = P1^2;//显示发送数据
void main()
{
uchar c;
SCON = 0X50;
TMOD = 0X20;
PCON = 0X00;
TH1 = 0XFD;
TL1 = 0XFD;
TI = 0;
RI = 0;
TR1 = 1;
ES = 1;
EA = 1;
while(1)
{
Delay(100);
if(K1==0)
{
while(K1==0);
num++;
num = num%4;
switch(num)
{
case 0:
c = 'X';
LED1=LED2=1;
break;
case 1:
c = 'A';
LED1 = 0;
LED2 = 1;
break;
case 2:
c = 'B';
LED1 = 1;
LED2 = 0;
break;
case 3:
c = 'C';
LED1 = 0;
LED2 = 0;
break;
}
SBUF = c;
while(TI==0);
TI = 0;
}
}
}
在proteus仿真用仪器检测发现只能发送一个A,再按P1^7就没作用了,这是为什么呢?! |