用msp430f149采集温度问题

[复制链接]
 楼主| 123456mxh 发表于 2017-11-28 17:27 | 显示全部楼层 |阅读模式
各位大佬,为什么149 P5.3口设置为输入,初始化P5IN为0x0030,时刻检测BIT3的电平变化,bit3初始化为0x08,0x0030&bit3不是始终为0吗?就算bit3变为低电平,0x0030&0x00还不是等于0,为什么后面还对这个  与  的结果进行判断?(这是149用ds18b20采集温度,是149单片机自带的程序),有点不懂?
各位大佬,请指示
 楼主| 123456mxh 发表于 2017-11-28 17:29 | 显示全部楼层
#define DQ_IN                P5DIR &= ~BIT3                  //设置输入,DS18B20接单片机P53口
#define DQ_OUT                P5DIR |= BIT3                  //设置输出
#define DQ_CLR                P5OUT &= ~BIT3                  //置低电平
#define DQ_SET                P5OUT |= BIT3                  //置高电平
#define DQ_R                P5IN & BIT3                  //读电平,注意这里的bit3就是随输出了


 楼主| 123456mxh 发表于 2017-11-28 17:29 | 显示全部楼层
123456mxh 发表于 2017-11-28 17:29
#define DQ_IN                P5DIR &= ~BIT3                  //设置输入,DS18B20接单片机P53口
#define DQ_OUT                P5DI ...

//*************************************************************************
//                        DS18B20读一个字节函数
//*************************************************************************
   
unsigned char ds1820_read_byte(void)
{
  unsigned char i;
  unsigned char value = 0;
  for (i = 8; i!= 0; i--)
  {
    value >>= 1;
    DQ_OUT;     //把P5.3设置输出
    DQ_CLR;     //输出低电平
    delay_us(4);                                //*延时4uS       
    DQ_SET;     //输出高电平
    DQ_IN;      //设置输入
    delay_us(10);                                //*延时10uS       
    if (DQ_R)
    {
      value|=0x80;                //数据从最高位输出,       
    }
      delay_us(60);                                //*延时60uS       
  }
  return(value);
}
 楼主| 123456mxh 发表于 2017-11-28 17:30 | 显示全部楼层
123456mxh 发表于 2017-11-28 17:29
//*************************************************************************
//                        DS18B20读一个字 ...

#define P5IN_               (0x0030u)  /* Port 5 Input */
READ_ONLY DEFC( P5IN           , P5IN_)
 楼主| 123456mxh 发表于 2017-11-28 17:30 | 显示全部楼层
123456mxh 发表于 2017-11-28 17:30
#define P5IN_               (0x0030u)  /* Port 5 Input */
READ_ONLY DEFC( P5IN           , P5IN_)

#define BIT3                (0x0008u)
dirtwillfly 发表于 2017-11-28 19:13 | 显示全部楼层
楼主从哪里弄来的代码?
建议参考官网的例程,网上的代码很多有问题的
 楼主| 123456mxh 发表于 2017-11-29 19:57 | 显示全部楼层
问题已经解决,谢谢
vivilzb1985 发表于 2017-11-30 20:28 | 显示全部楼层
这个简单些的直接用149的ad来进行采集的即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部