導航:首頁 > 操作系統 > 單片機與pc機串口通信

單片機與pc機串口通信

發布時間:2023-02-19 19:34:58

A. PC機與單片機之間的串口通信的程序

http://hi..com/bluebasket/blog/item/835033097c7117ab2fddd46f.html
Keil軟體模擬的串口調試技巧
在單片機系統中,串口(UART,通用非同步收發介面)是一個非常重要的組成部分。通常使用單片機串口通過RS232/RS485電平轉換晶元與上位機連接,以進行上位機與下位機的數據交換、參數設置、組成網路以及各種外部設備的連接等。RS232/RS485串列介面匯流排具有成本低、簡單可靠、容易使用等特點,加上其歷史悠久,所以目前應用仍然非常廣泛;特別對於數據量不是很大的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。 在單片機編程中,串口佔了很重要的地位。傳統方式串口程序的調試,往往是利用專用的單片機硬體模擬器。在編寫好程序後,利用模擬器來設置斷點,觀察變數和程序的流程,逐步對程序進行調試,修正錯誤。使用硬體模擬器的確是很有效的方法,但是也有一些缺點:

很多模擬器不能做到完全硬體模擬,因而會造成模擬時正常,而實際運行時出現錯誤的情況;也有模擬不能通過,但是實際運行正常的情況。
對於一些較新的晶元或者是表面貼裝的晶元,要麼沒有合適的模擬器或模擬頭;要麼就是硬體模擬器非常昂貴,且不容易買到。
有時由於設備內部結構空間的限制,模擬頭不方便接入。
有的模擬器屬
於簡單的在線模擬型,模擬時有很多限制。例如速度不高,實時性或穩定性不好,對斷點有限制等,造成模擬起來不太方便。
1 調試前的准備工作

下面介紹一種利用Keil的軟體模擬功能來實現51單片機串口調試用戶程序的方法。使用這種方法,無需任何硬體模擬器,甚至都不需要用戶電路板。所需的只是:

① 硬體。1台普通計算機(需要帶有2個標准串口)和1根串口線(兩頭都是母頭,連線關系如圖1所示)。

② 串口軟體可以是自己編寫的專用調試或上下位機通信軟體,也可以是通用的串口軟體(如串口助手、串口調試等),主要用來收發數據。如果沒有合適的串口調試軟體,則可使用筆者編寫的一個免費的串口小工具TurboCom。除了與其他軟體一樣的數據收發功能外,它還有定時輪流發送自定義數據幀和自動應答(接收到指定數據幀後,自動返回相應的數據幀)這兩個很有用的功能,特別適合於老化測試。

如果沒有串口線,用虛擬串口可以把物理通道連同,在網上下個這樣的軟體就OK了。

2 基本調試命令介紹

這個串口調試方法主要是利用了Keil強大的軟體模擬功能。在新版本(高於6.0)的Keil軟體中,增強了軟體的模擬能力,可以利用軟體模擬更多的單片機功能。在這些功能中,其中有一個很重要的功能就是利用計算機的串口來模擬單片機的串口(這不同於很多軟體在模擬時使用的激勵文件方式,可以直接與其他串口進行通信,更加方便、靈活)。首先要介紹模擬時需要使用的兩個命令:ASSIGN和MODE。

2.1 ASSIGN命令

將單片機的串口綁定到計算機的串口。基本使用方式為:

ASSIGN channeloutreg

其中: channel代表計算機的串口,可以是COM1、COM2、COM3或COM4;而inreg和outreg代表單片機的串口。對於只有一個串口的普通單片機,即SIN和SOUT;對於有兩個或者多個串口的單片機,即SnIN和SnOUT(n=0,1,…即單片機的串口號)。

圖1 串口連線示意圖

例如:

ASSIGN COM1SOUT

將計算機的串口1綁定到單片機的串口(針對只有一個串口的單片機)。

ASSIGN COM2S0OUT

將計算機的串口2綁定到單片機的串口0(針對有多個串口的單片機,注意串口號的位置)。

需要注意的是,參數的括弧是不能省略的,而outreg則是沒有括弧的。

2.2 MODE命令

設置被綁定計算機串口的參數。基本使用方式為:

MODE COMx baudrate, parity, databits, stopbits

其中: COMx(x = 1,2,…)代表計算機的串口號;baudrate代表串口的波特率;parity代表校驗方式;databits代表數據位長度;stopbits代錶停止位長度。

例如:

MODE COM1 9600, n, 8, 1

設置串口1。波特率為9 600,無校驗位,8位數據,1位停止位。

MODE COM2 19200, 1, 8, 1

設置串口2。波特率為19 200,奇校驗,8位數據,1位停止位。

使用以上兩個命令,就能夠將計算機的串口模擬成單片機的串口了。在進行軟體模擬時,所有發送到被綁定的計算機串口上的數據都會轉發到Keil模擬的單片機串口上,用戶程序可以通過中斷處理程序或查詢方式接收到這些數據;同樣,單片機程序中發送到單片機串口上的數據也會通過被綁定的計算機串口發送出來,可以被其他軟體所接收。利用這個特點,就可以方便地模擬、調試單片機的串口部分程序。要注意的是,這兩個命令需要一起使用。

