1. 51單片機delay延時
通常這個延時函數所能帶的參數為兩位元組的,超出這個范圍的參數值就無效了;
所以,不是你想要什麼數值都可以的。
2. 51單片機去延時時間有什麼影響
你是說延時程序呢么?這個需要你根據實際情況進行處理,外部電路一般都會有一個開機上電復位的時間需要單片機延時處理等待狀態復位完成。
3. 51單片機中延時程序
1. sleep()是以毫秒計算的,延時5秒是sleep(5*1000);,延時5分是sleep(5*1000*60);
2.包含的頭文件看你用的什麼編輯軟體。
3.我用的VC++是用包含在#include<windows.h>頭文件中。
#include<stdio.h>#include<windows.h>//Sleep()的頭文件 main() { int i;
int n=10;for(i=1;i<=n;i++) {printf("%d",i);Sleep(5*1000*60);} //
這里修改延時時間,
有些人說是用#include<dos.h>做頭文件你自己試下吧。
還用Sleep的S是大寫的,不是小寫的。
4. 單片機延時程序的延時時間怎麼算的
單片機的延時程序通過執行指令來達到延時效果,這個時間等於執行的指令需要的時間,而一個指令需要的時間叫做指令周期,這個時間等於若干個機器周期。
(4)單片機延遲擴展閱讀:
1丶指令周期,是每種運算需要的時間,如加法、邏輯等,是每一步進行這種指令運算需要的時間,是機器周期的整數倍,這種周期不定。
2丶51單片機12M晶振,晶振周期1/12微妙,一個機器周期包含12個晶振周期,所以12M晶振時機器周期=12x(1/12)微妙=1微妙。
3丶1個毫秒延時子程序如下:
void delay1ms(uint ms)
{
uint i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<110;j++);
}
}
5. C51單片機延時程序,需要不精確延時2小時,請問大神怎麼寫延時代碼,謝謝!
可以有很多辦法,一是調整參數,使其延時5分鍾或6分鍾,循環24次或20次。二是將延時函數的形參改為長整型(32位)延時時間擴大65536倍。三是使用定時器,每次定時50mS,累計144000次,便是2小時,使用定時器(中斷)的好處是在延時期間還可以干許多事情,例如顯示剩餘時間,檢測設備工作狀態或者調整延時時間等,而你的純軟體延時期間想干其它事情比較困難。
6. 單片機延時問題
C語言的耗時時間,一般是無法計算的,沒有公式。
另外,樓主給出的條件也不足:晶振是多少?用什麼編譯軟體?......
用KEIL軟體,可以測試C語言的耗時時間。方法可見:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/37d8c6fb9b91e1849f51462f.html
7. 如何算51單片機延時時間
用KEIL軟體可以計算時間,將while的起始位置和終止位置加紅點(雙擊即可);
然後左側的SEC後面的就是執行的時間。
再給你幾個延時程序做參考:
軟體延時:(asm)
晶振12MHZ,延時1秒
程序如下:
DELAY:MOV
72H,#100
LOOP3:MOV
71H,#100
LOOP1:MOV
70H,#47
LOOP0:DJNZ
70H,LOOP0
NOP
DJNZ
71H,LOOP1
MOV
70H,#46
LOOP2:DJNZ
70H,LOOP2
NOP
DJNZ
72H,LOOP3
MOV
70H,#48
LOOP4:DJNZ
70H,LOOP4
定時器延時:
晶振12MHZ,延時1s,定時器0工作方式為方式1
DELAY1:MOV
R7,#0AH
;;晶振12MHZ,延時0.5秒
AJMP
DELAY
DELAY2:MOV
R7,#14H
;;晶振12MHZ,延時1秒
DELAY:CLR
EX0
MOV
TMOD,#01H
;設置定時器的工作方式為方式1
MOV
TL0,#0B0H
;給定時器設置計數初始值
MOV
TH0,#3CH
SETB
TR0
;開啟定時器
HERE:JBC
TF0,NEXT1
SJMP
HERE
NEXT1:MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
R7,HERE
CLR
TR0
;定時器要軟體清零
SETB
EX0
RET
C語言延時程序:
10ms延時子程序(12MHZ)
void
delay10ms(void)
{
unsigned
char
i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
1s延時子程序(12MHZ)
void
delay1s(void)
{
unsigned
char
h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
}
200ms延時子程序(12MHZ)
void
delay200ms(void)
{
unsigned
char
i,j,k;
for(i=5;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);
}
500ms延時子程序程序:
(12MHZ)
void
delay500ms(void)
{
unsigned
char
i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
不過實際得到的延時會存在差異,所以最好用實驗的方法調整延時參數。
8. 單片機延時計算方法
以C51為例,12MHZ晶振的話,1個時鍾周期為1/12微秒,1個機器周期=12個時鍾周期,定時器每個機器周期可延時12*1/12微秒=1微秒。如果晶振為8MHZ的話,定時器每個機器周期可延時12*1/8微秒=1.5微秒
9. 單片機延時一次的實際時間與什麼有關
答:單片機延時一次的實際時間與什麼有關?
1 、與單片機的晶振有關
2、 與單片機執行的指令長度有關(單周期還是雙周期)
3、與執行的程序有關