#include<reg51.h>
#include<intrins.h> //函数 _nop_(),一个机器周期
#define uchar unsigned char
#define uint unsigned int
void delay_s(uchar i) //12MHz时,延时 0.1*i s
{
uchar j,k;
do{j=198;
do{j--;k=250;while(--k);}while(j);
i--;
}while(i);
}
void delay_ms(uchar i) //延时(j*2+1+2)*i+5 个机器周期
{ uchar j; //12MHz时,延时 0.5*i ms
do{j=248;
do{j--;}while(j);
i--;
}while(i);
}
void delay_us(uchar i) //延时 2*i+1+2 个机器周期
{ //12MHz时,延时 2*i us
while(--i);
}
void main()
{
delay_s(10); // 1s
delay_ms(10); //5ms
delay_us(10); //20+3us
} |