在單片機(jī)的C語(yǔ)言編程中,可以使用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)延時(shí)操作。具體而言,可以使用一個(gè)for循環(huán)來(lái)實(shí)現(xiàn)一段時(shí)間的延時(shí)。
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)綏寧免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。c語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
比如12M晶振for(j=0;j120;j++);大概延時(shí)1毫秒,10592M晶振那么for(j=0;j110;j++);延時(shí)1毫秒,你這里的for(j=0;j100;j++);延時(shí)1毫秒的話,晶振應(yīng)該是10M,不太常見(jiàn)喲,特別是在單片機(jī)方面。
delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。C語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。
int t)//延時(shí) t x 1ms { while(t--){ delayus2x(245);delayux2x(245);} } delayms(50000);//調(diào)用此句延時(shí)5s 至于不能大于255,因?yàn)槟愕臄?shù)據(jù)類型為char型,及8字節(jié),最大值為255,2的8次方減一。
1、using1 表示用寄存器工作組。其實(shí)不加也可以,在c語(yǔ)言中,是自動(dòng)分配寄存器的,所以可以不加。
2、這是單片機(jī)C語(yǔ)言中斷函數(shù)的編程格式,()后面的只是告訴編譯系統(tǒng)該函數(shù)是一個(gè)中斷函數(shù),具體的執(zhí)行還是按照C語(yǔ)言函數(shù)的執(zhí)行方式去執(zhí)行。
3、例如定時(shí)器0中斷:void timer0_sev (void) interrupt 1 timer0_sev是中斷程序名稱,可自己定 interrupt 1指的是中斷號(hào),不能隨意寫(xiě) 0 1 2 3 4 分別是外部中斷0 定時(shí)器0 外部中斷1 定時(shí)器1 串口中斷。
4、interrupt是中斷函數(shù)類型關(guān)鍵字,其后面的n是中斷號(hào),范圍是0-31 51單片機(jī)內(nèi)可以在片內(nèi)RAM中使用4個(gè)不同的工作寄存器組,每個(gè)寄存器組中包含8個(gè)工作寄存器(R0-R7)。
5、標(biāo)準(zhǔn)c語(yǔ)言沒(méi)有中斷調(diào)用機(jī)制,但是不同編譯器都有相應(yīng)的中斷處理方式,可以使用戶實(shí)現(xiàn)中斷功能。
1、在單片機(jī)c語(yǔ)言中直接調(diào)用庫(kù)函數(shù)即可,具體如下:includeintrins.h // 聲明了void _nop_(void);_nop_(); // 產(chǎn)生一條NOP指令。
2、這個(gè)函數(shù)是延時(shí)一個(gè)機(jī)器周期的意思,它包含在頭文件intrins.h中,只要程序應(yīng)用到_nop_(),就需要有頭文件intrins.h的聲明。
3、C語(yǔ)言中沒(méi)有_nop_()函數(shù),該函數(shù)是在51單片機(jī)中用的延時(shí)函數(shù),延時(shí)一個(gè)指令周期。一般包含在 intrins.h 頭文件當(dāng)中。例如用6MHz的晶振,則如下for循環(huán)大約延時(shí)1秒。
4、這是一條庫(kù)函數(shù),其實(shí)就是一條空操作指令,什么一匕不做,只為延時(shí)。這是I2C程序,為了保證讀寫(xiě)數(shù)據(jù)的可靠,每讀寫(xiě)一位時(shí),加幾個(gè)這種語(yǔ)句,可適當(dāng)延時(shí),就等于降低了讀寫(xiě)速度。
5、在c語(yǔ)言中,nop通常還有阻止優(yōu)化的作用,這點(diǎn)在51編譯系統(tǒng)中作用不是很明顯,但在別的編譯系統(tǒng)中則很重要。