| 
 
| 本帖最后由 konglingfei0615 于 2013-8-3 10:09 编辑 
 最近看DS18B20,发现读时序与程序对应不起来,到底怎么看?
 
 #include <msp430x14x.h>
 #define DQ1 P1OUT |= BIT7
 #define DQ0 P1OUT &= ~BIT7
 #define DQOUT P1DIR |= BIT7
 #define DQIN P1DIR &= ~BIT7
 
 
 
 /*******************************************
 函数名称:Read_Byte
 功    能:从DS18B20中读出1字节数据
 参    数:无
 返回值  :temp
 ********************************************/
 uchar Read_Byte()
 {
 uchar i,temp;
 for(i=0;i<8;i++)
 {
 DQOUT;//主机输出状态
 temp >>= 1;//8位依次接收
 DQ0;//低电平至少1us
 Delayus(6);
 DQ1;      //这边为什么要置高电平,时序中没有啊????
 Delayus(8);
 DQIN;//主机接收状态,采样总线
 if(P1IN & BIT7)//总线为1
 {
 temp |= 0x80;
 }
 Delayus(45);
 DQOUT;//主机切换为输出状态
 DQ1;//切换为高电平空闲状态
 Delayus(10);
 }
 return temp;
 }
 
 
 
 
 
 
 
 | 
 
×本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?注册 
  |