现在,我已经会1对1的数据通信了,比如 能把从机1的温度传感器的读数发给主机。但是目前的问题是,如何用主机的LCD 把 如图两个从机 的温度读数都显示出来(根据主机地址输入显示 或者 同时显示)?请各位前辈指点指点。另外,关于地址选择,我看书百度,还是都不怎么会 ,现在想的是能不能两个从机的温度,同时显示在LCD屏幕上?拜托各位前辈了。谢谢!
这是1对1时的485部分单片机代码:
//////////////////
发送端(从机):
/////////////////
sbit UART_EN=P3^3;
void UART_init() //串口初始化
{
TMOD=0x20;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;
UART_EN=1; //485一直在写
}
/***
**函数名:UART_sent()
**功能: 串口发送一个字节
****/
void send(unsigned char str)
{
if(TI==0)
{
SBUF=str;
while(TI==0);
TI=0;
}
}
//////////////////
接收端(主机):
/////////////////
unsigned int sdata; // LCD将要显示的温度
sbit UART_EN=P3^3;
void uart_init() //串口初始化
{
TMOD=0x20; //9600bps
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;
ES=1;
EA=1;
UART_EN=0; //串口一直处于接收状态
}
void receive(void) //接收数据函数
{
while(RI==0);
RI=0;
sdata=SBUF;
}
|