C语言delay函数延时计算
voiddaly(){unsignedcharj;for(j=60;j;j--);}AT89C51的单片机,晶振是11.0592MHZ的,算延时,要有计算步骤,谢谢...
void daly()
{unsigned char j;
for(j=60;j;j--);
}
AT89C51的单片机,晶振是11.0592MHZ的,算延时,要有计算步骤,谢谢 展开
{unsigned char j;
for(j=60;j;j--);
}
AT89C51的单片机,晶振是11.0592MHZ的,算延时,要有计算步骤,谢谢 展开
展开全部
你 的程序有问题额。
void daly()
{unsigned char j;
for(j=60;j〈=0;j--)
}
你可去看看单片机的时钟信号产生电路中的有关
节拍:指振荡脉冲周期
状态:振荡脉冲尽过2分频后,就是单片机时钟信号的周期,定义为状态,一个状态等于两个节拍
机器周期:单片机采用定时控制方式,有固定的机器周期,一个机器周期等于6个状态,
机器周期=6个状态=12个节拍
当振荡脉冲频率为12Mhz时,一个机器周期为1微秒,振荡脉冲频率为6Mhz,一个机器周期为2微秒
数据类型中unsigned char为无符号字符型值域是在0~~~255范围里
在上面我设的是60次的循环,且晶振是约在12mhz,那么可以看出我们的算值是用60x1微秒,即可得到我们所要的延时值啊
void daly()
{unsigned char j;
for(j=60;j〈=0;j--)
}
你可去看看单片机的时钟信号产生电路中的有关
节拍:指振荡脉冲周期
状态:振荡脉冲尽过2分频后,就是单片机时钟信号的周期,定义为状态,一个状态等于两个节拍
机器周期:单片机采用定时控制方式,有固定的机器周期,一个机器周期等于6个状态,
机器周期=6个状态=12个节拍
当振荡脉冲频率为12Mhz时,一个机器周期为1微秒,振荡脉冲频率为6Mhz,一个机器周期为2微秒
数据类型中unsigned char为无符号字符型值域是在0~~~255范围里
在上面我设的是60次的循环,且晶振是约在12mhz,那么可以看出我们的算值是用60x1微秒,即可得到我们所要的延时值啊
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我一般不用计算,想要多长的延时就用工具软件生成一个。如果是有程序不知道多长就用仿真软件模拟下。不行就看一下生成的汇编代码,根据晶振换算的指令周期算一个。指令数*指令周期就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题,我最近也是相当的困惑啊,希望会的朋友帮忙解答一下啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询