2.3 模擬步驟

首先,用串口線將計算機的兩個串口連接起來(或者是兩台計算機上的兩個串口)。這兩個串口一個用來模擬單片機串口,另一個給調試程序使用。這個由用戶自己分配,沒有特殊要求。

其次,編寫好用戶程序,並編譯通過。

然後,設置工程文件(Project)的相關參數,如圖2和圖3所示。主要是選擇軟體模擬模式(Use Simulator)以及晶振參數。

圖2 模擬參數設置

為了不必每次進入模擬狀態後,都需要輸入串口參數設置命令,可以建立一個初始化文件。初始化文件是一個普通的文本文件,內容就是模擬時需要的命令,按照順序一行輸入一條。如圖2所示,建立了一個debug.ini的初始化文件。這樣,當每次進入模擬調試狀態時,Keil就會自動載入 debug.ini的內容進行初始化。

圖3 晶振參數設置

為了正確
模擬串口,在軟體模擬調試時,在用戶的Keil工程文件的屬性中,還需要設置實際使用的晶振頻率。這個參數非常重要,直接影響通信的波特率,可以按照實際使用的參數進行設置。要注意,這個參數的單位是MHz。

設置好參數後,就可以進行模擬了。單擊工具欄的圖標按此在新窗口瀏覽圖片進入Debug(模擬調試)狀態,在Output window窗口中的command文本框(一般是在左下角)中輸入上面介紹的命令。例如,將PC機的串口1設置為單片機的串口:

mode com1 9600,0,8,1

assign com1 Sout

然後設置斷點,一般是在關鍵地方或與串口相關聯的地方設置。再單擊圖標運行(Run)用戶程序,使用戶程序運轉起來(不然是接收不到串口數據的)。這時再使用串口調試軟體或用戶調試軟體,發送通信命令或者數據包,看用戶程序是否進入斷點,以及相關的變數是否正確。還可以有意發送帶有錯誤數據的數據包,以觀察用戶程序的異常處理部分是否正常。一旦發現程序中的錯誤,可以馬上停止模擬調試,立即修改代碼,然後再次重復上面的步驟進行模擬。因為不需要與用戶目標板聯機,也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬體模擬器的基本一樣,只不過現在使用的是軟體模擬。

需要注意的是:模擬時單片機串口實際的波特率由MODE命令來指定,單片機程序中的TMOD、SCON等參數是不影響串口模擬狀態的(也就是說這些參數不影響模擬的波特率,即使它們是錯誤的)。但是中斷的使能位(如ES、EA等)還是起作用的,如果ES或EA被禁止,那麼就不會進入串口中斷。

因為這種方法是利用計算機的串口來模擬單片機的串口,而模擬是通過Keil軟體來轉換串口上的數據,不是直接轉發數據的,所以在實際模擬時,處理速度會比實際單片機運行時稍微低一點。比方說模擬狀態時1 s只能發送/接收10個數據幀,但在單片機硬體上運行時可能1 s就可以接收/發送50個數據幀。這與使用的計算機的速度有關,但對模擬來說,是沒有任何影響的。

對於多串口的單片機,從理論上來說,可以一次綁定多個串口,只要計算機有足夠多的串口。基本上,使用這種方法需要佔用計算機的串口數量是單片機綁定串口的2倍。一個串口被Keil佔用,用來模擬單片機的串口;另外一個串口被計算機佔用,用來給單片機的串口收發數據。

3 小結

這里介紹的方法對C51和匯編語言都是適合的。它最大的好處就是簡單、方便,容易使用,不需要使用任何電路,也沒有特殊的要求;甚至可以在硬體電路製作好之前就將串口部分的程序編寫、調試完畢。筆者使用這種方法已經很長時間了,事實證明這種方法確實非常有效。其實對於51單片機,Keil的模擬功能實在是太強大了,只要充分掌握其特點,能夠熟練利用它,就可以解決工作中的大部分問題。很多工作都可以使用軟體模擬來完成,根本無需任何硬體模擬器;只有一些新的外部器件的時序、介面的調試才有可能需要用到硬體模擬器。目前介紹Keil軟體模擬這方面的參考書籍很少,有些講的還是老版本的用法,不過沒有關系,Keil的幫助文件寫得很詳細、很清楚,只要認真看明白就會使用了。使用熟練後,就會發現Keil的功能相當強。

對於串口編程,51單片機有Keil這個功能強大的開發軟體,給我們帶來了極大的便利;而在其他單片機軟體的開發中,目前還沒有這么強大的開發工具和方便的調試手段。這里有個變通的辦法,就是可以先在Keil中編寫並調試好串口程序,然後將程序移植到其他單片機平台中(筆者在PIC18單片機開發中就使用了這種方法,收到了很好的效果。當然這是指在使用C語言開發單片機程序時,匯編語言是沒有可移植性的)。至於如何能夠減小程序移植的工作量,使得程序具有更好的通用性,以最小的代價就可以平滑地移植到其他單片機平台上,也是一個非常值得探討的問題。

