1樓:
1、硬體
微控制器通訊系統要實現是微控制器與微控制器間單點通訊,只要把微控制器的rxd和txd端對應相連,並將兩塊微控制器電路板共地就可以了。
2、軟體
微控制器具有全雙工串列埠,在傳送資料的同時,也可以接收資料。每當收到一個新資料,就在中斷函式中,把ri清零,並用一個變數,通知主函式,收到了新資料。傳送資料時,很多的程式都是使用的「查詢方式」,就是執行 while(ti==0); 這樣的語句來等待傳送完畢。
使用查詢法實現串列埠接收資料的函式如下:
if(ri)
使用查詢法實現串列埠傳送資料的函式如下:
sbuf = dis_port;
while(ti==0);
ti=0;
程式編寫的流程:
(1)按選定序列口的工作方式設定scon的sm0、sm1兩位二進位制編碼。
(2)對於工作方式2或3,應根據需要在tb8中寫入待傳送的第9位資料。
(3)若選定的工作方式不是方式0,還需設定接收/傳送的波特率。
(4)設定smod的狀態,以控制波特率是否加倍。
(5)若選定工作方式1或3,則應對定時器t1進行初始化以設定其溢位率。根據題目的要求,為了省去迴圈等待時間,而採用中斷的方法。接收資料時,使用「中斷方式」,清除ri後,用一個變數通知主函式,收到新資料。
傳送資料時,也用「中斷方式」,清除ti後,用另一個變數通知主函式,資料傳送完畢。具體程式如下:
void get_data (void) interrupt 4 using 0
else ti=0; //否則就是串列埠輸出引起的中斷
}在程式編寫過程中,只有當埠發生數值變化時,再觸發中斷。
2樓:零妖
可以使用串列埠最簡單。稍微複雜點可以使用spi通訊,iic也行。
3樓:匿名使用者
你好!如果只是單向傳輸,一根線連線兩個微控制器,就能完成資料傳輸
4樓:匿名使用者
就是兩個微控制器之間的通訊
可以使用串列埠通訊,iic等
5樓:晨曦的煙雨
串列埠,所有微控制器至少帶有一個串列埠
6樓:匿名使用者
用串列埠通訊即可,現在一般的微控制器都有串列埠。
7樓:匿名使用者
1.無線可以利用藍芽模組
2.利用iic spi 這些都可以的。
8樓:w心靜思遠
術語叫「多機通訊」,不僅可以兩個微控制器互相傳輸,還可以多個微控制器傳輸,其中一個為主機,其他的為從機。
51系列微控制器還可以叫「串列埠通訊」,就是通過txd,rxd,兩個引腳互相傳輸,一個微控制器的傳送端txd連線另一個微控制器的接收端rxd,通過編寫傳輸程式就可以達到資料的傳輸。
具體的程式要根據傳輸的內容來編寫,建議先學習下「串列埠通訊」的原理和各個暫存器的設定。2023年10月29日12:29:14
9樓:匿名使用者
連線串列埠,就可以了,不算太複雜 。。。。。。。。
10樓:匿名使用者
利用微控制器串列埠通訊。
我想學好微控制器 怎麼學啊 怎麼學好微控制器
說再多都是空話,就是多練習,程式設計和電路,多去論壇逛。51微控制器從流水燈開始,幾個基本實驗結束後就上綜合專案,做一個萬能時鐘 自己強行加一堆功能進去 然後趕緊轉stm32,過程有點難受,但你很快就能體會到資源多的舒服。反正就一個堅持,我身邊幾百塊錢開發板買回來就落灰的大有人在。1 熟悉微控制器的...
新手學習微控制器的問題,新手學微控制器怎麼入門?
蛀牙患者 還是要學點數位電路基本的閘電路要看的動 還有就是要學點電路基礎不然看不動的哦!都不用太精的,花個一兩週時間 就可以了 最好是買塊微控制器找者書上搭個 最小系統 把他的 引腳搞清出了 然後學到最後可以自己擴充套件一些小電路作一點東西了至於c程式設計,只要你動了彈片機,有一點c基礎就可以看的動...
微控制器接收串列埠資料,怎麼用微控制器確定串列埠接收資料的時間間隔?
你通過串列埠助手要接受字串或一組資料需要在微控制器端開闢一個緩衝區,否則可能丟失資料。以下程式是較為通用的串列埠收發例程,開闢一個16位元組的緩衝區,兩個指標,一個存數指標,一個取數指標,兩指標相等,證明沒有新的接收資料。include define uchar unsigned charuchar...