兩個微控制器之間的簡單非同步序列通訊

時間 2021-08-31 20:02:20

1樓:植娜蘭祁忻

沒有錯,電腦串列埠

是標準rs232串列埠,最高電壓

大+15v

或者-15v

微控制器通常

是ttl

電平,最高不超過5v

所以連線

時必須做

電平轉換

即標準rs232轉ttl電平當然要

弄清楚2端的

接收、傳送

訊號地請看

武漢鴻偉光電

e232ttl

rs232轉ttl電平

有連線示意圖

2樓:匿名使用者

把程式if (ri)

改為while(!ri);

ri=0;

p1=sbuf;

還有你如果p1賦值為0x07,要使得點亮3個led的話,led陰極要接地,陽極接p1口。

3樓:匿名使用者

我做過這個,開始用查詢法弄了好久沒搞定,後來發現接受程式要用中斷法好些。

4樓:匿名使用者

proteus**論壇上貼吧,很多會的這裡沒有上傳**不好看

5樓:匿名使用者

因為你是用查詢方式進行通訊的,而程式沒有中沒有設定兩機通訊的聯絡訊號,即接受機接收到的第一位資料不一定是傳送機傳送的第一位資料,而有可能是第

二、第三位資料,這樣接受到的八位資料就可能是傳送機傳送多次資料中擷取的八位資料,又因兩機延時時間不同,因此接受到的第一位資料不可能固定不變的。

所以就會出現你說的現象。如果採用的是查詢方式進行序列通訊,兩機之間需要建立握手訊號,告知接受機傳送機開始傳送地位資料,接受機才開始接受資料。

#include

#define uchar unsigned char#define uint unsigned intvoid uart_init()

void delay(uint z)

void main()

while(sbuf!=0x02) ;

while(1)

}#include

#define uchar unsigned char#define uint unsigned intvoid uart_init()

void main()

while(p2!=0x01);

while(1)}

兩片微控制器之間怎樣進行序列通訊???求圖與原理?????

6樓:匿名使用者

同一塊線路板還是不同線路板?

兩個微控制器的序列通訊

7樓:匿名使用者

dat equ 30h

scanled equ 32h

fsdat equ 33h

dsdat    equ 34h

org 0000h

ljmp main

org 000bh

ljmp t0isr

org 0030h

main:

mov sp,#5fh

mov tmod,#21h

mov th0,#high(65536-10000)mov tl0,#low(65536-10000)mov th1,#0fdh

mov tl1,#0fdh

setb tr1

mov scon,#50h

mov p2,#00h

mov scanled,#0

mov 30h,#0

mov 31h,#0

mov r2,#0

setb ea

setb et0

setb tr0

loop:

jnb ri,loop

clr ri

mov a,sbuf

mov fsdat,a

sjmp loop

dealdat:

mov a,fsdat

mov b,#10

div ab

mov 30h,a

mov 31h,b

ret;--------------------t0isr:

push acc

clr tr0

mov th0,#0f4h

mov tl0,#48h

setb tr0

mov dptr,#ledtab1

t000:

mov r0,#dat

mov a,scanled

add a,r0

mov r0,a

mov a,scanled

jnz t001

mov p2,#02h

sjmp t0dis

t001:

mov p2,#01h

t0dis:

mov a,@r0

movc a,@a+dptr

cpl a

mov p0,a

inc scanled

mov a,scanled

anl a,#01h

mov scanled,a

inc r2

cjne r2,#20,t0e

mov r2,#0

lcall dealdat

t0e:

pop acc

reti

;--------------------ledtab1:

db 0c0h ;"0" 00h

db 0f9h ;"1" 01h

db 0a4h ;"2" 02h

db 0b0h ;"3" 03h

db 99h ;"4" 04h

db 92h ;"5" 05h

db 82h ;"6" 06h

db 0f8h ;"7" 07h

db 80h ;"8" 08h

db 90h ;"9" 09h

db 88h ;"a" 0ah

db 83h ;"b" 0bh

db 0c6h ;"c" 0ch

db 0a1h ;"d" 0dh

db 86h ;"e" 0eh

db 8eh ;"f" 0fh

db 0ffh ;" " 10h

;--------------------end

8樓:做而論道

51微控制器程式設計:雙機序列通訊

9樓:匿名使用者

你好!彙編的不會,c語言可以

兩個80c51微控制器之間怎樣進行序列通訊

10樓:匿名使用者

就利用微控制器的串來

口嗎。源如果兩個微控制器比較近,1米以內,就可以用ttl方式連線,即是兩個微控制器的txd,txd對接,gnd相連,共地。

如果距離再遠的,就是rs232介面,實現標準 的串列埠通訊,這很容易的,電路也簡單,是最典型的串列埠通訊電路了。程式就更好寫了。

微控制器與微控制器之間如何進行序列通訊?

11樓:匿名使用者

1、將兩個微控制器的rxd與txd相連

2、根據需要傳輸的資料編寫傳輸協議

3、編寫序列通訊程式,將自己需要傳送的資料按照協議進行傳送4、編寫接收程式,按照協議進行接收

5、將兩個程式分別寫入兩個微控制器,執行。

微控制器與微控制器之間如何進行序列通訊

12樓:匿名使用者

1、將兩個微控制器的rxd與txd相連

2、根據需要傳輸的資料編寫傳輸協議

3、編寫序列通訊程式,將自己需要傳送的資料按照協議進行傳送4、編寫接收程式,按照協議進行接收

5、將兩個程式分別寫入兩個微控制器,執行。

13樓:帆揚五分

微控制器雙機之間的序列通訊設計例項

可以參考一下,不懂再hi我!

14樓:匿名使用者

找個微控制器教程上面都有 兩機rxd txd 對連,然後編寫各個的通訊程式!也有的微控制器是帶can 的 那就按照說明連 ,編寫對應的通訊程式!

15樓:匿名使用者

共地,收/發反接,程式設計即可實現

16樓:匿名使用者

給個郵箱我發你個例項

17樓:匿名使用者

一樓還得把end連線吧

兩個51微控制器如何通過i2c通訊

兩個51微控制器 通訊 可以通過 串列埠進行通訊 也可以多機通訊 如果要用到 i2c 晶片可另外用2個io 埠擴充套件,至於各種功能 通過硬體 及 軟體 完全可以完成 必須是iic嗎。兩個微控制器通訊通過串列埠通訊要好點吧。個人觀點。 要看你們用的是什麼型號的51微控制器 如果沒有硬體i2c,那麼你...

微控制器指令部分,兩個16進位制的數怎麼相乘

你可以用兩個暫存器放一個數字,然後ab相乘就轉換為四個暫存器相乘,結果放在四個暫存器中,這樣數字就可以放下了。八位的暫存器最多能達到0ffh,放不下這麼大的數,所以分開存放,然後進行相乘,可以得到結果。 這也問,自己算得轉換成10 進位制 各位高手,我想求教彙編中mul指令的用法,我的微控制器暫存器...

微控制器C51程式設計兩個問題(裡面詳細,歡迎高手)

問題一 為什麼說delay 500 就是延時0.5s呢?是估算的.c 不能精確定時,通過調節 for j 0 j 125 j 的 125的數值.取125剛好接近 1ms.我就做了好幾個 20us,1ms,1s,的delay程式.把他們執行很多次後,用秒錶核對.1ms 程式也是用的125 這個值,很接...