最后,點擊編譯,生成HEX文件就可以了,這樣51單片機延時語句就完成了。

創(chuàng)新互聯(lián)專業(yè)提供大邑服務器托管服務,為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買大邑服務器托管服務,并享受7*24小時金牌售后服務。
延時時間的計算與單片機的晶振頻率有關。若晶振頻率為12Mhz,那么單片機每震動一次所需要的時間是1/12M s。那么再來看看單片機執(zhí)行一次自減所需要的振動次數(shù)是96次,假如我們對時間要求不是特別精確的話,可以約等于100來計算。
比如12M晶振for(j=0;j120;j++);大概延時1毫秒,10592M晶振那么for(j=0;j110;j++);延時1毫秒,你這里的for(j=0;j100;j++);延時1毫秒的話,晶振應該是10M,不太常見喲,特別是在單片機方面。
C程序中可使用不同類型的變量來進行延時設計。經(jīng)實驗測試,使用unsigned char類型具有比unsigned int更優(yōu)化的代碼,在使用時應該使用unsigned char作為延時變量。
程序延時本來就是一個大概的數(shù)。這個也不是很準的。中間的for循環(huán)120次大約是962周期,加上每次循環(huán)前后的“準備工作”,再加上函數(shù)調(diào)用/返回的時間,接近1Ms.實沒為993個周期。
C:0x0809 70FC JNZ C:0807;A=0?,2時鐘 循環(huán)共249次,一個循環(huán)共需4個時鐘周期,加上第一個賦值語句1周期。
void delay(void){ unsigned int i;for(i=0;i20000;i++); //延遲函數(shù),讓程序數(shù)數(shù),浪費時間。可以通過改變i的值來改變時間。
51單片機12M晶振延時1us,只需要執(zhí)行一個NOP就是了。C語言中也是如此。
用的是10592M的,你如果真的需要是12M的,那自己直接修改成12M就可以了。
29940T RET 2 + 29940 + 1 = 29943T 總共是: 29943T。如果是 12MHz,時間就是:29943us。另外,執(zhí)行這個程序,還需要一條 CALL 指令,應該再加上 2T。--怎么樣實現(xiàn)5S的延時?慢慢算唄。
單片機。用匯編語言編程。 設計一軟件延時1s的子程序。設晶振頻率為12MHz。
延時時間的計算與單片機的晶振頻率有關。若晶振頻率為12Mhz,那么單片機每震動一次所需要的時間是1/12M s。那么再來看看單片機執(zhí)行一次自減所需要的振動次數(shù)是96次,假如我們對時間要求不是特別精確的話,可以約等于100來計算。
需要延時的時候,在程序中帶參數(shù)調(diào)用DelayMs,參數(shù)傳遞給DelayMs的形式參數(shù)“unsigned char t”,t就有了數(shù)值。“while(t--);”執(zhí)行t個循環(huán)后退出,t個循環(huán)用了若干時間。
關閉延時標志位。} } } ET0=1;} 調(diào)用程序:void delay1hour(){ delay_1hour=1;i=100;j=3600;TR0=1;}//在任意你想開始延時一小時的地方加這個函數(shù)。在延時期間,單片機還可以干其他指令。
for(a=2;a0;a--)是4微秒,即2*(142*4);for(c=1;c0;c--) // 2微秒, 執(zhí)行1次,即2*(142*4)=1136微秒;b=125,1000/8=125,再減去其它調(diào)用時間,應該b取值不大于125。
51單片機精確延時有兩個辦法:采用定時器來延時。用匯編語言來編制延時程序。
新聞標題:c51匯編語言延時函數(shù) 匯編語言延時時間計算
當前路徑:http://chinadenli.net/article29/decdjch.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站制作、ChatGPT、App設計、網(wǎng)站導航、手機網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)