51微控制器與PC機的串列埠通訊設計的問題

時間 2021-09-06 02:07:32

1樓:

1、用串列埠除錯助手

2、用pc機通過串列埠控制8952讓埠上的led亮滅很簡單,如只需傳送0xfe內容,再讓p0=subf就可讓p0口上的一個led滅。

3、若要實現雙工方式,設定scon=0x50,也就是讓ren=1即可,

4、若要有語音提示,在主程式相應位置加一發音程式即可。

以上希望能幫到你。

2樓:

我用法vb編的pc程式 程式如下:

附 錄 a

上位機程式**

dim data as integer

private sub form_keydown(keycode as integer, shift as integer)

select case keycode

case 37

text1.text = "左"

mscomm1.outbuffercount = 0 '...清空輸出暫存器

mscomm1.output = hex(1) '...傳送資料

case 39

text1.text = "右"

mscomm1.outbuffercount = 0 '...清空輸出暫存器

mscomm1.output = hex(2) '...傳送資料

case 38

text1.text = "上"

mscomm1.outbuffercount = 0 '...清空輸出暫存器

mscomm1.output = hex(3) '...傳送資料

case 40

text1.text = "下"

mscomm1.outbuffercount = 0 '...清空輸出暫存器

mscomm1.output = hex(4) '...傳送資料

end select

end sub

private sub form_load()

mscomm1.commport = 3

mscomm1.settings = "4800,n,8,1"

mscomm1.portopen = true

text1.enabled = false end sub

關於微控制器接受的程式就不用寫了吧,很好編,注意波特率一致就行了

我這個設計是用電腦鍵盤的方向鍵控制小車的前後左右執行 你稍微改改就行

51微控制器和pc串列埠通訊問題

3樓:匿名使用者

這個不是通訊問題。

傳送過來的實際編碼應該都是一樣的,但因為在微控制器通訊中,中文佔兩個字元(byte),英文和數字佔一個位元組,在英文和中文混排的時候,部分軟體的顯示功能對中文顯示不給力(其實這是在bom和unicode等技術出現之前,中文系統的通病),尤其是當中文之前的英文為單數個的時候,經常容易顯示為亂碼。因此才有了各種多國語言規範,防止混排出現亂碼的問題。

簡單的說,就是編碼顯示問題,你的通訊接收應該都是正確的。

微控制器與pc機的序列通訊問題

4樓:匿名使用者

#define com1 0

#define data_ready 0x0100#define true 1

#define false 0

#define settings ( 0xe0 | 0x00 | 0x00 | 0x03)

void main()

a=bioscom(2,0,com1)&0x00ff;

printf("a=%x",a);

if (kbhit())

}return 0;}

5樓:碧雨邢騫澤

雙方都能發能收,硬體及協議應該沒問題了,那麼這是特意這麼安排的,不然微控制器連續發你就看不清資料了。

51微控制器與pc機之間的硬體串列埠連線???? 具體的怎樣連線????

6樓:匿名使用者

51微控制器與pc機之間的硬體串列埠連線,

如果 pc 機有 com 串列埠 用 rs232轉換ttl 與微控制器 rxd txd 連線,

如果 pc 機沒有 com 串列埠 用 usb轉換ttl 與微控制器 rxd txd 連線,

硬體連線後 就是 微控制器 軟體 與 pc機軟體 vb 的 程式設計問題了,

還有設計一個 微控制器 與 vb 的 通訊協議。

7樓:匿名使用者

微控制器和微機通訊的電氣標準要一致,微機串列埠一般是rs232電氣標準,所以要加電平轉換晶片,大多用max232,一般微控制器實驗板上都提供這樣的標準串列埠。

要分別編寫上位機和下位機軟體程式,微控制器程式參照例程、教科書進行編寫;上位機微機可採用vb,組態軟體,labview等軟體編寫,一般若是簡單的通訊,上位機程式編寫很簡單,例如vb中學會使用mscomm控制元件,有vb最基礎知識的一天就能學會。

大可以沒有微控制器,沒有max232,沒有序列介面這些硬體就可以實現學習並掌握微控制器與微機之間的串列埠通訊。proteus可以**微控制器,也是主流軟體。

如今的膝上型電腦幾乎都沒有保留串列埠,而用usb介面取而代之,不過沒關係,有了虛擬串列埠和串列埠除錯助手,這些都解決了。你可以搜尋一下虛擬串列埠,真的很不錯的。

8樓:

微控制器通過txd和rxd兩條線 連線max232晶片後,轉換電平,連線pc串列埠,一般是2、3腳,5腳是地線。一共三根線。

微控制器的txd接電腦的rxd,微控制器的rxd接電腦的txd。地線接地線。

vb中要用mscomm控制元件,設定相同的波特率,起始、結束位、校驗位,資料位等。

vb的mscomm控制元件設定好埠號,然後portopen= true

就可以接收微控制器資料了。

簡單的就是用查詢的辦法,用一個定時器,不斷的查詢mscomm控制元件的input屬性和inbufferlen屬性。

mscomm控制元件有個接收模式,文字或者二進位制,如果簡單的,建議用文字的,比較好處理。

二進位制的,就用位元組陣列接收。也簡單。

檢測溫度的,直接把溫度轉換成數字字元,傳給電腦就ok了,單工的就ok了。

呵呵,女孩也學微控制器?哈哈,時代不同了。

9樓:匿名使用者

微控制器一般是3.3v或5v的電平,電腦串列埠要高點,大概是十幾伏,具體數值記不清楚了,所以要連線到電腦,就要進行電平轉換,用rs232系列的晶片就可以。

10樓:匿名使用者

可以通過pc的串列埠和usb口與微控制器連線,之間都需要電平轉換處理

串列埠與微控制器通訊時好時壞,微控制器模擬串列埠通訊有什麼利弊??

首先試試串列埠好使不。拿pc機開啟個串列埠除錯軟體,將rxd與txd拿個導線短接一下。之後用軟體傳送隨便一些資料,由於txd與rxd是短接的,那麼軟體接收到的資料應該是和發射資料一致,如果不一致,線壞了,如果徹底就收不到,線懷了,多試幾次,時好時壞,線接觸不良。如果一切正常,那麼就得看微控制器的串列...

關於51微控制器串列埠非同步通訊的問題

傳送時是自己主動的,當然可以不用中斷方式,使用查詢法。接收時自己是被動的,你不知道什麼時候會發來資料,所以採用中斷方式,沒有中斷的時候執行其他的程式段。查詢法是不斷地查詢是否有資料接受到或資料是否傳送完成。中斷法是指當接收到資料或傳送資料後進入中斷子程式,子程式完成後再返回執行原來被中斷的程式。 1...

51微控制器的pc值怎麼算,51微控制器中如何進行相對定址?pc值怎麼計算?rel又怎麼給

鈺瀟 a 50h sp 50h 51h 30h 52h 50h pc 5030h a 50h sp 50h 因為在程式中,sp減了兩次,後來又加了兩次,在程式最後ret有在返回的時候減了兩次,即地址出棧,故最終結果是50h。51h 30h 52h 50h 因為ret指令返回時,出棧的結果是高地址 5...