資料介紹
在單片機(jī)系統(tǒng)中,串口(UART,通用異步收發(fā)接口)是一個(gè)非常重要的組成部分。通常使用單片機(jī)串口通過(guò)?RS232/RS485?電平轉(zhuǎn)換芯片與上位機(jī)連接,?以進(jìn)行上位機(jī)與下位機(jī)的數(shù)據(jù)交換、參數(shù)設(shè)置、組成網(wǎng)絡(luò)以及各種外部設(shè)備的?連接等。RS232/RS485?串行接口總線具有成本低、簡(jiǎn)單可靠、容易使用等特點(diǎn),加上其歷史悠久,所以目前應(yīng)用仍然非常廣泛;特別對(duì)于數(shù)據(jù)量不是很大?的場(chǎng)合,串口通信仍然是很好的選擇,有著廣闊的使用前景。
在單片機(jī)編程中,串口占了很重要的地位。傳統(tǒng)方式串口程序的調(diào)試,往往是利用專用的單片機(jī)硬件仿真器。在編寫(xiě)好程序后,利用仿真器來(lái)設(shè)置斷點(diǎn),觀察變量和程序的流程,逐步對(duì)程序進(jìn)行調(diào)試,修正錯(cuò)誤。使用硬件仿真器的確是很有效的方法,但是也有一些缺點(diǎn):
很多仿真器不能做到完全硬件仿真,因而會(huì)造成仿真時(shí)正常,而實(shí)際運(yùn)行時(shí)出現(xiàn)錯(cuò)誤的情況;也有仿真不能通過(guò),但是實(shí)際運(yùn)行正常的情況。
對(duì)于一些較新的芯片或者是表面貼裝的芯片,要么沒(méi)有合適的仿真器或仿真頭;要么就是硬件仿真器非常昂貴,且不容易買(mǎi)到。
有時(shí)由于設(shè)備內(nèi)部結(jié)構(gòu)空間的限制,仿真頭不方便接入。
有的仿真器屬于簡(jiǎn)單的在線仿真型,仿真時(shí)有很多限制。例如速度不高,?實(shí)時(shí)性或穩(wěn)定性不好,對(duì)斷點(diǎn)有限制等,造成仿真起來(lái)不太方便。
1.調(diào)試前的準(zhǔn)備工作
下面介紹一種利用的功能來(lái)實(shí)現(xiàn)?51?單片機(jī)用戶程序的方法。使用這種方?法,無(wú)需任何硬件仿真器,甚至都不需要用戶電路板。所需的只是:
①硬件。1?臺(tái)普通計(jì)算機(jī)(需要帶有?2?個(gè)標(biāo)準(zhǔn)串口)和1根串口線(兩頭都是母頭,連線關(guān)系如圖1所示)。
②串口軟件可以是自己編寫(xiě)的專用調(diào)試或上下位機(jī)通信軟件,也可以是通用的串口軟件(如串口助手、串口調(diào)試等),主要用來(lái)收發(fā)數(shù)據(jù)。
2.基本調(diào)試命令介紹
這個(gè)串口調(diào)試方法主要是利用了?Keil?強(qiáng)大的軟件仿真功能。在新版本(高于?6.0)的?Keil?軟件中,增強(qiáng)了軟件的仿真能力,可以利用軟件仿真更多的單片機(jī)功能。在這些功能中,其中有一個(gè)很重要的功能就是利用計(jì)算機(jī)的串口來(lái)模擬單片機(jī)的串口(這不同于很多軟件在仿真時(shí)使用的激勵(lì)文件方式,可以直接與其他串口進(jìn)行通信,更加方便、靈活)。首先要介紹仿真時(shí)需要使用的兩?個(gè)命令:ASSIGN和MODE。
2.1?ASSIGN命令
將單片機(jī)的串口綁定到計(jì)算機(jī)的串口?;臼褂梅绞綖椋?
ASSIGN?channeloutreg
其中:?channel?代表計(jì)算機(jī)的串口,可以是?COM1、COM2、COM3?或?COM4;?而?inreg?和?outreg?代表單片機(jī)的串口。對(duì)于只有一個(gè)串口的普通單片機(jī),即?SIN?和?SOUT;對(duì)于有兩個(gè)或者多個(gè)串口的單片機(jī),即?SnIN?和?SnOUT(n=0,?1,…即單片機(jī)的串口號(hào))。
例如:ASSIGN?COM1SOUT
將計(jì)算機(jī)的串口1綁定到單片機(jī)的串口(針對(duì)只有一個(gè)串口的單片機(jī))。
ASSIGN?COM2S0OUT
將計(jì)算機(jī)的串口?2?綁定到單片機(jī)的串口?0(針對(duì)有多個(gè)串口的單片機(jī),注意串口號(hào)的位置)。
需要注意的是,參數(shù)的括號(hào)是不能省略的,而outreg則是沒(méi)有括號(hào)的。
2.2?MODE命令
設(shè)置被綁定計(jì)算機(jī)串口的參數(shù)?;臼褂梅绞綖椋?
MODE?COMx?baudrate,?parity,?databits,?stopbits
其中:?COMx(x?=?1,2,…)代表計(jì)算機(jī)的串口號(hào);baudrate?代表串口?的波特率;parity?代表校驗(yàn)方式;databits?代表數(shù)據(jù)位長(zhǎng)度;stopbits?代表?停止位長(zhǎng)度。
例如:MODE?COM1?9600,?n,?8,?1
設(shè)置串口1。波特率為9600,無(wú)校驗(yàn)位,8位數(shù)據(jù),1位停止位。
MODE?COM2?19200,?1,?8,?1
設(shè)置串口2。波特率為19200,奇校驗(yàn),8位數(shù)據(jù),1位停止位。
使用以上兩個(gè)命令,就能夠?qū)⒂?jì)算機(jī)的串口模擬成單片機(jī)的串口了。在進(jìn)?行軟件仿真時(shí),所有發(fā)送到被綁定的計(jì)算機(jī)串口上的數(shù)據(jù)都會(huì)轉(zhuǎn)發(fā)到?Keil?模擬?的單片機(jī)串口上,用戶程序可以通過(guò)中斷處理程序或查詢方式接收到這些數(shù)?據(jù);同樣,單片機(jī)程序中發(fā)送到單片機(jī)串口上的數(shù)據(jù)也會(huì)通過(guò)被綁定的計(jì)算機(jī)串口發(fā)送出來(lái),可以被其他軟件所接收。利用這個(gè)特點(diǎn),就可以方便地仿真、?調(diào)試單片機(jī)的串口部分程序。要注意的是,這兩個(gè)命令需要一起使用。
2.3?仿真步驟
首先,用串口線將計(jì)算機(jī)的兩個(gè)串口連接起來(lái)(或者是兩臺(tái)計(jì)算機(jī)上的兩?個(gè)串口)。這兩個(gè)串口一個(gè)用來(lái)模擬單片機(jī)串口,另一個(gè)給調(diào)試程序使用。這?個(gè)由用戶自己分配,沒(méi)有特殊要求。
其次,編寫(xiě)好用戶程序,并編譯通過(guò)。
然后,設(shè)置工程文件(Project)的相關(guān)參數(shù),如圖?2?和圖?3?所示。主要是?選擇模式(Use?Simulator)以及晶振參數(shù)。
為了不必每次進(jìn)入仿真狀態(tài)后,都需要輸入串口參數(shù)設(shè)置命令,可以建立一個(gè)初始化文件。初始化文件是一個(gè)普通的文本文件,內(nèi)容就是仿真時(shí)需要的命令,按照順序一行輸入一條。如圖?3?所示,建立了一個(gè)?debug.ini?的初始化文件。這樣,當(dāng)每次進(jìn)入仿真調(diào)試狀態(tài)時(shí),就會(huì)自動(dòng)載入?debug.ini?的內(nèi)容進(jìn)行初始化。
為了正確仿真串口,在軟件仿真調(diào)試時(shí),在用戶的?Keil?工程文件的屬性中,還需要設(shè)置實(shí)際使用的晶振頻率。這個(gè)參數(shù)非常重要,直接影響通信的波特率,可以按照實(shí)際使用的參數(shù)進(jìn)行設(shè)置。要注意,這個(gè)參數(shù)的單位是MHz。
設(shè)置好參數(shù)后,就可以進(jìn)行仿真了。單擊工具欄的圖標(biāo) 進(jìn)入?Debug(仿
真調(diào)試)狀態(tài),在?Output?window?窗口中的?command?文本框(一般是在左下角)中輸入上面介紹的命令。例如,將PC機(jī)的串口1設(shè)置為單片機(jī)的串口:
mode?com1?9600,0,8,1
assign?com1sout
然后設(shè)置斷點(diǎn),一般是在關(guān)鍵地方或與串口相關(guān)聯(lián)的地方設(shè)置。再單擊圖標(biāo)運(yùn)行(Run)用戶程序,使用戶程序運(yùn)轉(zhuǎn)起來(lái)(不然是接收不到串口數(shù)據(jù)的)。這時(shí)再使用軟件或用戶調(diào)試軟件,發(fā)送通信命令或者數(shù)據(jù)包,看用戶程序是否進(jìn)入斷點(diǎn),以及相關(guān)的變量是否正確。還可以有意發(fā)送帶有錯(cuò)誤數(shù)據(jù)的數(shù)據(jù)包,以觀察用戶程序的異常處理部分是否正常。一旦發(fā)現(xiàn)程序中的錯(cuò)誤,?可以馬上停止仿真調(diào)試,立即修改代碼,然后再次重復(fù)上面的步驟進(jìn)行仿真。?因?yàn)椴恍枰c用戶目標(biāo)板聯(lián)機(jī),也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬件仿真器的基本一樣,只不過(guò)現(xiàn)在使用的是軟件仿真。
需要注意的是:仿真時(shí)單片機(jī)串口實(shí)際的波特率由?MODE?命令來(lái)指定,單片機(jī)程序中的?TMOD、SCON?等參數(shù)是不影響串口仿真狀態(tài)的(也就是說(shuō)這些參數(shù)不?影響仿真的波特率,即使它們是錯(cuò)誤的)。但是中斷的使能位(如?ES、EA?等)?還是起作用的,如果ES或EA被禁止,那么就不會(huì)進(jìn)入串口中斷。
因?yàn)檫@種方法是利用計(jì)算機(jī)的串口來(lái)仿真單片機(jī)的串口,而仿真是通過(guò)?Keil?軟件來(lái)轉(zhuǎn)換串口上的數(shù)據(jù),不是直接轉(zhuǎn)發(fā)數(shù)據(jù)的,所以在實(shí)際仿真時(shí),處理速度會(huì)比實(shí)際單片機(jī)運(yùn)行時(shí)稍微低一點(diǎn)。比方說(shuō)仿真狀態(tài)時(shí)?1s?只能發(fā)送/接收?10?個(gè)數(shù)據(jù)幀,但在單片機(jī)硬件上運(yùn)行時(shí)可能?1s?就可以接收/發(fā)送?50?個(gè)數(shù)據(jù)?幀。這與使用的計(jì)算機(jī)的速度有關(guān),但對(duì)仿真來(lái)說(shuō),是沒(méi)有任何影響的。
對(duì)于多串口的單片機(jī),從理論上來(lái)說(shuō),可以一次綁定多個(gè)串口,只要計(jì)算機(jī)有足夠多的串口?;旧希褂眠@種方法需要占用計(jì)算機(jī)的串口數(shù)量是單片?機(jī)綁定串口的?2?倍。一個(gè)串口被?Keil?占用,用來(lái)模擬單片機(jī)的串口;另外一個(gè)?串口被計(jì)算機(jī)占用,用來(lái)給單片機(jī)的串口收發(fā)數(shù)據(jù)。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 德飛萊串口調(diào)試軟件下載 25次下載
- 串口調(diào)試軟件免費(fèi)下載 13次下載
- 串口調(diào)試助手V2.2軟件程序下載 47次下載
- 串口調(diào)試助手V2.80軟件下載 102次下載
- keil軟件學(xué)習(xí)資料下載 20次下載
- Keil程序調(diào)試窗口資料下載
- 這些單片機(jī)編程經(jīng)驗(yàn)總結(jié),真的很實(shí)用,不看就虧大了!資料下載
- 你的單片機(jī)程序怎么調(diào)試?我教你用Keil uVision2軟件如何調(diào)試資料下載
- STM32 使用 Keil MDK 中的軟件邏輯分析儀參與硬件調(diào)試資料下載
- STM32 經(jīng)驗(yàn)總結(jié),這些你都知道嗎資料下載
- 常用電感,這些你都知道嗎資料下載
- KEIL C硬件仿真的操作步驟資料免費(fèi)下載 17次下載
- 串口調(diào)試助手軟件免費(fèi)下載 64次下載
- scommtest 串口調(diào)試軟件 38次下載
- 串口調(diào)試軟件下載
- 仿真能給你提速50%——說(shuō)說(shuō)系統(tǒng)仿真的重要性 684次閱讀
- 用proteus和keil實(shí)現(xiàn)串口通信仿真 4422次閱讀
- 使用Keil軟件新建單片機(jī)工程并點(diǎn)亮LED燈 2088次閱讀
- 常規(guī)的串口調(diào)試工具 8519次閱讀
- 使用Keil下載Hex文件進(jìn)STM32 8196次閱讀
- 基于STM32中調(diào)試與串口之間的信息傳輸 6417次閱讀
- 一文知道EDBG的虛擬串口功能 5303次閱讀
- 友善串口調(diào)試助手怎么使用及使用方法說(shuō)明 12.6w次閱讀
- keil如何使用?圖文教程告訴你keil怎么使用 9.8w次閱讀
- keil如何全局替換字符串 8603次閱讀
- 基于Proteus與Keil μVision3軟件的自動(dòng)取款機(jī)仿真設(shè)計(jì) 2539次閱讀
- 介紹利用Keil的軟件仿真功能來(lái)實(shí)現(xiàn)51單片機(jī)串口調(diào)試用戶程序的方法 3w次閱讀
- 串口通信調(diào)試軟件的功能與使用方法 1.7w次閱讀
- keil uvision2下載|keil uvision2漢化免費(fèi)版下載 1.1w次閱讀
- 單片機(jī)Keil軟件仿真與調(diào)試技巧 5.9w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1490次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費(fèi)
- 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
- 0.63 MB | 3次下載 | 免費(fèi)
- 89天練會(huì)電子電路識(shí)圖
- 5.91 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多