1樓:匿名使用者
用uart非同步序列通訊方
bai式
51序列口有
du4種工作zhi方式,在序列口的dao4種工作方式中,方版式0主要用於擴權展並行i/o口,方式1、2、3則主要用於序列通訊。
pc機的序列介面為rs232形式的介面,其高低電平的規定與微控制器所規定的ttl電平不同,所以微控制器上也必須有232介面,可直接選用232介面晶元例如max232,還要準備"串列埠除錯助手"這一軟體。
max232是乙個電平轉換晶元。微控制器的txd端接max232的11腳,rxd端接max232的12腳。電腦上rs232的2腳接max232的14腳,3腳接max232的13腳,rs232的5腳接地。
2樓:靳溪黎
串列埠的電平和微控制器的電平不一樣,一般要做乙個電平轉換器.另在51裡編一程式,就可把51裡的相關資料傳送給電腦了.
怎麼實現51微控制器與電腦串列埠之間的通訊?
3樓:匿名使用者
首先,微控制器和微機通訊的電氣標準要一致,微機串列埠一般是rs232電氣標準,所以要加電平轉版換晶元權,大多用max232,一般微控制器實驗板上都提供這樣的標準串列埠。
其次,要分別編寫上位機和下位機軟體程式,微控制器程式參照例程、教科書進行編寫;上位機微機可採用vb,組態軟體,labview等軟體編寫,一般若是簡單的通訊,上位機程式編寫很簡單,例如vb中學會使用ms***m控制項,有vb最基礎知識的一天就能學會。
最後,大可以沒有微控制器,沒有max232,沒有序列介面這些硬體就可以實現學習並掌握微控制器與微機之間的串列埠通訊。proteus可以**微控制器,也是主流軟體。另外,如今的膝上型電腦幾乎都沒有保留串列埠,而用usb介面取而代之,不過沒關係,有了虛擬串列埠和串列埠除錯助手,這些都解決了。
你可以搜尋一下虛擬串列埠,真的很不錯的。
4樓:匿名使用者
微控制器和電腦之間要加個ttl-rs232電平轉換,一般用max232晶元及外圍電路實現。
然後通過串列埠線,3芯即可,連線與電腦的串列埠連線。
51微控制器和計算機之間實現串列埠通訊的電路圖 5
5樓:匿名使用者
串列埠通訊參考程式如下:
#include
unsigned char uart_rx; //定義串列埠接收資料變數
unsigned char rx_flag; //定義穿行接收標記
函式名:uart串列埠初始化函式
調 用:uart_init();
參 數:無
返回值:無
結 果:啟動uart串列埠接收中斷,允許串列埠接收,啟動t/c1產生波特率(佔用)
備 注:振盪晶體為12mhz,pc串列埠端設定 [ 4800,8,無,1,無 ]
void uart_init (void)
函式名:uart串列埠接收中斷處理函式
調 用:[sbuf收到資料後中斷處理]
參 數:無
返回值:無
結 果:uart串列埠接收到資料時產生中斷,使用者對資料進行處理(並傳送回去)
備 注:過長的處理程式會影響後面資料的接收
void uart_r (void) interrupt 4 using 1
函式名:uart串列埠傳送函式
調 用:uart_t (?);
參 數:需要uart串列埠傳送的資料(8位/1位元組)
返回值:無
結 果:將引數中的資料傳送給uart串列埠,確認傳送完成後退出,採用非中斷方式
備 注:
void uart_t (unsigned char uart_data)
函式名:uart串列埠傳送字串函式
調 用:uart_s (?);
參 數:需要uart串列埠傳送的資料(8位/1位元組)
返回值:無
結 果:將引數中的資料傳送給uart串列埠,確認傳送完成後退出,採用非中斷方式
備 注:
void uart_s(unsigned char *str)
函式名:主函式
調 用:main();
參 數:
返回值:無
結 果:
備 注:
void main()
;uart_init();
uart_s(buf_data);
while(1)}}
祝願樓主馬到功成
6樓:
12 和11腳接 mcu 51 的p3,0 p3.1
7樓:萍水e相逢
微控制器 板上有 db9 嘛?其實 就是 max232?
有的 話,和 電腦 可以直接 連
否則 用 e232ttl rs232/ttl電平無源轉換器請看 武漢鴻偉光電 有 連線示意圖
8樓:匿名使用者
rs232,max232,好好看,網上有
51微控制器用串列埠跟pc通訊進行收發資料
9樓:匿名使用者
//**來
來自 微控制器
自小精靈v1.3
//波特率9600 11.0592晶振 方式2#include
void inituart(void)
void sendonebyte(unsigned char c)void main(void)
void uartinterrupt(void) interrupt 4
else
ti = 0;}
10樓:匿名使用者
程式中是19200.
通訊不上有很多原因,你的電路不對、甚至是連線不對,也會導致通訊不上內.
你可以試試跟蹤你的容程式,看看可否正確地接收到pc發過去的資料,先把接收程式調好,然後再調傳送部分,這樣才有目標.
11樓:windy_諾
樓主試試只傳送乙個字元,1或者2,不要12一起傳送。如果硬體,連線沒有問題應該是傳送什麼pc就接收到什麼。
12樓:音悅
我提下問題,你看下是不是:
1、***口對不對
2、波特率在燒錄程式的時候有的,你看下是否相同
51微控制器與pc機之間的硬體如何串列埠連線?
13樓:匿名使用者
微控制器和微機bai
通訊du的電氣標準zhi要一致,微機串列埠一般是rs232電氣標準dao,所以要加電平轉換晶元,版大多權用max232,一般微控制器實驗板上都提供這樣的標準串列埠。
要分別編寫上位機和下位機軟體程式,微控制器程式參照例程、教科書進行編寫;上位機微機可採用vb,組態軟體,labview等軟體編寫,一般若是簡單的通訊,上位機程式編寫很簡單,例如vb中學會使用ms***m控制項,有vb最基礎知識的一天就能學會。
大可以沒有微控制器,沒有max232,沒有序列介面這些硬體就可以實現學習並掌握微控制器與微機之間的串列埠通訊。proteus可以**微控制器,也是主流軟體。
如今的膝上型電腦幾乎都沒有保留串列埠,而用usb介面取而代之,不過沒關係,有了虛擬串列埠和串列埠除錯助手,這些都解決了。你可以搜尋一下虛擬串列埠,真的很不錯的。
14樓:
單片抄機通過txd和rxd兩條線 連線max232晶元後襲,轉換電平,連線pc串列埠,一般是2、3腳,5腳是地線。一共三根線。
微控制器的txd接電腦的rxd,微控制器的rxd接電腦的txd。地線接地線。
vb中要用ms***m控制項,設定相同的波特率,起始、結束位、校驗位,資料位等。
vb的ms***m控制項設定好埠號,然後portopen= true
就可以接收微控制器資料了。
簡單的就是用查詢的辦法,用乙個定時器,不斷的查詢ms***m控制項的input屬性和inbufferlen屬性。
ms***m控制項有個接收模式,文字或者二進位制,如果簡單的,建議用文字的,比較好處理。
二進位制的,就用位元組陣列接收。也簡單。
檢測溫度的,直接把溫度轉換成數字字元,傳給電腦就ok了,單工的就ok了。
呵呵,女孩也學微控制器?哈哈,時代不同了。
請問51微控制器與51微控制器之間的串列埠通訊程式怎麼寫?
15樓:匿名使用者
1、查詢方式:
#include
main()
sbuf=dat;//傳送
while(!ti);
ti=0;}}
2、中斷方式:
#include
unsigned char dat;
bit flag;
void uart_isr() interrupt 4if(ti)ti=0;
}main()}}
16樓:走在時間的前頭
就是乙個雙機通訊而已嘛,簡單的串列埠通訊,我這裡有一些資料,需要可以來找我。
17樓:做而論道
參考
18樓:匿名使用者
太簡單,找個例程,看看!太多了!一搜一堆
19樓:匿名使用者
給個郵箱,發給你乙個**和**,你參考一下
pc機與微控制器串列埠通訊問題利用串列埠通訊助手將字串發給微控制器微控制器返回字串到串列埠通訊助手
問題出在你傳送時關掉中斷,因為丟掉了資料造成的,解決的辦法是 延時一段時間等待接收完畢後再傳送,比如檢測到有接收資料後,延時10毫秒,之後再傳送回pc。給你指出幾處明顯的錯誤。1.resv沒有最大值的限定,這樣你的程式在執行的時候ch resv 會指向不明位址,因為ch最大為10個位元組。2.某種程...
求助,微控制器串列埠全雙工,MCS51微控制器什麼是全雙工,半雙工,單工序列通訊
微控制器串列埠實現全雙工,用rs232介面,適合於一對一的,如微控制器與電腦。或用rs422,適合於多機通訊,即通常的主從機結構。微控制器作為從機,串列埠全雙工工作還有點意義,作為主機,暫時我還沒有看到明顯的效果!為此思考中 mcs 51微控制器什麼是全雙工,半雙工,單工序列通訊?單工只有一根資料線...
CC2530與普通51微控制器串列埠通訊怎樣實現
1 首先進行連du線 cc2530晶元tx,rx與zhi51微控制器的tx,rx交叉相dao連,然後共地。回 硬體上最好先選用可產生同一波特率的振盪 晶振 主頻,這點在以後是用高波特率通 專訊時尤為屬重要。再把相應的串列埠通訊管腳連在一起。軟體程式設計上設定好統一的串列埠規則 波特率 位數 校驗 應...