DS18B20读写时序问题

[复制链接]
查看11 | 回复1 | 2011-2-21 10:41:35 | 显示全部楼层 |阅读模式
* 读一个字节
*/
/*******************************************************************/
bit ReadOneChar(void)
{
unsigned char i = 0 ;
unsigned char dat = 0 ;
for (i = 8 ; i > 0 ; i--)
{
DQ = 0 ; // 给脉冲信号
dat >>= 1 ;

DQ = 1 ; // 给脉冲信号

if(DQ)

dat |= 0x80 ;

delay2(10) ;
}

return (dat) ;
}
/* 写一个字节
*/
/*******************************************************************/
WriteOneChar(unsigned char dat)
{
unsigned char i = 0 ;
for (i = 8 ; i > 0 ; i--)
{

DQ = 0 ;

DQ = dat&0x01 ;

Delay(10) ;

DQ = 1 ;

dat>>=1 ;
}
}
程序中的延时分别应该在什么范围内,是不是这两个子程序写好了就能正确读取温度值了??

回复

使用道具 举报

千问 | 2011-2-21 10:41:35 | 显示全部楼层
uchar init_DS18B20(){uchar error; DQ=1; DQ=0; delay(81); DQ=1; delay(8); if(DQ==1)error=1; elseerror=0; delay(12); DQ=1; return error;}void write_ds18b20(uchar date){ uchar i=0; for(i=0;i<8;i++) {DQ=1;DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();DQ=date&0x01;del
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行