单片机用c语言编程的问题

voiddelay(){;;}//里面有两个空格和两个逗号这是一个延时程序,郭天祥的教材上这么说的大约延时5us左右我有一下几点不太明白1.大括号内的逗号是不是必须的,用... void delay()
{ ;; } //里面有两个空格和两个逗号

这是一个延时程序,郭天祥的教材上这么说的 大约延时5us左右 我有一下几点不太明白 1.大括号内的逗号是不是必须的,用空格代替行吗 2.这个程序的延时5us是怎么算的,全是空格或者全是逗号行吗 3.用其它的符号代替行吗
展开
 我来答
598646744
2012-04-12 · TA获得超过647个赞
知道小有建树答主
回答量:310
采纳率:100%
帮助的人:70.6万
展开全部
1大括号主要是告诉编译器这是一个程序段,不可能空格代替,空格只有用在字符串时才被编译器识别。
2程序的延时主要是与你用的晶振有关,计算方法:如果你的用12M晶体,一般的51单片机12分频之后就只有1M了,1M就是它的工作速度(也叫做机器周期,大小为1us),指令执行的时间叫做指令周期,一个机器周期内执行一个单周期指令,NOP是单周期指令(用时为1us)。空格不会被编译器认为有空格的,你用多少都没有用;一个逗号就是一个空语句,常被编译成NOP指令。
3你可以用_nop();这是一个空跳的函数,多调用几次就能达到效果。一般延时最好用,定时器,
playnee
2012-04-11 · TA获得超过637个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:231万
展开全部
单片机c语言编程做不到精确延时,这个延时程序是用两句空语句来延时的,类似汇编中的NOP指令,这个延时的5us应该是利用断点的方法测试出来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式