yumeng_ 发表于 2017-9-2 11:37:22

51单片机控制DS18B20温度传感器编程问题求助。

if(DQ)语句上面不是已经DQ=1了吗,为什么还要写这个if语句,DQ的值难道是动态变化的吗?DS18B20读取一个字节的这段程序语法我都能看懂,就是不知道这段程序硬件层面到底是什么意思,希望大家能给我解释一下。

lgg88 发表于 2017-9-2 12:36:50

DQ=1是设置成输入。   if(DQ)是判断DQ状态。

wistarky 发表于 2017-9-2 15:56:17

要看datasheet,
DQ=0是通知DS18B20开始要开始读取,
DQ=1是放开让DS18B20开始回传
if(DQ)是读取回传bit

Tliang 发表于 2017-9-2 16:07:50

DQ在上面肯定用sbit DQ = PX^X定义了。这个定义指的是DQ代表这个IO了,你在不考虑外围元件的情况下DQ=1确实会让你的IO为高电平,且你读DQ他也是等于1。但是如果外围把它拉低那么你读的时候就为0了。
理解这个了就看手册上的协议

yumeng_ 发表于 2017-9-2 17:49:44

Tliang 发表于 2017-9-2 16:07
DQ在上面肯定用sbit DQ = PX^X定义了。这个定义指的是DQ代表这个IO了,你在不考虑外围元件的情况下DQ=1确实 ...

明白了,谢谢你。{:smile:}

xiaobendan 发表于 2017-11-5 15:41:58

字体太大了
页: [1]
查看完整版本: 51单片机控制DS18B20温度传感器编程问题求助。