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

單片機與計算機串口通信

發布時間:2025-01-12 14:45:13

單片機串口通訊RXD與TXD如何對接

首先需要明白兩個概念,就是DTE和DCE。DTE是指數據終端設備,典型的DTE就是計算機和單片機。DCE是指數據通信設備,典型的DCE就是 MODEM。RS232串口標准中的RXD和TXD都是站在DTE立場上的,而不是DCE。明白了這一點,再講下面的接線方法,就很好理解了。x0dx0a單片機與計算機進行串口通信時,單片機的RXD接計算機的TXD,單片機的TXD接計算機的RXD。x0dx0a(1)使用串口直通線。設計電路時,單片機的RXD連接電路板DB9的TXD,單片機的TXD連接電路板DB9的RXD,具體實現可在232電平轉換晶元處反接。x0dx0a(2)使用串口|交叉線。設計電路時,因為串口線已做交叉,單片機的RXD連接電路板DB9的RXD,單片機的TXD連接電路板DB9的TXD,均直連即可。x0dx0a單片機與串口設備(如GPRS模塊、載波晶元等)通信時,一律將RXD與TXD反接,即單片機的RXD接設備的TXD,單片機的TXD接設備的RXD。(特殊標注其RXD與單片機RXD直連的除外,如華為的EM310)

Ⅱ 如何實現(電腦)PC機與單片機的串列通信

硬體部分有二種情況
1、電腦帶有原生串口,就是主板上帶有串列口,這個情況就太好辦了。用「串口調試助手」測試一下就可以用VB寫程序了。電腦和單片機用232晶元進行介面轉換。
2、電腦沒有原生串口,就是主板上沒有串列口,這個情況有點麻煩。要用USB轉串口的模塊,裝好驅動後會在「設備管理器」中出現一個串口,直接當原生串口用就行了,而且經過USB轉出來的串口一般都TTL電平的,也就是可以直接接單片機不用232晶元的。不過這也要看你用的是哪種模塊了,具體的要看模塊說明書。
最後要注意的是波特率和單片機晶振的選用,不知道你用的是什麼型號的單片機。

軟體部分,可以用簡單的VB編寫上位機軟體,這方面網上有很多的代碼。單片機部分只要按照普通的串列寫程序就行了,測試時可以用「串口調試助手」這款軟體,調試好後再寫VB程序。
上述是我們做項目和產品的經驗,希望對你有所幫助。

Ⅲ 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語言開發單片機程序時,匯編語言是沒有可移植性的)。至於如何能夠減小程序移植的工作量,使得程序具有更好的通用性,以最小的代價就可以平滑地移植到其他單片機平台上,也是一個非常值得探討的問題。

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

PC機作為上位機,而單片機作為下位機,實現二者之間的串列通信時,首先需要確保單片機與PC機之間的連接介面。大多數情況下,可以通過RS-232介面實現連接,如果單片機類型需要,也可以使用USB轉RS-232介面進行轉換。接下來,選擇合適的軟體工具進行調試,例如「串口調試助手」或Windows系統自帶的「超級終端」。寫好的程序可以將字元串通過串口發送給PC機,或通過軟體將字元串寫入單片機,並通過數碼管或液晶顯示。在這個過程中,涉及到通訊協議和串口設置,確保雙方能夠正確通信。如果在操作中遇到問題,可以查閱相關的串口調試資料,因為許多單片機開發板都自帶了這種介面。

對於RS-232介面的連接,需要注意介面的正負極性,確保連接正確。在使用串口調試助手或超級終端時,需要進行串口設置,包括波特率、數據位、停止位和校驗位等參數的配置。正確的設置能夠確保數據的准確傳輸。另外,編寫程序時,需要考慮通訊協議的實現,如ASCII碼或二進制數據傳輸方式,以及錯誤處理機制,以確保數據傳輸的可靠性。

在進行串列通信時,還需要注意硬體連接的質量,如電纜的屏蔽效果、連接器的接觸情況等,這些都是影響通信質量的重要因素。此外,確保單片機和PC機的供電穩定,避免因電源問題導致通信異常。

如果在調試過程中遇到問題,可以查閱相關資料,或者參考其他成功的項目案例。許多單片機開發板都自帶了串口調試功能,可以方便地進行調試和驗證。

閱讀全文

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

熱點內容
remove命令linux 瀏覽:599
php發送郵件鏈接 瀏覽:34
創維冰箱壓縮機 瀏覽:869
nginxopenssl交叉編譯 瀏覽:750
相機卡無法創建新文件夾 瀏覽:225
單片機照明控制系統程序代碼 瀏覽:10
服務編程一體化 瀏覽:471
tx小霸王伺服器是什麼意思 瀏覽:545
計算機編程工齡工資怎麼算 瀏覽:491
macandroid配置環境變數 瀏覽:854
做項目文件夾的圖標 瀏覽:327
數控車床車軸編程教程 瀏覽:728
怎麼解壓截圖軟體 瀏覽:885
演算法符號橢圓 瀏覽:174
網路螞蟻app是什麼 瀏覽:273
php面向對象編程開發 瀏覽:798
唱吧如何解綁其他app 瀏覽:318
程序員去工廠好嗎 瀏覽:497
阿里雲租伺服器企業要實名認證嗎 瀏覽:928
mfc圖形怎麼輸入命令 瀏覽:653