




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Keil軟件仿真的串口調試技巧引言在單片機系統(tǒng)中,串口(uart,通用異步收發(fā)接口)是一個非常重要的組成部分。通常使用單片機串口通過rs232/rs485電平轉換芯片與上位機連接,以進行上位機與下位機的數(shù)據(jù)交換、參數(shù)設置、組成網(wǎng)絡以及各種外部設備的連接等。rs232/rs485串行接口總線具有成本低、簡單可靠、容易使用等特點,加上其歷史悠久,所以目前應用仍然非常廣泛;特別對于數(shù)據(jù)量不是很大的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。在單片機編程中,串口占了很重要的地位。傳統(tǒng)方式串口程序的調試,往往是利用專用的單片機硬件仿真器。在編寫好程序后,利用仿真器來設置斷點,觀察變量和程序的流程,逐步對程序進行調試,修正錯誤。使用硬件仿真器的確是很有效的方法,但是也有一些缺點: 很多仿真器不能做到完全硬件仿真,因而會造成仿真時正常,而實際運行時出現(xiàn)錯誤的情況;也有仿真不能通過,但是實際運行正常的情況。 對于一些較新的芯片或者是表面貼裝的芯片,要么沒有合適的仿真器或仿真頭;要么就是硬件仿真器非常昂貴,且不容易買到。 有時由于設備內部結構空間的限制,仿真頭不方便接入。 有的仿真器屬于簡單的在線仿真型,仿真時有很多限制。例如速度不高,實時性或穩(wěn)定性不好,對斷點有限制等,造成仿真起來不太方便。1 調試前的準備工作下面介紹一種利用keil的軟件仿真功能來實現(xiàn)51單片機串口調試用戶程序的方法。使用這種方法,無需任何硬件仿真器,甚至都不需要用戶電路板。所需的只是: 硬件。臺普通計算機(需要帶有2個標準串口)和根串口線(兩頭都是母頭,連線關系如圖1所示)。 串口軟件可以是自己編寫的專用調試或上下位機通信軟件,也可以是通用的串口軟件(如串口助手、串口調試等),主要用來收發(fā)數(shù)據(jù)。如果沒有合適的串口調試軟件,則可使用筆者編寫的一個免費的串口小工具turbocom。除了與其他軟件一樣的數(shù)據(jù)收發(fā)功能外,它還有定時輪流發(fā)送自定義數(shù)據(jù)幀和自動應答(接收到指定數(shù)據(jù)幀后,自動返回相應的數(shù)據(jù)幀)這兩個很有用的功能,特別適合于老化測試。這個小工具可以從http: /下載。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(針對有多個串口的單片機,注意串口號的位置)。需要注意的是,參數(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。波特率為9 600,無校驗位,8位數(shù)據(jù),1位停止位。mode com2 19200, 1, 8, 1設置串口2。波特率為19 200,奇校驗,8位數(shù)據(jù),1位停止位。使用以上兩個命令,就能夠將計算機的串口模擬成單片機的串口了。在進行軟件仿真時,所有發(fā)送到被綁定的計算機串口上的數(shù)據(jù)都會轉發(fā)到keil模擬的單片機串口上,用戶程序可以通過中斷處理程序或查詢方式接收到這些數(shù)據(jù);同樣,單片機程序中發(fā)送到單片機串口上的數(shù)據(jù)也會通過被綁定的計算機串口發(fā)送出來,可以被其他軟件所接收。利用這個特點,就可以方便地仿真、調試單片機的串口部分程序。要注意的是,這兩個命令需要一起使用。2.3 仿真步驟首先,用串口線將計算機的兩個串口連接起來(或者是兩臺計算機上的兩個串口)。這兩個串口一個用來模擬單片機串口,另一個給調試程序使用。這個由用戶自己分配,沒有特殊要求。其次,編寫好用戶程序,并編譯通過。然后,設置工程文件(project)的相關參數(shù),如圖2和圖3所示。主要是選擇軟件仿真模式(use simulator)以及晶振參數(shù)。圖2 仿真參數(shù)設置為了不必每次進入仿真狀態(tài)后,都需要輸入串口參數(shù)設置命令,可以建立一個初始化文件。初始化文件是一個普通的文本文件,內容就是仿真時需要的命令,按照順序一行輸入一條。如圖2所示,建立了一個debug.ini的初始化文件。這樣,當每次進入仿真調試狀態(tài)時,keil就會自動載入debug.ini 的內容進行初始化。圖3 晶振參數(shù)設置為了正確仿真串口,在軟件仿真調試時,在用戶的keil工程文件的屬性中,還需要設置實際使用的晶振頻率。這個參數(shù)非常重要,直接影響通信的波特率,可以按照實際使用的參數(shù)進行設置。要注意,這個參數(shù)的單位是mhz。設置好參數(shù)后,就可以進行仿真了。單擊工具欄的圖標進入debug(仿真調試)狀態(tài),在output window窗口中的command文本框(一般是在左下角)中輸入上面介紹的命令。例如,將pc機的串口1設置為單片機的串口:mode com1 9600,0,8,1assign com1 sout然后設置斷點,一般是在關鍵地方或與串口相關聯(lián)的地方設置。再單擊圖標運行(run)用戶程序,使用戶程序運轉起來(不然是接收不到串口數(shù)據(jù)的)。這時再使用串口調試軟件或用戶調試軟件,發(fā)送通信命令或者數(shù)據(jù)包,看用戶程序是否進入斷點,以及相關的變量是否正確。還可以有意發(fā)送帶有錯誤數(shù)據(jù)的數(shù)據(jù)包,以觀察用戶程序的異常處理部分是否正常。一旦發(fā)現(xiàn)程序中的錯誤,可以馬上停止仿真調試,立即修改代碼,然后再次重復上面的步驟進行仿真。因為不需要與用戶目標板聯(lián)機,也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬件仿真器的基本一樣,只不過現(xiàn)在使用的是軟件仿真。需要注意的是:仿真時單片機串口實際的波特率由mode命令來指定,單片機程序中的tmod、scon等參數(shù)是不影響串口仿真狀態(tài)的(也就是說這些參數(shù)不影響仿真的波特率,即使它們是錯誤的)。但是中斷的使能位(如es、ea等)還是起作用的,如果es或ea被禁止,那么就不會進入串口中斷。因為這種方法是利用計算機的串口來仿真單片機的串口,而仿真是通過keil軟件來轉換串口上的數(shù)據(jù),不是直接轉發(fā)數(shù)據(jù)的,所以在實際仿真時,處理速度會比實際單片機運行時稍微低一點。比方說仿真狀態(tài)時1 s只能發(fā)送/接收10個數(shù)據(jù)幀,但在單片機硬件上運行時可能1 s就可以接收/發(fā)送50個數(shù)據(jù)幀。這與使用的計算機的速度有關,但對仿真來說,是沒有任何影響的。對于多串口的單片機,從理論上來說,可以一次綁定多個串口,只要計算機有足夠多的串口?;旧?使用這種方法需要占用計算機的串口數(shù)量是單片機綁定串口的2倍。一個串口被keil占用,用來模擬單片機的串口;另外一個串口被計算機占用,用來給單片機的串口收發(fā)數(shù)據(jù)。3 小結這里介紹的方法對c51和匯編語言都是適合的。它最大的好處就是簡單、方便,容易使用,不需要使用任何電路,也沒有特殊的要求;甚至可以在硬件電路制作好之前就將串口部分的程序編寫、調試完畢。筆者使用這種方法已經(jīng)很長時間了,事實證明這種方法確實非常有效。其實對于51單片機,keil的仿真功能實在是太強大了,只要充分掌握其特點,能夠熟練利用它,就可以解決工作中的大部分問題。很多工作都可以使用軟件仿真來完成,根本無需任何硬件仿真器;只有一些新的外部器件的時序、接口的調試才有可能需要用到硬件仿真器。目前介紹keil軟件仿真這方面的參考書籍很少,有些講的還是老版本的用法,不過沒有關系,keil的幫助文件寫得很詳細、很清楚,只要認真看明白就會使用了。使用熟練后,就會發(fā)現(xiàn)keil的功能相當強。對于串口編程,51單片機有keil這個功能強大的開發(fā)軟件,給我們帶來了極大的便利;而在其他單片機軟件的開發(fā)中,目前還沒有這么強大的開發(fā)工具和方便的調試手段。這里有個變通的辦法,就是可以先在keil中編寫并調試好串口程序,然后將程序移植到其他單片機平臺中(筆者在pic18單片
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新型辦公室與區(qū)塊鏈技術的融合
- 2024年機械工程師資格證書考試傳動機構試題及答案
- 2025年中國底電壓反光杯燈數(shù)據(jù)監(jiān)測研究報告
- 商務禮儀師考試參考書目試題及答案
- 2024年質量工程師考試指導原則試題及答案
- 商務禮儀師職責與職責劃分試題及答案
- 2025年中國小車拉緊器鐵鉤市場調查研究報告
- 常見失誤質量工程師試題及答案
- 17記金華的雙龍洞(教學設計)-2023-2024學年語文四年級下冊統(tǒng)編版
- 2025年中國室內花盆數(shù)據(jù)監(jiān)測報告
- DB65-T 4785-2024 耕地質量等級調查評價技術規(guī)范
- 財務機器人開發(fā)與應用實戰(zhàn) 課件 任務5 E-mail人機交互自動化-2
- 2024年個人廉潔自律述職報告(三篇)
- 【華為】通信行業(yè):華為下一代鐵路移動通信系統(tǒng)白皮書2023
- 小學家長會-做好孩子手機管理主題班會課件
- Python 程序設計智慧樹知到期末考試答案章節(jié)答案2024年四川師范大學
- 山東省技能大賽青島選拔賽-世賽選拔項目55樣題(3D數(shù)字游戲技術)
- 城鄉(xiāng)環(huán)衛(wèi)保潔投標方案(技術標)
- 充值合同范本
- 2023年桂林市臨桂區(qū)增設特崗教師招聘筆試環(huán)節(jié)的考試真題
- 耳穴壓豆治療失眠
評論
0/150
提交評論