新聞中心

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

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

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

本文引用地址:http://m.butianyuan.cn/article/201611/320673.htm

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

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

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

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

{

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

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

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

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

{

TH0=0xFC;

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

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

TF0=0;//溢出后清零

t--;

}

}

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

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

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

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

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

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

{

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

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

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

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

{

TH0=0xFC;

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

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

TF0=0;//溢出后清零

t--;

}

}

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



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

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