单片机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。
请求高人给出延时时间,并给出计算方法。
展开
 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
ty10332282
推荐于2016-05-15 · 超过17用户采纳过TA的回答
知道答主
回答量:35
采纳率:100%
帮助的人:44.8万
展开全部
我记得keil里面有时间的,好久不用了,单位好像是微秒吧!就是那个分步执行,按一下执行一步的..
比如前面那个箭头指到你的调用函数delay(200);假设执行到此部用时1110。
按一下执行,箭头指到下一“;”前的那一句了,如果此时用时显示变成了1510,说明延时函数延时了400us
要注意选择对的晶振频率
意法半导体(中国)投资有限公司
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
kemuxun
2012-05-17 · TA获得超过434个赞
知道小有建树答主
回答量:301
采纳率:100%
帮助的人:252万
展开全部
延迟就是无限执行while语句,一直到循环退出。执行一条语句一般是1-4个机器周期,而一个机器周期由12个时钟周期组成,时钟周期就是晶振的倒数。
比如12MHz的晶振,一个语句是一个周期,那就是1/12us 乘以 12 乘以 1 ,就是a=1的延时时间,a=200就再乘以200.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
涛哥打狙
2012-05-17
知道答主
回答量:35
采纳率:0%
帮助的人:23万
展开全部
不知你用的什么型号的单片机,假设你单片机执行一条指令的时间为x,则:
1:传递的参数为200,一直减到0用200个周期
2:每减一需要判断是否减到0,汇编后为比较指令,就要用200个比较指令的周期
总共用时就是200+200*比较指令的周期
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s58417632
2012-05-17 · TA获得超过299个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:167万
展开全部
将代码通过编译工具转成汇编指令,然后计算执行完这个函数需要多少条指令周期,根据芯片DATASHEET,计算出总共需要的时间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白痴呆子
2012-05-17
知道答主
回答量:20
采纳率:0%
帮助的人:6万
展开全部
每步相当于一微妙,--a每循环一次之前自减1,所以while循环的次数为a的值,时间t=200微妙
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式