第1个回答 2012-12-18
LCALL DELAY_20MS ;包括lcall和返回一共20ms,误差0us
DELAY_20MS: ;60H,61H,62H
MOV 62H,#26
MOV 61H,#5
MOV 60H,#74
DJNZ 60H,$
NOP
DJNZ 61H,$-7
DJNZ 62H,$-13
RET
;------------------------------------------------
LCALL DELAY_500MS ;包括lcall和返回一共0.5s,误差0us
DELAY_500MS: ;60H,61H,62H
MOV 62H,#10
MOV 61H,#102
MOV 60H,#243
DJNZ 60H,$
DJNZ 61H,$-6
DJNZ 62H,$-12
MOV 62H,#76
DJNZ 62H,$
RET
第2个回答 2012-12-17
0.5s
void delay(void) //误差 0us
{
unsigned char a,b,c;
for(c=23;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
}
20ms
void delay(void) //误差 0us
{
unsigned char a,b;
for(b=215;b>0;b--)
for(a=45;a>0;a--);
_nop_; //if Keil,require use intrins.h
_nop_; //if Keil,require use intrins.h
}