|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在开发中有时候需要同外部芯片进行通信,此时对时序要求很高,希望延时准确,下面是经过实测的12T 51单片机延时语句。
/********************** void Delay10us() **********************
时钟为11.0592MHz时, 调用该函数延时9.77us,调用两次延时19.53us
可以在多个Delay10us()间加入_nop_()指令, _nop_()指令延时1.08us
1 如延时30us, 如下调用实际延时30.39us:
_nop_();
Delay10us();
Delay10us();
Delay10us();
2 如延时40us, 如下调用实际延时40.14us:
_nop_();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
****************************************************************/
void Delay10us()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/********************** void Delay100us() **********************
时钟为11.0592MHz时, 调用该函数延时99.83us
****************************************************************/
void Delay100us()
{
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
Delay10us();
}
/********************** void Delay1ms() **********************
时钟为11.0592MHz时, 调用该函数延时1000.5us
****************************************************************/
void Delay1ms()
{
unsigned char i;
for(i=0; i<229; i++)
{
_nop_();
}
}
/********************** void Delay10ms() **********************
时钟为11.0592MHz时, 调用该函数延时10006us
****************************************************************/
void Delay10ms()
{
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
Delay1ms();
}
/********************** void DelayX10ms() *********************
时钟为11.0592MHz时, 调用该函数延时N(N<=255)倍的10ms
****************************************************************/
void DelayX10ms(unsigned char nCount)
{
while(nCount--)
{
Delay10ms();
}
}
|
打赏
-
查看全部打赏
|