51单片机常用延时程序

//------------------------//
//-----------------------------//
@大约100mS延时程序://12M晶振,此延时函数最常用,由汇编语言算来
void delay()
{unsigned int i;
for(i=0;i<10000;i++);
}

-------------------------------
-------------------------------此延时函数最好用
@12M晶振600多US:
void delay(unsigned int t)//在里面写上500就可以延时5MS
{
while(t--);
}
---------------------------
----------------------------------

@大约50us延时程序:
void delay_50us(uint t)//T要大一些才准//由汇编语言改来
{
unsigned char j;
for(;t>0;t--)
for(j=19;j>0;j--);
}
------------------------------------------
----------------------------------------------

@大约50ms延时程序:?????????????????????????????????????/
void delay_50ms(uint t)//t要大一些才准//
{uint j;
for(;t>0;t--)
for(j=6245;j>0;j--);
}//把FOR分号嵌套到FOR中,FOR分号可以使用大括号,效果是一样的。
----------------------------------------------
-----------------------------------------------------------------------------
-------------------------------------

@延时: void delay(void)//0.000783s
{ UNSIGNED INT A;
A=5OOO;
WHILE(A--);}
------------------------------------
----------------------------
#12M晶振0.000391S
a=50000;
while(a--);

#@12M晶振422us:
for(i=0;i<10;i++);
-----------------------
---------------------------

------------------------------------
------------------------------------
@0.12061s延时 DELAY://12M晶振
MOV R7,#200
DL1:MOV R6,#200
DL2:NOP
DJNZ R6,DL2
DJNZ R7,DL1
RET
-------------------------
---------------------------


@12M晶振0.000526S:视觉暂留<=0.1S
DELAY:
push b
mov b,#0
d1:
djnz b,d1
pop b
ret
-----------------------------
--------------------------

--
---------------------------------

相关文档
最新文档