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 這個值,很接...