Ⅰ 在單片機的串口通信中,雙機通信與單機通信有什麼不同
在單片機的串口通信中,有雙機通信,卻沒有單機通信,你給自己打電話怎麼打?要通信,至少要有兩個單片機。兩個單片機互相通信叫雙機通信。另一種應該是多機通信,在多機通信模式下,通常是一個主機發送,多個從機接收。就好比,一個老師在講課/發送,很多的學生在聽課/接收,學生也想發送/發言答題,一是老師提問學生,二是學生舉手經老師允許才可發言。
Ⅱ 單片機 雙機通信 程序
雙機通信不需要安裝虛擬埠軟體
,兩機通過txd
<==>
rxd
直接通信。
#include
#define
uchar
unsigned
char;
#define
uint
unsigneed
int;
uchar
a0,a1,a2,a3,temp,i;
uchar
code
tab[
]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit
p2_0=p2^0;
sbit
p2_1=p2^1;
sbit
p2_2=p2^2;
sbit
p2_3=p2^3;
void
delay(int
ms)
{
while(ms--)
for(i=0;i<123;i++);
}
void
inituart()
{
tmod=0x20;
//m1=1,m0=0
定時器1工作方式2(定時常數重裝,8
位)
scon=0x50;
//sm0=0,sm1=1,ren=1
串口工作方式1,允許接收
th1=0xfd;
//晶振11.0592時,波特率9600
tl1=th1;
//tl1計數,溢出後,th1值送入tl1
ea=1;
//開總中斷
es=1;
//允許串口中斷
tr1=1;
//啟動定時器1
}
void
disp()
{
a0=temp%2;
a1=temp/2%2;
a2=temp/2/2%2;
a3=temp/2/2/2%2;
p2_0=0;
p0=tab[a0];
delay(1);
p2_0=1;
p2_1=0;
p0=tab[a1];
delay(1);
p2_1=1;
p2_2=0;
p0=tab[a2];
delay(1);
p2_2=1;
p2_3=0;
p0=tab[a3];
delay(1);
p2_3=1;
}
void
main()
{
inituart();
//調用串口初始化子程序
while(1)
{
disp();
sbuf=p1;
while(ti==0);
ti=0;
}
}
void
uartinterrupt(
)
interrupt
4
{
if(ri)
{
ri=0;
temp=sbuf;
}
}
Ⅲ 單片機雙機通信程序
雙機器通信很容易的。如果用Proteus模擬的話還得安裝虛擬埠軟體。
Ⅳ 用單片機實現雙機通信在生活中有哪些用途
單片機的雙機通信,用的最多的典型的應用還是單片機與電腦的串列通信。
電腦作為上位機,來控制下位機即單片機,實現遠程式控制制。
而真正的兩個單片機互相通信確實不多。但雙機通信方式是相同的,寫程序,硬體的連接也都是相同的。