Keil C51程序調試過程

2021-01-08 電子產品世界

用MCS-51單片機軟體Keil C51編寫程序時,經常需要調試,如果不是經常用這個軟體的話,很容易忘記這些調試步驟,現在舉一個例子「驗證延遲函數delay()使其延遲的時間為500ms」供以後複習查考。

源程序寫完後,就可以調試了,按照圖1所示,先進行第一步和第二步操作,使界面切換到圖2的狀態,可以看到在文本編輯窗口中,有一個黃色箭頭指向13行的位置,說明程序從這個位置開始執行。左上角有一些跟調試相關的按鈕,如「全速執行」、「單步進入」~~~對於我這個例子,目的是驗證delay()函數的延遲時間,使其大約為500ms。按照下列方法可以達到我的目的:

本文引用地址:http://www.eepw.com.cn/article/201611/315472.htm

圖1 編譯界面

圖2 調試界面

點擊「單步跳出」按鈕(或功能鍵F10),黃色箭頭從第13行往下移一行(14),再單擊「單步跳出」,則箭頭移到15行那邊,表示程序從第13行執行到第15行,(註:這種方式是一步一步執行程序,如果要同時執行幾行,如從第13行一下子到15行,可以這樣來做,用滑鼠在第15行的位置處點擊兩下會出現一個圖2所示的紅色圖標,此時點擊「全速執行」按鈕,則黃色的箭頭則會從第13行快速移到15行,這兩行同時執行)此時左邊寄存器窗口中的sec有一個數值,表示程序執行的時間(即delay()延遲時間),可能不是為500ms。此時,改變delay()函數中x,y的數值,然後點擊圖1的第二步所對應的按鈕切換到圖1所示的編譯界面上來,點擊「重新構造所有對象文件」編譯一下程序,然後再切換到圖2的界面上來進行調試。重複上面的步驟,直到左邊寄存器窗口中的sec(單位秒)數值大約為0.50s,即可說明delay()延遲時間為500ms。(註:這種方法比較麻煩,而且延遲時間不會很精確,如果要精確延遲的話可採用定時器的方式)


