導航:首頁 > 操作系統 > 兩個單片機數據放到一個單片機上

兩個單片機數據放到一個單片機上

發布時間:2023-11-12 20:59:16

單片機與單片機之間怎麼通信

他們之間的通訊就是相互直接數據的傳輸。比如說,你要用一個單片機控制另外一個單片機,那麼你就可以通過232匯流排連接然後用串口通信,前提是兩個單片機都有發送接收程序,還有相應的指令,就是接收到這個信號,另外一個單片機要做什麼。那樣就可以用一個單片機控制另一個工作。形象化就是你打電話給你朋友跟他說話。

Ⅱ 兩個單片機之間的無線傳輸

選擇通訊模塊完成傳輸
1:用rf905進行數據傳輸,兩塊單片機都通過串口將數據發送給905,然後通過905發送出去。
2:用PT2262發也可以,如果你不考慮成本的話,你可以用51的一個埠控制一個繼電器當按鍵用
建議nrf24l01這個模塊,spi協議,程序不是很難寫

Ⅲ 兩個單片機串口通信程序

兩個單片機串口通信,用模擬來實現比較容易做,兩個單片機的引腳TXD和RXD交叉連接即可。為了顯示通信效果,P2口接兩個數碼管可顯示接收的數據,P1口接兩個四位數字開關,用於輸入數據,然後從串口發送到另一單片機,兩個單片機互發數據,電路相同,程序也相同。模擬圖如下。

Ⅳ 單片機與單片機直接相連

這樣連接有點問題的。首先就是四樓 擺渡還不知道 說的,還要把兩個單片機的VSS都連接到一起。
即使這樣,單片機之間用P2口之間傳送數據還有一定的問題,就是兩個單片機只能一直查找P2口是否有數據發送過來。如單片機A會給單片機B發送數據,那B怎麼知道A何時發送數據給它,所以,單片機B的程序就必須其他操作什麼都不做,只能一直循環檢測P2口什麼時候有數據變化。除非你自己編一套兩者傳輸數據的協議。這樣的話,不僅麻煩,而且佔用的I/O口太多,並行通信的效率也太低。
最簡單的方法就是使用非同步串口通信,直接把兩個單片機的TXD和RXD兩個引腳交叉相連接,兩者都以中斷接收串口數據。省I/O口省代碼。也就是A的TXD(P3.1)和B的RXD(P3.0)連接,A的RXD和B的TXD連接。還要把兩者的VSS都連上。雖然看似比8個引腳相連的並行通信要慢(串列通信一個時間段只能通過一個位,而並行通信是一個位元組)。但串列通信要比並行通信穩定多了。這也是現在的計算機上如USB之類的串列通信要比LPT的並行通信要實用得多。

Ⅳ 您好請問一下,兩個單片機互相傳數據的程序怎麼寫

兩個單片機互相傳數據,其實很簡單的 就是兩個單片機的串口通信,當然需要一個串口通信的協議,如指令碼、數據長度、數據等等,就是什麼指令需要怎麼操作、操作數據是什麼。如這是兩個單片機簡單通信操作的模擬實例可以作為參考。

#include <reg52.h> // 單片機1

#define uchar unsigned char

#include <stdio.h>

unsigned char* c;

sbit k0=P3^2;

sbit k1=P3^3;

sbit led1=P3^5;

uchar k;

bit y0,y1;

bit t,s;

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d};

void SendOneChar(char c) //發送位元組到PC

{

TI=0;

SBUF = c;

while(!TI);

TI=0;

}

void SendString(char *st) //發送字元串到PC

{

while(*st)

{

SendOneChar(*st++);

}

}

void main()

