晶振为11.0592的at89c51单片机用C语言能实现1微妙的延时吗?怎么写?要带形参的!请高手指点,万谢!!!
2微妙也行,最好是1微妙的,再次感谢!!!可以发我邮箱qjw2020@126.com11.0592MHZ...
2微妙也行,最好是1微妙的,再次感谢!!!可以发我邮箱qjw2020@126.com
11.0592MHZ 展开
11.0592MHZ 展开
7个回答
展开全部
#include<intrins.h> // 包含_nop_(); // 大约1us
_nop_(); 是单片机最小的延时单位了,大概0.9645us//示波器观察的
如果延时几微秒,就多加几个_nop_();
如果几十上百微秒的话就加个循环
void Delayus_110592(unsigned int time_)//延时时间为 1us * x 晶振是11.0592M
{
unsigned int _y;
for(_y = 0; _y < time_; _y++)
_nop_();
}
_nop_(); 是单片机最小的延时单位了,大概0.9645us//示波器观察的
如果延时几微秒,就多加几个_nop_();
如果几十上百微秒的话就加个循环
void Delayus_110592(unsigned int time_)//延时时间为 1us * x 晶振是11.0592M
{
unsigned int _y;
for(_y = 0; _y < time_; _y++)
_nop_();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11.0592M的话,一个机器周期就是1.085us。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void delayms(int k) \\ k毫秒
{
int i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--) ;
}
{
int i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--) ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--) //i=xms 即延时约xms毫秒
for(j=110;j>0;j--);
}
{
unsigned int i,j;
for(i=xms;i>0;i--) //i=xms 即延时约xms毫秒
for(j=110;j>0;j--);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询