打印

用msp430f149采集温度问题

[复制链接]
694|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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_)

使用特权

评论回复
5
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)

使用特权

评论回复
6
dirtwillfly| | 2017-11-28 19:13 | 只看该作者
楼主从哪里弄来的代码?
建议参考官网的例程,网上的代码很多有问题的

使用特权

评论回复
7
123456mxh|  楼主 | 2017-11-29 19:57 | 只看该作者
问题已经解决,谢谢

使用特权

评论回复
8
vivilzb1985| | 2017-11-30 20:28 | 只看该作者
这个简单些的直接用149的ad来进行采集的即可。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

0

粉丝