{

SCON = 0x50; //SCON: mode 1, 8-bit UART, enable rcvr

TMOD = 0x20; //TMOD: timer 1, mode 2, 8-bit reload

PCON = 0x80; // 數據位8、停止位1。效驗位無 (11.0592M)

TH1 = 0xF4; //TH1: reload value for [email protected]

TR1 = 1; //啟動定時器1

ES = 1; //允許串口中斷位

EA = 1; //允許總中斷位

c=0;

s=1;

k=0;

P1 =~table[k];

while(1)

{

if(k0==0 && y0==0)

{

y0=1;

c = "az";

SendString(c); //發送字元串

}

if(k0==1 ) { y0=0; }

if(k1==0 && y1==0)

{

y1=1;

c = "as";

SendString(c); //發送字元串

}

if(k1==1 ) { y1=0; }

// for(i = 0; i < 4000; i++); //延遲一小段時間

}

}

void chuankou(void) interrupt 4

{

if(RI==1)

{

RI = 0;

if(t==1)

{

if(SBUF=='z') { k++;led1=~led1; }

s=1; t=0;

if(k==10) { k=0;}

P1 =~table[k];

}

if(SBUF=='a' && s==1) { t=1;s=0;}

}

}

------------------

#include <reg51.h> // 單片機2

#define uchar unsigned char

unsigned char* c;

sbit led1=P3^2; // 接收 az , P.2 輸出低電平, P3.3 輸出高電平。

sbit led2=P3^3; // 接收 aa , P.2 輸出高電平, P3.3 輸出低電平。

sbit k0=P3^5;

bit y0,t,s;

uchar k;

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d};

void SendOneChar(char c) //發送位元組到PC

{

TI=0;

SBUF = c;

while(!TI);

TI=0;

}

void SendString(char *st) //發送字元串到PC

{

while(*st)

{

SendOneChar(*st++);

}

}

void main (void)

{

SCON = 0x50; // REN=1允許串列接受狀態,串口工作模式1

TMOD = 0x21; // 定時器工作方式2

PCON = 0x80; // 數據位8、停止位1。效驗位無 (11.0592M)

TH1 = 0xF4; // TH1 = 0xFD; 波特率 2400

TH0=(65536-54253)/256; // 50 mS

TL0=(65536-54253)%256;

TR1 = 1;

ES = 1; // 開串口中斷

EA = 1; // 開總中斷

// ET0=1;

// TR0=1;

s=1;

k=0;

P1 =~table[k];

while(1)

{

if(k0==0 && y0==0)

{

y0=1;

c = "az";

SendString(c); //發送字元串

}

if(k0==1 ) { y0=0; }

}

}

void chuankou(void) interrupt 4

{

if(RI==1)

{

RI = 0;

if(t==1)

{

if(SBUF=='z') {led1=0;led2=1; k++; }

if(SBUF=='s') {led1=1;led2=0; k--; }

s=1; t=0;

if(k==10) { k=0;}

if(k==255) { k=9; }

P1 =~table[k];

}

if(SBUF=='a' && s==1) { t=1;s=0;}

}

}

void T0_time()interrupt 1

{

TH0=(65536-54253)/256; // 50 mS

TL0=(65536-54253)%256;

k++;

if(k==10) // 這里修改時間

{

k=0;

led1=1;

led2=1;

}

}

閱讀全文

與兩個單片機數據放到一個單片機上相關的資料

熱點內容
手機文件夾刪除又出現怎麼解決 瀏覽:285
php時間段分析 瀏覽:213
redisjava類 瀏覽:911
剪力牆錯開部分鋼筋是否加密 瀏覽:477
linux字元設備驅動程序 瀏覽:57
全排列演算法java 瀏覽:465
中國銀行app轉賬電子回單在哪裡 瀏覽:51
操作簡單的程序員 瀏覽:600
數值積分演算法求pi 瀏覽:18
按鈕怎麼連命令方塊 瀏覽:909
房貸還清後不解壓能貸款嗎 瀏覽:36
程序員哄老婆開心技術 瀏覽:672
oracle自動備份壓縮文件 瀏覽:855
遵義人字形加密網帶 瀏覽:255
寧波人社在哪裡下載app 瀏覽:92
好噠商戶app下載在哪裡下載 瀏覽:609
廣發兌星巴克是在app哪裡操作 瀏覽:783
linuxgetline 瀏覽:215
app的懸浮窗許可權在哪裡設置 瀏覽:686
51單片機定時器溢出標志 瀏覽:373