PIC單片機C語言程序設計(11)
點擊圖49 中的Debugger 命令, 并在彈出的下拉菜單中點擊setting,即可生成圖50 所示的Simulator Settings 界面。在該界面中,頻率為20MHz,我們將其改成實際電路(即《PIC 單片機C 語言程序設計(4)》中的圖3))所用的晶振頻率4MHz,然后點擊圖50 中的“確定”,回到圖49 所示界面。在該界面中點擊“Debugger”命令,并在彈出的下拉菜單中點擊“Stop watch,即可生成圖51 所示的對話框。
圖50
圖51
3) 定量測試
下面我們來驗證程序運行時,各代碼運行的具體時間是否如《PIC 單片機C 語言程序設計(10)》中的表6 所示。具體操作如下:
a. 點擊圖49 快捷圖標中的命令Animate,之后立即點擊快捷圖標中的Halt(停止),便會出現(xiàn)圖52 所示界面。其中,主程序TRISA=0X10 賦值語句左邊有一個綠色箭頭,指向的是模擬調試時程序運行的起始語句;而語句X++ ;(自增量)左邊有一個斷點標志,即紅色的“B”(若語句X++ ;左邊無斷點標志“B”,可通過雙擊X++ 旁的位置,來進行斷點“B”的設置)。接下來,便可驗證《PIC 單片機C 語言程序設計(10)》中表6 列出的程序各語句的耗時量了,其操作方法如下:
b. 圖52“Stop watch”界面右下角的程序頻率為4(MHz),說明設置頻率是正確的。點擊圖52 中的命令“Zero”清0,使Zero 右邊的time 為0(說明:該行最右側顯示的是執(zhí)行多條語句的累積時間,此處可不管),隨后點擊MPLAB IDE 菜單行中的模擬調試快捷圖標Step Into(單步),使程序按照《PIC 單片機C 語言程序設計(10)》表6 所列,從綠色起始箭頭所指語句TRIA=0X10 ;開始,只運行一步就停下來,此時,圖52 中Zero 右側time旁顯示該語句運行耗時數(shù)是2μs,與表6 所列數(shù)值完全相符,而綠色起始箭頭則指向了下一條語句“PORTB=0X40”;處。
圖52
接著運行語句“PORTB=0X40”;, 方法同語句“TRIA=0X10”;。即先點擊Zero,清0,使Zero 右邊的time 為0,再點擊Step Into( 單步),執(zhí)行語句“PORTB=0X40”;,可以看到綠色起始箭頭又指向了其下一條語句INTCON=0X00;,此時,圖52 中Zero 右側time 旁邊給出的該語句運行耗時數(shù)是3μs,與表6 所列數(shù)值完全相符。
用同樣的方法,依次執(zhí)行表6 所列的語句,從而確認各語句運行的時間是否與表6 所列數(shù)值相同。
需要注意的是,在點擊Step Into( 單步) 命令運行一條語句前,必須先點擊Zero,對time 清0 一次(即不觀察累計時間)。
此外,運行位賦值定義語句unit_bit=X%10 ;ten_bit= X10%10 ;時,應將點擊Step into 命令換成點擊“Step over”命令,其余操作不變,程序又可快速單步運行。遇到delay(200);延時語句時,也用“Step over”命令,才能順利驗證表6 中的耗時量。
4) LED 顯示增量時間的測定
類似上述方法,當程序運行到display(x);語句處時,先點擊Zero(清time 的0),然后點擊MPLAB IDE 模擬調試的快捷命令“Run”(全速運行),使程序從display(x);全速運行到預先設置的斷點X++ ;處,此時,圖52 中time 的顯示值為1.036104S(秒),說明pic07.c 程序中的d=100 值大了一點。
此時,我們可將程序中的d 值改為99(或98、97),然后在用前述增量時間測定方法對其進行運行時間測定,來找到最準確的0 ~ 99 遞增為1 秒的d 值。
需要說明的是,每次修改了d 值之后,都要按照《PIC 單片機C 語言程序設計(9)》一文介紹的方法,先在MPLAB IDE7.40 集成開發(fā)環(huán)境中,對源程序pic07.C 進行編譯,并確認編譯成功,再按本文所述方法進行增量時間測定
評論