新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機中C語言延時函數

        單片機中C語言延時函數

        作者: 時間:2016-11-19 來源:網絡 收藏
        單片機C語言延時程序計算2009-11-02 22:15單片機C語言延時程序用C語言寫出來程序非常的簡練,它是一種模塊化的語言,一種比匯編更高級的語言,但是就是這樣一種語言也還是有它不足之處:它的延時很不好控制,我們常常很難知道一段延時程序它的精確延時到底是多少,這和匯編延時程序沒法比。但有時后寫程序又不得不要用到比較精確的延時,雖然說可以用混合編程的方式解決,但這種方式不是每個人都能掌握,且寫起來也麻煩。所以,通過測試我給大家提供一個延時子程序模塊,并以此給一個出我們經常用到的延時的數據表格。(注意:表格中的數據只適合我的延時模塊,對其他的延時程序不適用,切忌!?。。。。。?!別到時候延時不對來罵我)

        延時模塊:其中問號代表要填的數,要延時多少,到表格中去找數據,然后填上就OK!切忌3條FOR語句不能顛倒順序

        本文引用地址:http://www.104case.com/article/201611/318536.htm

        void Delay()
        {
        unsigned char a,b,c;
        for(a=0;afor(b=0;bfor(c=0;c}

        數據表如下
        //
        延時時間 a的值 b的值 c的值 延時誤差(us)
        10us 1 1 1 -0.5
        20us 1 1 8 0
        30us 1 1 15 +0.5
        40us 2 1 9 0
        50us 1 1 28 0
        60us 1 1 35 +0.5
        70us 1 1 42 +1
        80us 1 1 48 0
        90us 1 1 55 +0.5
        100us 1 1 61 -0.5
        200us 1 1 128 0
        300us 3 1 63 +1.5
        400us 2 1 129 0
        500us 5 1 63 +0.5
        600us 6 1 63 0
        700us 7 1 63 -0.5
        800us 1 3 175 +0.5
        900us 9 1 63 -1.5
        1ms 1 3 219 -1.5
        2ms 2 3 220 +3
        3ms 3 3 220 +3
        Xms X 3 220 +3
        (X的范圍為2到255)

        基本上我們平時用到的延時都在這里了,每種延時的誤差都很小,最大也不過3us,有的甚至沒有誤差,已經很精確了,如果想延時1秒鐘,你可以連續調用延時250ms的程序4次,總共延時誤差12us,這樣的誤差已經不算誤差了,用匯編語言編寫還達不到這個程度。

        現在你不再為延時不精確擔憂了,參照表中的數據寫延時,想延時多少就能延時多少。

        再次重申:此表格是根據我的延時模塊編寫,這也是大多數朋友都習慣用的一個模塊,如果你用其他模塊或是改動了我的模塊,延時都不準的,不信大家可以試試?。?!



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永胜县| 剑河县| 和硕县| 民权县| 苏尼特右旗| 麻城市| 富蕴县| 九江市| 福贡县| 太谷县| 中超| 溧水县| 石台县| 凤阳县| 额济纳旗| 黑龙江省| 梁平县| 滕州市| 沈阳市| 高邑县| 买车| 上思县| 武城县| 逊克县| 凯里市| 新野县| 高雄市| 德兴市| 隆德县| 法库县| 寿宁县| 和林格尔县| 翁牛特旗| 高陵县| 昌江| 津南区| 沂南县| 治县。| 保康县| 广丰县| 德安县|