發布企業信息

Keil軟件仿真的串口調試技巧

作者:  信息來源:無憂機械電子  2009-2-18

字體大小:    

引言在單片機系統中,串口(UART,通用異步收發接口)是一個非常重要的組成部分。通常使用單片機串口通過RS232/RS485電平轉換芯片與上位機連接,以進行上位機與下位機的數據交換、參數設置、組成網絡以及各種外部設備的連接等。特別對于數據量不是很大的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。在單片機編程中...

  引言

  在單片機系統中,串口(UART,通用異步收發接口)是一個非常重要的組成部分。通常使用單片機串口通過RS232/RS485電平轉換芯片與上位機連接,以進行上位機與下位機的數據交換、參設置、組成網絡以及各種外部設備的連接等。RS232/RS485串行接口總線具有成本低、簡單可靠、容易使用等特點,加上其歷史悠久,所以目前應用仍然非常廣泛;特別對于數據量不是很大的場合,串口通信仍然是很好的選擇,有著廣闊的使用前景。

  在單片機編程中,串口占了很重要的地位。傳統方式串口程序的調試,往往是利用專用的單片機硬件仿真器。在編寫好程序后,利用仿真器來設置斷點,觀察變量和程序的流程,逐步對程序進行調試,修正錯誤。使用硬件仿真器的確是很有效的方法,但是也有一些缺點:

  很多仿真器不能做到完全硬件仿真,因而會造成仿真時正常,而實際運行時出現錯誤的情況;也有仿真不能通過,但是實際運行正常的情況。

  對于一些較新的芯片或者是表面貼裝的芯片,要么沒有合適的仿真器或仿真頭;要么就是硬件仿真器非常昂貴,且不容易買到。

  有時由于設備內部結構空間的限制,仿真頭不方便接入。

   有的仿真器屬于簡單的在線仿真型,仿真時有很多限制。例如速度不高,實時性或穩定性不好,對斷點有限制等,造成仿真起來不太方便。

  1 調試前的準備工作

  下面介紹一種利用Keil的軟件仿真功能來實現51單片機串口調試用戶程序的方法。使用這種方法,無需任何硬件仿真器,甚至都不需要用戶電路板。所需的只是:

  ① 硬件。1臺普通計算機(需要帶有2個標準串口)和1根串口線(兩頭都是母頭,連線關系如圖1所示)。

  ② 串口軟件可以是自己編寫的專用調試或上下位機通信軟件,也可以是通用的串口軟件(如串口助手、串口調試等),主要用來收發數據。如果沒有合適的串口調試軟件,則可使用筆者編寫的一個免費的串口小工具TurboCom。除了與其他軟件一樣的數據收發功能外,它還有定時輪流發送自定義數據幀和自動應答(接收到指定數據幀后,自動返回相應的數據幀)這兩個很有用的功能,特別適合于老化測試。這個小工具可以從http://shaoziyang.bloger.com.cn下載。

  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模擬的單片機串口上,用戶程序可以通過中斷處理程序或查詢方式接收到這些數據;同樣,單片機程序中發送到單片機串口上的數據也會通過被綁定的計算機串口發送出來,可以被其他軟件所接收。利用這個特點,就可以方便地仿真、調試單片機的串口部分程序。要注意的是,這兩個命令需要一起使用。

分頁: [1] [2] [下一頁] 

推薦圖文

電子熱點圖文

  • 新型太陽能充電器的研究與設計
  • 基于EDA的交通燈控制系統
  • 電子元件基礎知識--半導體三極管
  • 半導體業界的HKMG攻防戰:詳解兩大工藝流派之爭

電子風云人物

Copyright © 2004 51base.com Inc. All rights reserved.

無憂基地 版權所有│粵ICP備06098418號│XHTML | CSS

客服:+86-755-2212 2202 工作時間:周1~5 10點~16點

感謝中國網絡提供帶寬支持