如何在11.0592MHZ的频率下给单片机一个1US的延时。

如何在11.0592MHZ的频率下给单片机一个1US的延时。因为DS18B20对时间要求太严格了,而用KEIL又不知道要怎么调出来

1us?在11.0592MHZ晶振下,机器周期就是12/11.0592M约等于1us,用一条空操作指令就行噻。汇编:NOP;
C语言:用_nop_();时记得加上#include <intrins.h> 头文件追问

如果是time=4;while(time--);这样的话时延时了几us?

追答

C语言中这样一条简单的赋值语句time=4;占两个机器周期 2us,time--也是一样,执行占2个机器周期。而 “;”空操作占一个机器周期吧,算算 while(time--); 执行了几次
在11.0592MHZ晶振下
2+4X2+4=14us
参考一下,汇编中指令执行情况又不一样了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答