发布网友
共2个回答
热心网友
用c的:
void delay(void)
{
unsigned char a,b;
for(b=80;b>0;b--)
for(a=10;a>0;a--);
}
用asm的:
DELAY:
MOV R6,#50H
DL0:
MOV R5,#0AH
DJNZ R5,$
DJNZ R6,DL0
RET
这个误差是0.1us,还不够精确,那就没有办法了!
22.1184mhz晶振用定时器误差也是0.1us
热心网友
n=1ms*22.1184MHZ/12; =1843.2;
delay()
{for(i=0;i<1843;i++);}