新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語言程序設(shè)計(jì)(11)

PIC單片機(jī)C語言程序設(shè)計(jì)(11)

作者: 時(shí)間:2013-02-05 來源:網(wǎng)絡(luò) 收藏
  2) 調(diào)用stop Watch(跑表)

  點(diǎn)擊圖49 中的Debugger 命令, 并在彈出的下拉菜單中點(diǎn)擊setting,即可生成圖50 所示的Simulator Settings 界面。在該界面中,頻率為20MHz,我們將其改成實(shí)際電路(即《PIC 單片機(jī)C 語言(4)》中的圖3))所用的晶振頻率4MHz,然后點(diǎn)擊圖50 中的“確定”,回到圖49 所示界面。在該界面中點(diǎn)擊“Debugger”命令,并在彈出的下拉菜單中點(diǎn)擊“Stop watch,即可生成圖51 所示的對(duì)話框。

圖50

圖51

  3) 定量測(cè)試

  下面我們來驗(yàn)證程序運(yùn)行時(shí),各代碼運(yùn)行的具體時(shí)間是否如《PIC 單片機(jī)C 語言(10)》中的表6 所示。具體操作如下:

  a. 點(diǎn)擊圖49 快捷圖標(biāo)中的命令A(yù)nimate,之后立即點(diǎn)擊快捷圖標(biāo)中的Halt(停止),便會(huì)出現(xiàn)圖52 所示界面。其中,主程序TRISA=0X10 賦值語句左邊有一個(gè)綠色箭頭,指向的是模擬調(diào)試時(shí)程序運(yùn)行的起始語句;而語句X++ ;(自增量)左邊有一個(gè)斷點(diǎn)標(biāo)志,即紅色的“B”(若語句X++ ;左邊無斷點(diǎn)標(biāo)志“B”,可通過雙擊X++ 旁的位置,來進(jìn)行斷點(diǎn)“B”的設(shè)置)。接下來,便可驗(yàn)證《PIC 單片機(jī)C 語言(10)》中表6 列出的程序各語句的耗時(shí)量了,其操作方法如下:

  b. 圖52“Stop watch”界面右下角的程序頻率為4(MHz),說明設(shè)置頻率是正確的。點(diǎn)擊圖52 中的命令“Zero”清0,使Zero 右邊的time 為0(說明:該行最右側(cè)顯示的是執(zhí)行多條語句的累積時(shí)間,此處可不管),隨后點(diǎn)擊MPLAB IDE 菜單行中的模擬調(diào)試快捷圖標(biāo)Step Into(單步),使程序按照《PIC 單片機(jī)C 語言程序設(shè)計(jì)(10)》表6 所列,從綠色起始箭頭所指語句TRIA=0X10 ;開始,只運(yùn)行一步就停下來,此時(shí),圖52 中Zero 右側(cè)time旁顯示該語句運(yùn)行耗時(shí)數(shù)是2μs,與表6 所列數(shù)值完全相符,而綠色起始箭頭則指向了下一條語句“PORTB=0X40”;處。

圖52

  接著運(yùn)行語句“PORTB=0X40”;, 方法同語句“TRIA=0X10”;。即先點(diǎn)擊Zero,清0,使Zero 右邊的time 為0,再點(diǎn)擊Step Into( 單步),執(zhí)行語句“PORTB=0X40”;,可以看到綠色起始箭頭又指向了其下一條語句INTCON=0X00;,此時(shí),圖52 中Zero 右側(cè)time 旁邊給出的該語句運(yùn)行耗時(shí)數(shù)是3μs,與表6 所列數(shù)值完全相符。

  用同樣的方法,依次執(zhí)行表6 所列的語句,從而確認(rèn)各語句運(yùn)行的時(shí)間是否與表6 所列數(shù)值相同。

  需要注意的是,在點(diǎn)擊Step Into( 單步) 命令運(yùn)行一條語句前,必須先點(diǎn)擊Zero,對(duì)time 清0 一次(即不觀察累計(jì)時(shí)間)。

  此外,運(yùn)行位賦值定義語句unit_bit=X%10 ;ten_bit= X10%10 ;時(shí),應(yīng)將點(diǎn)擊Step into 命令換成點(diǎn)擊“Step over”命令,其余操作不變,程序又可快速單步運(yùn)行。遇到delay(200);延時(shí)語句時(shí),也用“Step over”命令,才能順利驗(yàn)證表6 中的耗時(shí)量。

  4) LED 顯示增量時(shí)間的測(cè)定

  類似上述方法,當(dāng)程序運(yùn)行到display(x);語句處時(shí),先點(diǎn)擊Zero(清time 的0),然后點(diǎn)擊MPLAB IDE 模擬調(diào)試的快捷命令“Run”(全速運(yùn)行),使程序從display(x);全速運(yùn)行到預(yù)先設(shè)置的斷點(diǎn)X++ ;處,此時(shí),圖52 中time 的顯示值為1.036104S(秒),說明pic07.c 程序中的d=100 值大了一點(diǎn)。

  此時(shí),我們可將程序中的d 值改為99(或98、97),然后在用前述增量時(shí)間測(cè)定方法對(duì)其進(jìn)行運(yùn)行時(shí)間測(cè)定,來找到最準(zhǔn)確的0 ~ 99 遞增為1 秒的d 值。

  需要說明的是,每次修改了d 值之后,都要按照《PIC 單片機(jī)C 語言程序設(shè)計(jì)(9)》一文介紹的方法,先在MPLAB IDE7.40 集成開發(fā)環(huán)境中,對(duì)源程序pic07.C 進(jìn)行編譯,并確認(rèn)編譯成功,再按本文所述方法進(jìn)行增量時(shí)間測(cè)定


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