晶振频率为11.0592m赫兹的单片机延时一秒需要循环多少次?

 我来答
匿名用户
2023-05-12
展开全部

很简单, for循环也是需要时间的.

当你使用仿真的时候,通常可以在编译器里面查看这段代码的汇编指令.

你可以看书它的用到辩圆了多少个汇编指令,  然后在你的芯片手册上查询,每一个汇编指令执行需要多少个最小指令周期. 最小指令并册周期才是你说的1um,  全部加起来, 你就知道你这句话用掉了多少个最小指令.

很明显  远远超过了1个最小指令.9秒的的误差算少的了...

所以说,假如你要做1s的延迟, 最好使用内部时钟中断来做,直接在程序内部delay延时的话,占用系统资源还算不准... 

具体解释下上图, 为了拿这5分还真不容易...

首先, 进入函数就需要5个汇编指令, 这些指令主要是入栈,备份指针的操作, 不同的编译器指令不同,但都差不多....  当然 这5个指令是进入函数只跑一次, 占用时间不多, 消耗时间最多的是你for循环内部的指令,  一个for循环需要8条汇编指令才能实现,  而每个汇编指令通常都需要消耗1-2个最小指令循环,具体那个指令消耗几个循环我懒的查手册,  不同的芯片不一样, 你自己看看你用的芯片手册把....

以上...  应该清楚了把.. 不明白追问, 我要是再次无聊的话, 会修改携蔽塌回答.


如果我的回答可以帮到您,请采纳哦!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式