
单片机C语言延时程序,如何计算延时时间?(高分悬赏!!)代码如下:
voiddelay(unsignedinta){while(--a);}主函数中调用延时函数时,传递的值是200,即voiddelay(unsignedinta)中a=2...
void delay(unsigned int a)
{
while(--a);
}
主函数中调用延时函数时,传递的值是200,即void delay(unsigned int a)中a=200。
请求高人给出延时时间,并给出计算方法。 展开
{
while(--a);
}
主函数中调用延时函数时,传递的值是200,即void delay(unsigned int a)中a=200。
请求高人给出延时时间,并给出计算方法。 展开
5个回答
展开全部
我记得keil里面有时间的,好久不用了,单位好像是微秒吧!就是那个分步执行,按一下执行一步的..
比如前面那个箭头指到你的调用函数delay(200);假设执行到此部用时1110。
按一下执行,箭头指到下一“;”前的那一句了,如果此时用时显示变成了1510,说明延时函数延时了400us
要注意选择对的晶振频率
比如前面那个箭头指到你的调用函数delay(200);假设执行到此部用时1110。
按一下执行,箭头指到下一“;”前的那一句了,如果此时用时显示变成了1510,说明延时函数延时了400us
要注意选择对的晶振频率

2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
延迟就是无限执行while语句,一直到循环退出。执行一条语句一般是1-4个机器周期,而一个机器周期由12个时钟周期组成,时钟周期就是晶振的倒数。
比如12MHz的晶振,一个语句是一个周期,那就是1/12us 乘以 12 乘以 1 ,就是a=1的延时时间,a=200就再乘以200.
比如12MHz的晶振,一个语句是一个周期,那就是1/12us 乘以 12 乘以 1 ,就是a=1的延时时间,a=200就再乘以200.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知你用的什么型号的单片机,假设你单片机执行一条指令的时间为x,则:
1:传递的参数为200,一直减到0用200个周期
2:每减一需要判断是否减到0,汇编后为比较指令,就要用200个比较指令的周期
总共用时就是200+200*比较指令的周期
1:传递的参数为200,一直减到0用200个周期
2:每减一需要判断是否减到0,汇编后为比较指令,就要用200个比较指令的周期
总共用时就是200+200*比较指令的周期
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将代码通过编译工具转成汇编指令,然后计算执行完这个函数需要多少条指令周期,根据芯片DATASHEET,计算出总共需要的时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每步相当于一微妙,--a每循环一次之前自减1,所以while循环的次数为a的值,时间t=200微妙
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询