精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
Keil軟件仿真的串口調(diào)試技巧
Keil軟件仿真的串口調(diào)試技巧
 更新時(shí)間:2008-8-19 13:25:58  點(diǎn)擊數(shù):64
【字體: 字體顏色

圖3 晶振參數(shù)設(shè)置

  為了正確仿真串口,在軟件仿真調(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 com1 Sout

  然后設(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)試軟件或用戶調(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í)1 s只能發(fā)送/接收10個(gè)數(shù)據(jù)幀,但在單片機(jī)硬件上運(yùn)行時(shí)可能1 s就可以接收/發(fā)送50個(gè)數(shù)據(jù)幀。這與使用的計(jì)算機(jī)的速度有關(guān),但對(duì)仿真來(lái)說(shuō),是沒有任何影響的。

  對(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ù)。

3 小結(jié)

  這里介紹的方法對(duì)C51和匯編語(yǔ)言都是適合的。它最大的好處就是簡(jiǎn)單、方便,容易使用,不需要使用任何電路,也沒有特殊的要求;甚至可以在硬件電路制作好之前就將串口部分的程序編寫、調(diào)試完畢。筆者使用這種方法已經(jīng)很長(zhǎng)時(shí)間了,事實(shí)證明這種方法確實(shí)非常有效。其實(shí)對(duì)于51單片機(jī),Keil的仿真功能實(shí)在是太強(qiáng)大了,只要充分掌握其特點(diǎn),能夠熟練利用它,就可以解決工作中的大部分問題。很多工作都可以使用軟件仿真來(lái)完成,根本無(wú)需任何硬件仿真器;只有一些新的外部器件的時(shí)序、接口的調(diào)試才有可能需要用到硬件仿真器。目前介紹Keil軟件仿真這方面的參考書籍很少,有些講的還是老版本的用法,不過(guò)沒有關(guān)系,Keil的幫助文件寫得很詳細(xì)、很清楚,只要認(rèn)真看明白就會(huì)使用了。使用熟練后,就會(huì)發(fā)現(xiàn)Keil的功能相當(dāng)強(qiáng)。

  對(duì)于串口編程,51單片機(jī)有Keil這個(gè)功能強(qiáng)大的開發(fā)軟件,給我們帶來(lái)了極大的便利;而在其他單片機(jī)軟件的開發(fā)中,目前還沒有這么強(qiáng)大的開發(fā)工具和方便的調(diào)試手段。這里有個(gè)變通的辦法,就是可以先在Keil中編寫并調(diào)試好串口程序,然后將程序移植到其他單片機(jī)平臺(tái)中(筆者在PIC18單片機(jī)開發(fā)中就使用了這種方法,收到了很好的效果。當(dāng)然這是指在使用C語(yǔ)言開發(fā)單片機(jī)程序時(shí),匯編語(yǔ)言是沒有可移植性的)。至于如何能夠減小程序移植的工作量,使得程序具有更好的通用性,以最小的代價(jià)就可以平滑地移植到其他單片機(jī)平臺(tái)上,也是一個(gè)非常值得探討的問題。另外,為了方便初學(xué)者掌握這種方法,筆者專門做了一個(gè)例子程序,放在http://shaoziyang.bloger.com.cn上,可以用來(lái)練習(xí)。

參考文獻(xiàn)

[1] Keil公司的幫助文件DBG51.CHM.



  • 上一篇: 香熏美容蒸汽浴房的智能化設(shè)計(jì)
  • 下一篇: 基于MSP430F449的數(shù)據(jù)存儲(chǔ)和USB串行通信實(shí)現(xiàn)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1
    邵阳市| 东丰县| 丹江口市| 辽中县| 禄丰县| 拜城县| 平顶山市| 辽阳县| 烟台市| 波密县| 泰顺县| 绿春县| 根河市| 庆云县| 新竹县| 鹰潭市| 南部县| 昌黎县| 陇南市| 尚义县| 高密市| 玛沁县| 环江| 翼城县| 苏尼特右旗| 临海市| 定安县| 大悟县| 香港 | 霍城县| 玉山县| 乌拉特中旗| 麻城市| 都江堰市| 开鲁县| 绥芬河市| 莒南县| 清新县| 安顺市| 自贡市| 宜章县|