B. pc機和單片機的串列通信怎樣實現!

pc機是上位機,單片機是下位機,首先確定單片機同pc連接號232
介面的或者usb轉232 視你的單片機類型而定下載個軟體串口調試助手或者windows自帶的超級終端調試,寫好的程序將字元串發送給pc機或者用軟體將字元串寫如單片機通過數碼管或者液晶顯示,其中牽涉通訊協議和串口設置,程序生活如歌如上已經說了,可以借鑒下。是在沒有明了,找些串口調試的資料在單片機開發版裡面,許多都帶了!

C. 51單片機與PC串口通信程序,求指導 ! 具體要求如下:

功能如下:
1、程序燒進去,串口接收顯示一個菜單!《如圖》A、B、……分別代表一定的功能
例如:A項,代表修改ds1302的時間的數組
2、按照菜單的提示,如:發送A就進入了修改ds1302的時間函數,串口接收界面顯
示 A,像圖片那種,並顯示修改ds1302的操作方法,如從串口發送界面發送
0162115347就表示10年10月16日21時15分34秒星期7,
3、正如第二所說,馬上輸入1010162115347,就成功的修改了ds1302相關數據,
並返回change success!到串口界面!
4、設置一個功能就是返回主菜單界面。然後又可以就行第二、三步的操作!
5、通過串口,讀取單片機裡面相關的數據,如時鍾的數據
6、說明:可以不要ds1320相關的程序,可以用發光二極體亮來代表修改功能!

D. PC與單片機串列通信控制背景和意義

計算機與計算機或計算機與終端之間的數據傳送可以採用串列通訊和並行通訊二種方式。由於串列通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛採用。 在串列通訊時,要求通訊雙方都採用一個標准介面,使不同 的設備可以方便地連接起來進行通訊。 RS-232-C介面(又稱 EIA RS-232-C)是目前最常用的一種串列通訊介面。它是在1970年由美國電子工業協會(EIA)聯合貝爾系統、 數據機廠家及計算機終端生產廠家共同制定的用於串列通訊的標 准。它的全名是「數據終端設備(DTE)和數據通訊設備(DCE)之間 串列二進制數據交換介面技術標准」該標准規定採用一個25個腳的 DB25連接器,對連接器的每個引腳的信號內容加以規定,還對各種信 號的電平加以規定。

隨著計算機技術尤其是單片微型機技術的發展,人們已越來越多地採用單片機來對一些工業控制系統中如溫度、流量和壓力等參數進行檢測和控制。PC機具有強大的監控和管理功能,而單片機則具有快速及靈活的控制特點,通過PC機的RS-232串列介面與外部設備進行通信,是許多測控系統中常用的一種通信解決方案。因此如何實現PC機與單片機之間的通訊具有非常重要的現實意義。

E. pc機與單片機通信

1、不知道你用什麼單片機,無論什麼單片機,串口通信都是標準的RS232,你在單片機中開串口通信,設置好數據位數和波特率,發送數據即可。

2、串口調試只是一個簡單的上位機小軟體,你網上隨便搜索一下,一大堆。這種類似的軟體可以接收外部傳輸給電腦的串口數據,當然,電腦也可以通過此軟體將數據傳輸給外部設備,在這里就是指你的單片機,它們的協議是RS232。

3、PL2303網上有很多資料的,你要學會自己先搜索資料,嘗試自己解決問題,不要一遇到問題就先去問人,實在自己解決不了再去求助,否則會阻礙你的進步。當然,不是說你不會進步,只是進步得會慢很多很多。

自已解決問題,也是一種能力的體現。

PL2303的圖,我給你一份吧,我一直用著的,保證是可以實現的,請放心使用。就在文件裡面有,你找一下PL2303那個模塊電路就可以找到了。

有問題互相交流,大家一起進步!

F. C51單片機如何從PC機串口接收字元串

1、單片機串口不管從哪
接收數據
都是遵循串口協議的。字元串就是一個挨一個的ASKII碼,中間沒有加任何東西。2、不發字元串結束標志。3、回車符可以發送,但具體發不發送看你程序了。

G. 1:PC機和單片機之間進行串口通信需要加什麼樣的晶元為什麼要加

1.需要加232晶元
2.PC機的串口邏輯為:
1-- -3V~-15V
0-- +3V~+15V
而單片機串口的邏輯為:
1-- +5V(大多單片機為+5V)
0-- 0V
所以為了實現PC機與單片機之間的通需要一個IC來完成兩種不同邏輯電壓的連接(電平轉換),通常使用的是MAX232 IC,當然自已做相應的路也是可以的,只要可靠性要求不是很高!

閱讀全文

與單片機與pc機串口通信相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396