免费国产美女一级A作爱播放免费,日本动漫精品一区二区三区,ⅩⅩ国产全无遮挡无码,国产精品无码视频2020

  • <delect id="1z9bx"><center id="1z9bx"><ruby id="1z9bx"></ruby></center></delect>

      1. <u id="1z9bx"><sub id="1z9bx"></sub></u>

      2. Keil軟件延時(shí)

        發(fā)布時(shí)間:2024-03-02
        c語言常用的延時(shí)辦法,有以下4種
        圖1c語言延時(shí)
        圖1是我們編程語言常用的4種延時(shí)方法,其中兩種非精確延時(shí),兩種精確一些的延時(shí)。for語句和while語句都可以通過改變i的范圍值來改變延時(shí)時(shí)間,但是c語言的時(shí)間都是不能通過程序看出來的。
        精確延時(shí)有兩個(gè)方法,一個(gè)方法是用定時(shí)器來延時(shí),這個(gè)方法我們后邊課程要詳細(xì)介紹,定時(shí)器是單片機(jī)的一個(gè)重點(diǎn)。另外一個(gè)就是用庫函數(shù)_nop_();,一個(gè)nop的時(shí)間是一個(gè)機(jī)器周期的時(shí)間,這個(gè)后邊也要介紹。
        非精確延時(shí),只是在我們做一些簡(jiǎn)單的比如小燈閃爍,流水燈等簡(jiǎn)單實(shí)驗(yàn)中使用,而實(shí)際做實(shí)際開發(fā)程序中其實(shí)這種非精確延時(shí)用的極少,這里我們只是做演示功能使用。
        好了,介紹完了,我們就要實(shí)戰(zhàn)了。上節(jié)課的led小燈閃爍的程序,我們用的延時(shí)方式是for(i=0;i<30000;i++);大家如果把這里的i改成100,下載進(jìn)入單片機(jī),會(huì)發(fā)現(xiàn)小燈一直亮,而不是閃爍狀態(tài),現(xiàn)在大家都把這個(gè)程序改一下,都改成100,然后下載觀察一下現(xiàn)象再繼續(xù)。
        觀察完了,毫無疑問,實(shí)際現(xiàn)象和我提到的理論是相符合的,這是為什么呢?這里介紹一個(gè)常識(shí)。我們?nèi)说娜庋蹖?duì)閃爍的光線有一個(gè)最低分辨能力,通常情況下當(dāng)閃爍的頻率高于50hz時(shí),我們看到的信號(hào)就是常亮的。即,延時(shí)的時(shí)間低于20ms的時(shí)候,我們的肉眼是分辨不出來小燈是在閃爍的,可能最多看到的是小燈亮暗稍微變化了一下。要想清楚的看到小燈閃爍,延時(shí)的值必須大一點(diǎn),大到什么程度呢,不同的亮度的燈不完全一樣,大家可以自己做實(shí)驗(yàn)。
        那么如何觀察延時(shí)有多長時(shí)間呢?大家鼠標(biāo)點(diǎn)keil的project-->optionsfortarget‘target1’,或點(diǎn)target1右側(cè)圖標(biāo),進(jìn)入設(shè)置選項(xiàng),如圖2所示
        圖2optionsfortarget
        首先我們打開target這個(gè)選項(xiàng)卡,找到里邊的xtal(mhz)這個(gè)位置,這是填寫我們進(jìn)行模擬時(shí)間的晶振選項(xiàng),從我們?cè)韴D以及板子上都可以看到,我們單片機(jī)所配的晶振是11.0592mhz,所以這個(gè)地方我們要填上11.0592。然后找到debug這個(gè)選項(xiàng),選擇左側(cè)的usesimulator,然后點(diǎn)擊最下邊的ok就可以了,如圖3所示。
        圖3debug配置信息
        點(diǎn)擊debug菜單里的start/stopdebugsession,或者鼠標(biāo)點(diǎn)做左側(cè)的這個(gè)debug圖標(biāo),會(huì)進(jìn)入一個(gè)新的頁面,如圖4所示。
        圖4debug窗口顯示
        最左側(cè)那一欄是單片機(jī)的一些寄存器和系統(tǒng)信息,最上邊那一欄是keil將c語言轉(zhuǎn)換成匯編的代碼,下邊就是我們c語言的程序,還有各種窗口都可以打開,在view菜單可以打開或者關(guān)閉我們的各種窗口。這節(jié)課我們只關(guān)心我們需要的窗口,其他窗口用到再說。那么有時(shí)候我們覺得這種分布不是特別的好,所以我們想改變一下窗口分布怎么辦呢?比如disassembly(匯編)窗口,我們先用鼠標(biāo)拖動(dòng)它,然后中間會(huì)出現(xiàn)一個(gè)方向符號(hào),再用鼠標(biāo)點(diǎn)那個(gè)方向符號(hào),他就給我們分布了,如圖5所示。
        圖5keil窗口移動(dòng)(一)
        我們點(diǎn)擊最右邊的那個(gè)箭頭,然后窗口變化成如6圖所示。或者我們?nèi)绻貌坏絽R編的程序,也可以直接關(guān)掉。
        圖6 所示keil窗口移動(dòng)(二)
        細(xì)心的同學(xué)會(huì)看到在c語言的程序里有個(gè)黃色的箭頭,這個(gè)箭頭代表的就是這個(gè)程序當(dāng)前運(yùn)行的位置,在這個(gè)debug里邊,我們可以看到我們的程序運(yùn)行的過程。在左上角有這三個(gè)圖標(biāo),第一個(gè)是復(fù)位,點(diǎn)擊一下之后,程序就會(huì)跑到最開始的位置運(yùn)行,第二個(gè)圖標(biāo)是全速運(yùn)行圖標(biāo),點(diǎn)擊一下程序就會(huì)全速運(yùn)行跑起來,第三個(gè)圖標(biāo)是停止圖標(biāo),當(dāng)程序全速運(yùn)行跑起來后,我們可以通過點(diǎn)擊第三個(gè)圖標(biāo)來讓程序停止,觀察程序運(yùn)行到哪里了。點(diǎn)擊一下復(fù)位后,我們會(huì)發(fā)現(xiàn)c語言程序左側(cè)有的灰色或者綠色,有的地方還是保持原來的白色,我們可以在我們灰色的位置雙擊鼠標(biāo)設(shè)置斷點(diǎn),就是比如程序一共20行,在第十行設(shè)置斷點(diǎn)后,點(diǎn)全速運(yùn)行,程序就會(huì)運(yùn)行到第十行停止,方便我們觀察運(yùn)行到這個(gè)地方的情況。
        同學(xué)們會(huì)發(fā)現(xiàn),有的位置可以設(shè)置斷點(diǎn),有的地方不可以設(shè)置斷點(diǎn),這是為什么呢?keil軟件本身具備優(yōu)化我們程序的功能,如果大家想在所有的位置設(shè)置斷點(diǎn),可以把優(yōu)化選項(xiàng)設(shè)置到0位置,就是程序不進(jìn)行優(yōu)化。如圖7所示。
        圖7優(yōu)化選項(xiàng)設(shè)置
        這節(jié)課我們重點(diǎn)是看看c語言代碼的運(yùn)行時(shí)間,在最左側(cè)的register那個(gè)框內(nèi),有一個(gè)sec選項(xiàng),這個(gè)選項(xiàng)就是單片機(jī)運(yùn)行時(shí)間的統(tǒng)計(jì)選項(xiàng),大家點(diǎn)一下復(fù)位按鈕,會(huì)發(fā)現(xiàn)這個(gè)sec變成了0,然后我們?cè)趌ed=0;這一句加一個(gè)斷點(diǎn),在led=1;這個(gè)位置加一個(gè)斷點(diǎn),我們點(diǎn)擊全速運(yùn)行按鈕,會(huì)直接停留在led=0;我們會(huì)看到我們的時(shí)間變化成0.000197秒,如圖8所示。
        圖8斷點(diǎn)設(shè)置
        我們?cè)冱c(diǎn)一下全速運(yùn)行,會(huì)發(fā)現(xiàn)sec變成了0.07530650秒,那么這樣一個(gè)for循環(huán)的時(shí)間大概有75ms左右,我們也可以通過改變30000這個(gè)數(shù)字來改變這個(gè)間隔時(shí)間。當(dāng)然了,大家要注意i的變量范圍,你如果寫成了大于65535的值以后,程序就會(huì)一直運(yùn)行不下去了,因?yàn)閕無論如何變化,都不會(huì)大于這個(gè)值,如果要大于這個(gè)值正常運(yùn)行,必須改變i定義的類型了。后邊如果我們要求看一段程序運(yùn)行多長時(shí)間,都可以通過這種方式來看。
        上一個(gè):360f4怎么區(qū)分全網(wǎng)通
        下一個(gè):如何制作標(biāo)書?制作投標(biāo)書有什么原則?

        2021手機(jī)銷量排行榜zol(手機(jī)銷量2020)
        口碑最好的筆記本電腦十大排名(口碑最好的筆記本電腦品牌排行)
        windows10激活工具被阻止(激活工具被電腦攔截了怎么辦)
        仙客來如何繁殖
        ssd硬盤有幾種接口,固態(tài)硬盤的接口類型有哪些mSATA和MSATA物理接口一樣嗎 搜
        番石榴立枯病防治
        拉伸試驗(yàn)機(jī)速度及力值的檢測(cè)
        計(jì)算機(jī)配置清單及價(jià)格8000,電腦配置以及價(jià)格
        RC0603DR-072R4L,0603 2.4Ω 0.5%電阻
        u880 bin怎么打開,bin文件手機(jī)怎么打開