用两个单片机进行数据通信,一台用作计算器,将计算好的数据发送到 另一台上用LCD1602液晶屏显示。
接线是将 发送方的 数据发送引脚TXD连接到 接收方的 数据接收RXD 引脚,数据传送的原理也还是一样的啊,但一次只能传送一个字节数据,也就是只能进行256之内的计算。
会不会是程序算法的问题?
这是发送代码
void InterruptTimer0() interrupt 1
{
static unsigned char cnt = 0;
if(RxdOrTxd)
{
cnt++;
if(cnt <= 8)
{
PIN_TXD = TxdBuf & 0x01;
TxdBuf >>= 1;
}
else if(cnt == 9)
{
PIN_TXD = 1;
}
else
{
cnt = 0;
TR0 = 0;
}
}
}
这是部分接收代码
void UART4() interrupt 4
{
static unsigned char cnt = 0;
if(RI)
{
RI = 0;
i = SBUF;
str2[n++] = '=';
str2[n++] = ' ';
str2[n++] = i/100000%10 + '0';
str2[n++] = i/10000%10 + '0';
str2[n++] = i/1000%10 + '0';
str2[n++] = i/100%10 + '0';
str2[n++] = i/10%10 + '0';
str2[n++] = i%10 + '0';
}
for(cnt=2;cnt<16;cnt++)
{
if(str2[cnt] == '0')
str2[cnt] = ' ';
else
break;
}
cnt = 0;
sta = 1;
if(TI)
{
TI = 0;
}
}