現(xiàn)在,我已經(jīng)會1對1的數(shù)據(jù)通信了,比如 能把從機1的溫度傳感器的讀數(shù)發(fā)給主機。但是目前的問題是,如何用主機的LCD 把 如圖兩個從機 的溫度讀數(shù)都顯示出來(根據(jù)主機地址輸入顯示 或者 同時顯示)?請各位前輩指點指點。另外,關(guān)于地址選擇,我看書百度,還是都不怎么會 ,現(xiàn)在想的是能不能兩個從機的溫度,同時顯示在LCD屏幕上?拜托各位前輩了。謝謝!
這是1對1時的485部分單片機代碼:
//////////////////
發(fā)送端(從機):
/////////////////
sbit UART_EN=P3^3;
void UART_init() //串口初始化
{
TMOD=0x20;
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;
UART_EN=1; //485一直在寫
}
/***
**函數(shù)名:UART_sent()
**功能: 串口發(fā)送一個字節(jié)
****/
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; //串口一直處于接收狀態(tài)
}
void receive(void) //接收數(shù)據(jù)函數(shù)
{
while(RI==0);
RI=0;
sdata=SBUF;
}
|