延時(shí)函數(shù)delay怎么算 請(qǐng)問在單片機(jī)C語言編程中,用delay延遲的話,1秒程序是什么?單片機(jī)晶振為12MHZ?
請(qǐng)問在單片機(jī)C語言編程中,用delay延遲的話,1秒程序是什么?單片機(jī)晶振為12MHZ?在keil simulation中,在配置中將晶體振蕩器設(shè)置為12Mhz,然后在調(diào)用延遲函數(shù)的地方設(shè)置斷點(diǎn),開始
請(qǐng)問在單片機(jī)C語言編程中,用delay延遲的話,1秒程序是什么?單片機(jī)晶振為12MHZ?
在keil simulation中,在配置中將晶體振蕩器設(shè)置為12Mhz,然后在調(diào)用延遲函數(shù)的地方設(shè)置斷點(diǎn),開始調(diào)試程序,并運(yùn)行到斷點(diǎn)。注意程序左側(cè)有一個(gè)窗口記錄當(dāng)前寄存器和一些狀態(tài),其中有一個(gè)變量記錄當(dāng)前運(yùn)行時(shí)間,記錄當(dāng)前時(shí)間T1,然后按F10(不進(jìn)入子函數(shù))調(diào)試,再記錄當(dāng)前時(shí)間T2,則延時(shí)=T2-T1。
再試試a,大約1秒。
我通常這樣做。
如果您想了解原理并自行計(jì)算,只需查看延遲的匯編代碼段并自行計(jì)算即可。
誰能幫我編一個(gè)單片機(jī)的延時(shí)程序,C語言的,大約一秒鐘的?
你的晶體振蕩器是什么?
如果延遲時(shí)間為4S,則a=0x04為1秒。
void delay(void)
{
unsigned char a,b,c
for(a=0x04 a> 0 a--)
{
for(b=0xef b> 0 b--)
for(c=0xef c> 0 c--)
}}
例如,端口P1的四個(gè)燈的定義為intled1=P1^0intled2=P1^1intled3=P1^2intled4=P1^3led1=0開啟延遲(1秒)延時(shí)函數(shù)LED1=1關(guān)斷延時(shí)(1秒)延時(shí)函數(shù)LED2=0關(guān)斷延時(shí)(0.5秒)延時(shí)函數(shù)LED2=1關(guān)斷延時(shí)(0.5秒)延時(shí)函數(shù)LED3=0關(guān)斷延時(shí)(0.2秒)延時(shí)函數(shù)LED3=1關(guān)斷延時(shí)(0.2秒)延時(shí)函數(shù)您還可以使用P1=0xFE;delay()delay()延時(shí)函數(shù)時(shí)間函數(shù)P1=0 XFF等