新聞中心

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

        8051單片機(jī)精確延時(shí)程序

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

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

        delay(t)表示延時(shí)t ms;

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

        延時(shí)函數(shù)

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

        {

        TMOD=0x01;//設(shè)置工作模式

        TR0=1; //啟動定時(shí)器0

        ET0=0x00;//禁止定時(shí)中斷

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

        {

        TH0=0xFC;

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

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

        TF0=0;//溢出后清零

        t--;

        }

        }

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

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

        delay(t)表示延時(shí)t ms;

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

        延時(shí)函數(shù)

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

        {

        TMOD=0x01;//設(shè)置工作模式

        TR0=1; //啟動定時(shí)器0

        ET0=0x00;//禁止定時(shí)中斷

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

        {

        TH0=0xFC;

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

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

        TF0=0;//溢出后清零

        t--;

        }

        }

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



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

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 开封县| 新野县| 礼泉县| 平邑县| 洮南市| 沅江市| 晋城| 南通市| 原阳县| 德兴市| 凤凰县| 沂南县| 福鼎市| 茶陵县| 揭西县| 濮阳市| 遂昌县| 二手房| 福海县| 闸北区| 永登县| 宝丰县| 彩票| 崇阳县| 江都市| 崇信县| 长垣县| 西乌珠穆沁旗| 合山市| 巩留县| 海阳市| 巫山县| 翁牛特旗| 濮阳县| 平武县| 陆川县| 南充市| 犍为县| 清丰县| 张家界市| 石阡县|