相關焦點

  • keil c51 與 MDK 衝突的解決
    最近又作了一些C51的工作,發現keil c51與 mdk 有衝突。然後上網一查果然有很多人遇到這個問題,錯誤提示為下圖:本文引用地址:http://www.eepw.com.cn/article/201611/323622.htm其實這個是MDK和KEIL C51 配置文件衝突的問題,可以參考下兩個人的配置文件:[C51]PATH="D:Program FilesKeil_C702c51
  • KEIL4 工程到 KEIL5 程序的移植方法
    由於 KEIL4 和 KEIL5 程序之間的差異, 所以 KEIL5 不能直接打開 KEIL4 的工程。 但是為了確保 KEIL5 向下的兼容性, ARM 公司為我們提供了兩種兼容 KEIL4 程序的方式。首先我們用 keil5 打開 keil4 的工程, 則會彈出下面的窗口, 這就是我們程序兼容的關鍵。
  • 在keil中怎麼燒寫程序
    打開APP 在keil中怎麼燒寫程序 發表於 2017-11-16 10:52:58   什麼是keil
  • ARM DS-5開發STM32程序(Eclipse配合Keil插件使用)
    http://pan.baidu.com/s/1mgHX2JY補充:社區版激活代碼:http://ds.arm.com/zh-cn/ds-5-community-edition/getting-started/3.運行DS-5安裝Keil插件安裝好Keil插件後只是使用了Keil的調試和下載功能,真正與DS-5合體需要在Eclipse
  • 非常詳細的Keil工程建立全過程講解
    在單片機的開發或使用過程中除了掌握必要的硬體外,同樣離不開軟體,只有通過軟體(程序)的執行,硬體才能發揮出具體的作用。機器如何認識我們用各種符號編寫的程序呢?早期我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。
  • 單片機keil 常見問題
    一、混合編程1、模塊內接口:使用如下標誌符:#pragma asm彙編語句#pragma endasm注意:如果在c51程序中使用了彙編語言
  • 簡析單片機keil常見問題
    一、混合編程  1、模塊內接口:  使用如下標誌符:  #pragma asm  彙編語句  #pragma endasm  注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「
  • 自學單片機第三篇:keil軟體
    程序點下載,網絡好的,點打開也可以。圖標雙擊打開軟體,界面如下。第一個選項是文件,下拉表中,我們當前要點擊下圖黃色部分,安裝證書。HEX這是調試,可以對程序進行逐條檢查。調試點第二行第一個白紙,在工程中,新建一個空白程序,點亮小燈那個是之前我的舊程序,不用理會。
  • 單片機與C語言——keil c51教程(1)
    以後的教程也只是我在學習過程中的一些學習筆記和隨筆,在這裡加以整理和修改,希望和大家一起分享,一起交流,一起學習,一起進步。  *註:可以肯定的說這個教程只是為初學或入門者準備的,筆者本人也只是菜鳥一隻,有望各位大俠高手指點錯誤提出建議。
  • keil C51中的本徵函數庫及使用說明
    >(unsigned int)val左移n位extern unsigned long _lrol_ (unsigned long val, unsigned char n));(unsigned long)val左移n位extern unsigned char _chkfloat_(float);測試並返回float的狀態一下摘自keil
  • Keil uVision4單片機
    軟體簡介      keil 4可以幫你編寫程序,檢測程序,簡單的說就是通過這款軟體將高級語言翻譯成單片機能識別的語言,Keil uVision4可以用在彙編語言、C語言等等。RealView MDK開發工具中集成最新版本Keil μVision4,其編譯器、調試工具實現與ARM器件的完美匹配。
  • 有關Keil軟體仿真的51單片機串口調試技巧
    傳統方式串口程序的調試,往往是利用專用的單片機硬體仿真器。在編寫好程序後,利用仿真器來設置斷點,觀察變量和程序的流程,逐步對程序進行調試,修正錯誤。使用硬體仿真器的確是很有效的方法,但是也有一些缺點:  很多仿真器不能做到完全硬體仿真,因而會造成仿真時正常,而實際運行時出現錯誤的情況;也有仿真不能通過,但是實際運行正常的情況。
  • Jlink調試ARM裸機程序
    安裝ASD1.2 調試裸奔程序。 我的臺式機沒有並口,所以只好買個JLink了。(注意,現在配的新電腦很少有串口和並口了。買板子的時候最好順帶買了JLink最好。這樣省郵費。不要買什麼USB轉接並口的,沒有用。我買了一個,都用不了。另外注意開發板的JTAG是10腳的還是20腳的。
  • Keil uVision5、RealView MDK、Keil C51之間的關係
    KEIL公司(現在是ARM公司的一個公司)的軟體恰好可以提供這樣的功能,並且它還有很多優點,比如工程易於管理,自動加載啟動代碼,集編輯、編譯、仿真一體,調試功能強大等等。因此,不管是初學單片機的愛好者,還是經驗豐富的工程師,都非常喜歡使用這些軟體。但是,即使熟練使用了KEIL軟體,有些概念我們還是不容易理清,常常混淆。
  • keil5.24創建uCOSIII工程實現stm32實時作業系統(環境配置)
    3:工程文件預覽  下面是我的示例工程,我用到了GPIO口輸出LED,模擬的時候可以看我的程序是否正常工作。system_stm32f10x.c是系統初始化程序,新版本systeminit是自動調用,然後跳到main(的,你如果需要在main前初始化系統某些參數可以修改。startup_stm32f10x_hd.s NVIC的中斷映射表,非常關鍵,需要修改,後面會提到。RTOS下面是uCOSIII的文件。
  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。掌握這一軟體的使用對於使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那麼Keil幾乎就是你的不二之選(目前在國內你只能買到該軟體、而你買的仿真機也很可能只支持該軟體),即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。
  • 用Keil C51開發串行口
    發送前必須用軟體清零,發送過程中TI保持零電平,發送完一幀數據後,由硬體自動置1。如要再發送,必須用軟體再清零。Ø RI:接收中斷標誌位。接收前,必須用軟體清零,接收過程中RI保持零電平,接收完一幀數據後,由片內硬體自動置1。如要再接收,必須用軟體再清零。② 電源控制寄存器PCON。
  • Keil C51程序設計中幾種精確延時方法
    實際的單片機應用系統開發過程中,由於程序功能的需要,經常編寫各種延時程序,延時時間從數微秒到數秒不等,對於許多C51開發者特別是初學者編制非常精確的延時程序有一定難度。
  • 51單片機程序執行流程詳細分析
    來源:http://www.dzsc.com/data/2015-3-6/107977.html單片機是沒有上作業系統的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助於了解硬體的特性。單片機是沒有上作業系統的東西,在keil中編寫的代碼都是裸機代碼,深入編寫裸機代碼有助於了解硬體的特性。