資料介紹
在單片機系統(tǒng)中,串口(UART,通用異步收發(fā)接口)是一個非常重要的組成部分。通常使用單片機串口通過?RS232/RS485?電平轉換芯片與上位機連接,?以進行上位機與下位機的數(shù)據(jù)交換、參數(shù)設置、組成網(wǎng)絡以及各種外部設備的?連接等。RS232/RS485?串行接口總線具有成本低、簡單可靠、容易使用等特點,加上其歷史悠久,所以目前應用仍然非常廣泛;特別對于數(shù)據(jù)量不是很大?的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。
在單片機編程中,串口占了很重要的地位。傳統(tǒng)方式串口程序的調(diào)試,往往是利用專用的單片機硬件仿真器。在編寫好程序后,利用仿真器來設置斷點,觀察變量和程序的流程,逐步對程序進行調(diào)試,修正錯誤。使用硬件仿真器的確是很有效的方法,但是也有一些缺點:
很多仿真器不能做到完全硬件仿真,因而會造成仿真時正常,而實際運行時出現(xiàn)錯誤的情況;也有仿真不能通過,但是實際運行正常的情況。
對于一些較新的芯片或者是表面貼裝的芯片,要么沒有合適的仿真器或仿真頭;要么就是硬件仿真器非常昂貴,且不容易買到。
有時由于設備內(nèi)部結構空間的限制,仿真頭不方便接入。
有的仿真器屬于簡單的在線仿真型,仿真時有很多限制。例如速度不高,?實時性或穩(wěn)定性不好,對斷點有限制等,造成仿真起來不太方便。
1.調(diào)試前的準備工作
下面介紹一種利用的功能來實現(xiàn)?51?單片機用戶程序的方法。使用這種方?法,無需任何硬件仿真器,甚至都不需要用戶電路板。所需的只是:
①硬件。1?臺普通計算機(需要帶有?2?個標準串口)和1根串口線(兩頭都是母頭,連線關系如圖1所示)。
②串口軟件可以是自己編寫的專用調(diào)試或上下位機通信軟件,也可以是通用的串口軟件(如串口助手、串口調(diào)試等),主要用來收發(fā)數(shù)據(jù)。
2.基本調(diào)試命令介紹
這個串口調(diào)試方法主要是利用了?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,…即單片機的串口號)。
例如:ASSIGN?COM1SOUT
將計算機的串口1綁定到單片機的串口(針對只有一個串口的單片機)。
ASSIGN?COM2S0OUT
將計算機的串口?2?綁定到單片機的串口?0(針對有多個串口的單片機,注意串口號的位置)。
需要注意的是,參數(shù)的括號是不能省略的,而outreg則是沒有括號的。
2.2?MODE命令
設置被綁定計算機串口的參數(shù)?;臼褂梅绞綖椋?
MODE?COMx?baudrate,?parity,?databits,?stopbits
其中:?COMx(x?=?1,2,…)代表計算機的串口號;baudrate?代表串口?的波特率;parity?代表校驗方式;databits?代表數(shù)據(jù)位長度;stopbits?代表?停止位長度。
例如:MODE?COM1?9600,?n,?8,?1
設置串口1。波特率為9600,無校驗位,8位數(shù)據(jù),1位停止位。
MODE?COM2?19200,?1,?8,?1
設置串口2。波特率為19200,奇校驗,8位數(shù)據(jù),1位停止位。
使用以上兩個命令,就能夠將計算機的串口模擬成單片機的串口了。在進?行軟件仿真時,所有發(fā)送到被綁定的計算機串口上的數(shù)據(jù)都會轉發(fā)到?Keil?模擬?的單片機串口上,用戶程序可以通過中斷處理程序或查詢方式接收到這些數(shù)?據(jù);同樣,單片機程序中發(fā)送到單片機串口上的數(shù)據(jù)也會通過被綁定的計算機串口發(fā)送出來,可以被其他軟件所接收。利用這個特點,就可以方便地仿真、?調(diào)試單片機的串口部分程序。要注意的是,這兩個命令需要一起使用。
2.3?仿真步驟
首先,用串口線將計算機的兩個串口連接起來(或者是兩臺計算機上的兩?個串口)。這兩個串口一個用來模擬單片機串口,另一個給調(diào)試程序使用。這?個由用戶自己分配,沒有特殊要求。
其次,編寫好用戶程序,并編譯通過。
然后,設置工程文件(Project)的相關參數(shù),如圖?2?和圖?3?所示。主要是?選擇模式(Use?Simulator)以及晶振參數(shù)。
為了不必每次進入仿真狀態(tài)后,都需要輸入串口參數(shù)設置命令,可以建立一個初始化文件。初始化文件是一個普通的文本文件,內(nèi)容就是仿真時需要的命令,按照順序一行輸入一條。如圖?3?所示,建立了一個?debug.ini?的初始化文件。這樣,當每次進入仿真調(diào)試狀態(tài)時,就會自動載入?debug.ini?的內(nèi)容進行初始化。
為了正確仿真串口,在軟件仿真調(diào)試時,在用戶的?Keil?工程文件的屬性中,還需要設置實際使用的晶振頻率。這個參數(shù)非常重要,直接影響通信的波特率,可以按照實際使用的參數(shù)進行設置。要注意,這個參數(shù)的單位是MHz。
設置好參數(shù)后,就可以進行仿真了。單擊工具欄的圖標 進入?Debug(仿
真調(diào)試)狀態(tài),在?Output?window?窗口中的?command?文本框(一般是在左下角)中輸入上面介紹的命令。例如,將PC機的串口1設置為單片機的串口:
mode?com1?9600,0,8,1
assign?com1sout
然后設置斷點,一般是在關鍵地方或與串口相關聯(lián)的地方設置。再單擊圖標運行(Run)用戶程序,使用戶程序運轉起來(不然是接收不到串口數(shù)據(jù)的)。這時再使用軟件或用戶調(diào)試軟件,發(fā)送通信命令或者數(shù)據(jù)包,看用戶程序是否進入斷點,以及相關的變量是否正確。還可以有意發(fā)送帶有錯誤數(shù)據(jù)的數(shù)據(jù)包,以觀察用戶程序的異常處理部分是否正常。一旦發(fā)現(xiàn)程序中的錯誤,?可以馬上停止仿真調(diào)試,立即修改代碼,然后再次重復上面的步驟進行仿真。?因為不需要與用戶目標板聯(lián)機,也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬件仿真器的基本一樣,只不過現(xiàn)在使用的是軟件仿真。
需要注意的是:仿真時單片機串口實際的波特率由?MODE?命令來指定,單片機程序中的?TMOD、SCON?等參數(shù)是不影響串口仿真狀態(tài)的(也就是說這些參數(shù)不?影響仿真的波特率,即使它們是錯誤的)。但是中斷的使能位(如?ES、EA?等)?還是起作用的,如果ES或EA被禁止,那么就不會進入串口中斷。
因為這種方法是利用計算機的串口來仿真單片機的串口,而仿真是通過?Keil?軟件來轉換串口上的數(shù)據(jù),不是直接轉發(fā)數(shù)據(jù)的,所以在實際仿真時,處理速度會比實際單片機運行時稍微低一點。比方說仿真狀態(tài)時?1s?只能發(fā)送/接收?10?個數(shù)據(jù)幀,但在單片機硬件上運行時可能?1s?就可以接收/發(fā)送?50?個數(shù)據(jù)?幀。這與使用的計算機的速度有關,但對仿真來說,是沒有任何影響的。
對于多串口的單片機,從理論上來說,可以一次綁定多個串口,只要計算機有足夠多的串口?;旧?,使用這種方法需要占用計算機的串口數(shù)量是單片?機綁定串口的?2?倍。一個串口被?Keil?占用,用來模擬單片機的串口;另外一個?串口被計算機占用,用來給單片機的串口收發(fā)數(shù)據(jù)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 德飛萊串口調(diào)試軟件下載 27次下載
- 串口調(diào)試工具軟件免費下載 86次下載
- 串口調(diào)試軟件免費下載 15次下載
- 串口調(diào)試助手V2.2軟件程序下載 48次下載
- 串口調(diào)試助手V2.80軟件下載 103次下載
- keil軟件學習資料下載 20次下載
- Keil程序調(diào)試窗口資料下載
- 這些單片機編程經(jīng)驗總結,真的很實用,不看就虧大了!資料下載
- 你的單片機程序怎么調(diào)試?我教你用Keil uVision2軟件如何調(diào)試資料下載
- STM32 使用 Keil MDK 中的軟件邏輯分析儀參與硬件調(diào)試資料下載
- STM32 經(jīng)驗總結,這些你都知道嗎資料下載
- 常用電感,這些你都知道嗎資料下載
- KEIL C硬件仿真的操作步驟資料免費下載 17次下載
- scommtest 串口調(diào)試軟件 39次下載
- 串口調(diào)試軟件下載
- 仿真能給你提速50%——說說系統(tǒng)仿真的重要性 2.5k次閱讀
- 用proteus和keil實現(xiàn)串口通信仿真 9.9k次閱讀
- 使用Keil軟件新建單片機工程并點亮LED燈 5.4k次閱讀
- 常規(guī)的串口調(diào)試工具 9.8k次閱讀
- 單片機沒有串口時如何打印調(diào)試信息 3.2k次閱讀
- 使用Keil下載Hex文件進STM32 9.6k次閱讀
- 一文知道EDBG的虛擬串口功能 6.7k次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說明 13w次閱讀
- keil如何使用?圖文教程告訴你keil怎么使用 10.2w次閱讀
- keil如何全局替換字符串 1w次閱讀
- 基于Proteus與Keil μVision3軟件的自動取款機仿真設計 3.1k次閱讀
- 介紹利用Keil的軟件仿真功能來實現(xiàn)51單片機串口調(diào)試用戶程序的方法 3.2w次閱讀
- 串口通信調(diào)試軟件的功能與使用方法 1.8w次閱讀
- keil uvision2下載|keil uvision2漢化免費版下載 1.2w次閱讀
- 單片機Keil軟件仿真與調(diào)試技巧 6.7w次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論