社区导航

 

搜索
查看: 867|回复: 3

[求助] 关于延时函数问题 请大神们指点一下谢谢!

[复制链接]

4

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-4-20 10:29 | 显示全部楼层 |阅读模式
我有个延时函数
/***********************************************/

/*函数名称:delay()        */

/*函数功能:延时函数,单次 25us 左右延时        */

/*入口参数:t;        */

/*输出参数:无        */

/*调用函数:无        */

/*全局变量:无        */

/*局部变量:t;        */

/***********************************************/

void delay(uint t)
        {
        for (;t>0;t--);
        }



DS18B20读数据函数
uchar ds_read(void)
{
         uchar i;
         uchar value=0;
         for(i=8;i>0;i--)
           {
                DQ=1;_nop_();
                _nop_();
                value>>=1;
                DQ=0;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                DQ=1;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                if(DQ)value|=0x80;
                delay(6);             !!!问题是这部 手册上说延时60微秒即可 可是这个程序 是不是延时6*25=150微秒 所以这个不对??
       }
     DQ=1;
     return(value);
}


此帖出自51单片机论坛

回复

使用道具 举报

430

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-4-20 10:52 | 显示全部楼层
加油
充放电数显全套方案,双口快充慢充检测电流电压,两线三线直流电压表,配套三个8尺寸15*8MM带AV电流电压单位专利数码屏,资料QQ2981074992 邮箱同上

回复

使用道具 举报

3553

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-4-20 13:17 | 显示全部楼层
决定这种延时时间的因素有两个,一个是指令周期,不同的单片机指令周期不太一样,stc号称的百兆就是周期要比传统51短。还有一个是系统时钟频率,视你的具体情况定。
18b20手册上写要150微秒实际上也没那么特别的严格,时序对了才能行。

回复

使用道具 举报

3658

TA的帖子

11

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2018-4-20 14:07 | 显示全部楼层
最好用设备测一下实际的脉宽。跟标准的时序对比一下。尽一下量接近标准时序。你也可以改变延时。 对比一下效果。看哪个更稳定。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-2-28 10:29 , Processed in 0.155985 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表