基于msp430单片机和DS18B20使用数码管显示的温度测量_毕业设计(论文) 联系客服

发布时间 : 星期六 文章基于msp430单片机和DS18B20使用数码管显示的温度测量_毕业设计(论文)更新完毕开始阅读a26a8db0900ef12d2af90242a8956bec0875a566

图 5 写时序图

程序C代码如下: //写一个字节

void WriteByte(uchar WriteData){ uchar i; uchar tmpData; for(i=0;i<8;i++){

tmpData=WriteData&0x01; WriteData>>=1; DQ_OUT;

DQ_LOW; if(tmpData){ DQ_HIGH; } else{ DQ_LOW; }

Delayus(5); DQ_HIGH; } }

2、3 读时序

对于读数据操作时序也分为读0时序和读1时序两个过程。读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。若要送出1则释放总线为高电平。主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内

的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。采样期内总线为高电平则确认为1。完成一个读时序过程,至少需要60us才能完成。

图 6 读时序图 程序C代码如下: //读一个字节 uchar ReadByte(void){ uchar i;

uchar ReadData=0; for(i=0;i<8;i++){

DQ_OUT; DQ_LOW; ReadData>>=1; DQ_HIGH; Delayus(1); DQ_IN;

if(DQ_DATA) ReadData|=0x80; Delayus(6); }

return ReadData; } 3、温度计算子程序

DS18B20中的温度传感器完成对温度的测量,用供,形式表达,其中S为符号位。 16位二进制形式提