看了很多18b20的资料,越看越糊涂啦!请高手指点哦:
问题一(资料上以下两种不同的说法,描述的竟然相反,哪个才是对的啊?):
说法一:DS18B20的读时序
“对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15微秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。”
说法二:DS18B20的读时序
“主机总线t0时刻从高拉至低电平时,总线只需保持低电平1us,之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。t2距t0为15us,也就是说,t2时刻前主机必须完成读位,并在t0后的60us至120us内释放总线。”
以上两个说法完全矛盾呀!按照说法一,主机把单总线拉低时刻开始算,需要延迟15微秒之后才能读位;按照说法二,主机把单总线拉低时刻开始算,必须要在15us之内完成读位!
这两种说法必然有一种是错的啊,可是,哪一个说法才是对的呀?
问题二:
ds18b20的写1时序与读(0或1)时序完全相同,是不是在读取ds18b20一位的同时,无意中就向18b20写进去一个1了啊?
参考资料:无
[求助]关于ds18b20读时序的两个问题
问题1:说法并不矛盾,我理解的是在你拉低总线15US内必须释放总总线,但你拉低的宽度不能小于1US,如果小于1US,则1820可能检测不到。注:我拿到的一个中文资料上解释也有误,明明是说写时序,它却翻译的是读时序,建议还是看下原版的英文资料。问题2:对1820读数据的前提是你要先进行温度转换,或...
你好,我想问一下我的ds18b20也总是ffff真的没找到什么原因。_百度知 ...
ds18b20的读写操作时序要求非常严格,其实,就是延时的精度要准。特别是C语言编程,延时长短更要计算准确,否则,读\/写操作就无效果。另外,仿真通过的程序,到实物上可能不行,反之,也是一样的,即在实物上测试通过的程序,用到仿真上就不行了。如果是从网上找的程序,一是要核对晶振频率是否相同,频...
18b20实现温度测量,对初始化和读写的时序问题很是困惑,有经验的传授...
DS18B20检测到上升沿后等待15到60us,发出存在脉冲:拉低总线60-240us。至此,初始化和存在时序完毕。所有的写时隙必须至少有60us的持续时间。相邻两个写时隙必须要有最少1us的恢复时间。所有的写时隙(写0和写1)都由拉低总线产生。为产生写1时隙,在拉低总线后主机必须在15us内释放总线(拉低的电...
单片机的DS18B20问题??
1、DS18B20的三个引脚的功能是什么?答:DS18B20的3个引脚分别为VCC电源正极、GND电源负极、DQ数据端。2、DS18B20复位时间是多少?答:DS18B20复位时间是480us~960us。3、如何判断DS18B20工作正常?答:不存在此功能。4、单片机如何实现对DS18B20的写0操作?答:不存在此功能。(你是不是说如何启动读取DS18...
用单片机测温,ds18b20一直显示95。0
你的读数错了吧,怎么可能95度呢?而且貌似DS18B20是没有晶振的吧。读错了,大致两种问题。一,单片机的时间与书本上的时间不同,比如说书本上是用的是AT89C51,你使用的是STC12C5A60S2,这两种就完全不一样了,STC12C5A60S是单时钟的51单片机,STC12C5A60S2的速度比AT89C51的快很多,导致时序错误...
DS18B201读取速度不够的问题
你好 对于18b20的速度来说个人感觉有两点值得考虑:首先,750ms是在12位分辨率下的转换时间,也就是0.0625摄氏度,如果用不到高分辨率的话可以把分辨率设低,比如9位,这时的转换时间可减少到大约90ms左右,分辨率0.5摄氏度。一次完整的温度采集周期最少100ms左右。其次,18b20对时序要求比较严格,大部分...
使用18b20温度传感器遇到的难题
1.硬件上你加上拉电阻没有;2.时序可能不是很严格,我曾经碰到一个类似的问题,正常的时候程序好好的,但在低温的时候就发现不对了,后来才明白,由于DS18B20里面的振荡电路可能会有温漂,如果你时序严格压线的话,很可能就会出现一会儿能用,一会儿不好使的情况,建议你用示波器检测一下你驱动的时序是不是很...
ds18b20 如何读取数据?
1、首先双击电脑中的proteus软件,然后点击左侧的“P”按钮,如图。2、接着找到“关键字”输入框,如图。3、输入“DS18B20”,在列表中选择它,如图,最后点击“确定”。4、紧接着在图纸中点击左键,此时出现一个DS18B20的虚影,如图。5、拖动DS18B20虚影到图纸的合适位置,再次点击左键,如图,这样一...
DS18B20什么是读0时序读1时序
是检测到的信号,不是单片机本身产生的,应该算是采集到的信号,在DS18B20内部转换后的输出信号
单片机控制18b20 对于1820的写时序看不明白。
你之所以迷惑是没把DS18B20的工作时序弄懂。单片机读取18B20数据时,先把总线拉低大约1us时间,然后释放总线,紧接着读取DQ引脚的状态(低电平即读0,高电平即读1),这个状态大约保持40-45us。下边我给你找了个例子。bit Read_Bit(void) \/\/读取一位 子函数 { uint i;bit dat;DS=0;i++;...