nop不同晶振频率下的延时时间

您所在的位置:网站首页 口红24m是多久 nop不同晶振频率下的延时时间

nop不同晶振频率下的延时时间

2024-07-11 02:49| 来源: 网络整理| 查看: 265

 

_nop_()函数

包括在库函数intrins.h中的 表示空循环一个机器指令的时间,12M中表示1us;6M中表示2us;24M中表示0.5us(微妙) 1S=1000ms=1000000us; NOP,常在通信驱动中用到,如IIC(I2C)等

12MHz  晶振的话,一个机器周期是1us,因此 单周期指令为1us,如NOP,MOV Rn,#data等等 双周期指令为2us,如SJMP等等 四周期指令为4us,如DIV,MUL等等。 11.0592MHz晶振的话,一个周期是1.085us,也就是时间是12M周期的1.085倍。

51单片机12M晶振,晶振周期1/12微秒,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微秒=1微秒 。11.0592M的晶振就将上文公式中12换成11.0592即可

/************************************************************************* *  函数名称:SamplingDelay *  功能说明:简单延时程序,应用范例:SamplingDelay(1); * 一个nop延时一个机器指令周期,延时时间因单片机晶振频率而异 * 此处所用晶振频率为11.0592MHz,故一个nop为1.085μs,为就是12MHz晶振 *     时间的1.085倍,此处大致约等于1μs。所以执行一条SamplingDelay(1);延时2μs *  参数说明:无 *  函数返回:无 *************************************************************************/ #if 0 void SamplingDelay(unsigned int n) {    volatile unsigned int i ;    for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3