C語言的延遲函數(shù)一般是利用無意義程序運(yùn)行來控制時(shí)間從而達(dá)到延時(shí)的目的
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為黃龍企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),黃龍網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
舉個(gè)例子:
for(i=0;ix;i++)
for(j=0;j120;j++);
這是延時(shí)x毫秒的for循環(huán)語句。
值得注意的是記得最后的;一定得記得寫。
在VC中,可以調(diào)用windows.h庫中的sleep函數(shù)實(shí)現(xiàn)延遲,但是其實(shí)沒有那個(gè)必要,一般我們用空語句的循環(huán)實(shí)現(xiàn)延遲,在單片機(jī)的c程序中就都是這樣實(shí)現(xiàn)延遲的。
比如:
void delay(int i)
{
while(i--);
}
如果你在主函數(shù)中調(diào)用
delay(1000)
那么就能實(shí)現(xiàn)一個(gè)1000次指令周期的循環(huán)
因?yàn)榭照Z句占用的時(shí)間也是一個(gè)指令周期
希望對您的問題有所幫助哦 呵呵
單片機(jī)的C語言關(guān)于延時(shí)函數(shù)主要有兩種
一種是用for循環(huán),通過單片機(jī)執(zhí)行空指令達(dá)到延時(shí)的目的
如:
for(i=0;i100;i++)
{
;
}
這個(gè)簡單的語句會(huì)執(zhí)行100次空指令
每一次指令的時(shí)間可以大概確定
因此這個(gè)是最簡單的延時(shí)函數(shù)
第二種是通過定時(shí)器的方式來實(shí)現(xiàn)
定時(shí)器是通過對單片機(jī)的晶振進(jìn)行計(jì)數(shù)
然后在定時(shí)器中斷服務(wù)函數(shù)里面實(shí)現(xiàn)定時(shí)時(shí)間的計(jì)算及設(shè)置
51單片機(jī)的定時(shí)器0中斷服務(wù)函數(shù)為
void
time0()
interrupt
1
{
...
}