新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 8051單片機精確延時程序

        8051單片機精確延時程序

        作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
        各種教材都喜歡用for循環(huán)再嵌套一個for循環(huán)來實現(xiàn)延時,下列是通過定時器來延時;

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

        delay(t)表示延時t ms;

        也可以通過定時器中斷的方式來延時,但是每次延時的時間非常有限,對于11.0592MHz的晶振,每次中斷延時只有約71ms.

        延時函數(shù)

        void delay(unsigned int t)//延時t ms

        {

        TMOD=0x01;//設置工作模式

        TR0=1; //啟動定時器0

        ET0=0x00;//禁止定時中斷

        while(t!=0)//循環(huán)次數(shù)t

        {

        TH0=0xFC;

        TL0=0x66;//設置計數(shù)初值

        while(TF0!=1);//查詢計數(shù)器溢出標志位

        TF0=0;//溢出后清零

        t--;

        }

        }

        此外,還用excel制作了一個計算計數(shù)初值的的小工具,輸入晶振和需要延時的最小單位,就自動計算出計算初值,并轉(zhuǎn)換為16進制(用DEC2HEX函數(shù))

        各種教材都喜歡用for循環(huán)再嵌套一個for循環(huán)來實現(xiàn)延時,下列是通過定時器來延時;

        delay(t)表示延時t ms;

        也可以通過定時器中斷的方式來延時,但是每次延時的時間非常有限,對于11.0592MHz的晶振,每次中斷延時只有約71ms.

        延時函數(shù)

        void delay(unsigned int t)//延時t ms

        {

        TMOD=0x01;//設置工作模式

        TR0=1; //啟動定時器0

        ET0=0x00;//禁止定時中斷

        while(t!=0)//循環(huán)次數(shù)t

        {

        TH0=0xFC;

        TL0=0x66;//設置計數(shù)初值

        while(TF0!=1);//查詢計數(shù)器溢出標志位

        TF0=0;//溢出后清零

        t--;

        }

        }

        此外,還用excel制作了一個計算計數(shù)初值的的小工具,輸入晶振和需要延時的最小單位,就自動計算出計算初值,并轉(zhuǎn)換為16進制(用DEC2HEX函數(shù))



        關(guān)鍵詞: 8051單片機精確延

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 九寨沟县| 建宁县| 岑巩县| 长治市| 望江县| 蓝田县| 普宁市| 德令哈市| 澄迈县| 东至县| 瓮安县| 句容市| 南平市| 新邵县| 阳江市| 于田县| 云林县| 馆陶县| 图片| 商南县| 永仁县| 林芝县| 松潘县| 文登市| 卢湾区| 博客| 墨竹工卡县| 金湖县| 岫岩| 肇庆市| 柳林县| 凤凰县| 平陆县| 五华县| 鸡西市| 青川县| 天祝| 卢湾区| 垦利县| 绵阳市| 伽师县|