打印
[MCU]

做过DS18B20的进

[复制链接]
1721|63
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanghqi|  楼主 | 2020-10-13 22:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

以下是主函数 和18B20的主要部分
请问还有什么问题?
void main()
{
  WDTCTL = WDTPW + WDTHOLD;
  P1DIR|=BIT2+BIT3+BIT4+BIT5+BIT6;
  BCSCTL1 = CALBC1_1MHZ;
  DCOCTL = CALDCO_1MHZ;
  lcdreset();
  clear_gcrom();
while(1)
{
  uint i;
  display_pos(0,0);
for(i=0;i<10;i++)
write_com(table1[i],0);
Temper=ReadTemp();
tableTemper(Temper);
display_pos(0,5);
for(uint i=0;i<4;i++)
write_com(table_Temper[i],0);
}
}

void Skip(void)
{
    Write_18B20(0xcc);
}
//----------------------------------
void Convert (void)
{
    Write_18B20(0x44);
}
//----------------------------------
void ReadDo (void)
{
    Write_18B20(0xbe);
}
//----------------------------------
int ReadTemp (void)
{
    char temp_low,temp_high,k; //温度值
    Init();
    Skip();
    Convert();     
    delayus(60000);delayus(60000);//延时1s以上
    Init();
    Skip();
    ReadDo();
    temp_low=Read_18B20(); //读低位
    temp_high=Read_18B20(); //读高位
    temperature=(temp_high&0x0f);
    temperature<<=8;
    temperature|=temp_low;
   
    k=temp_high&0xf8;
    if(k==0xf8)     //温度为负值
    {
      temperature=~temperature|1;
      Temper=temperature*625;
      
    }
    else
    {
      //  Temper=temperature*0.0625*100;   //温度为正值
     Temper=temperature*625; //0.0625*10000
    }
    return Temper;
}
void tableTemper(uint Temper)
{
table_Temper[0]=(Temper/10000)%10;
table_Temper[1]=(Temper/1000)%10;
table_Temper[2]=(Temper/100)%10;
table_Temper[3]=(Temper/10)%10;
}

使用特权

评论回复

相关帖子

沙发
wyjie| | 2020-10-13 22:57 | 只看该作者
然后呢

使用特权

评论回复
板凳
zhanghqi|  楼主 | 2020-10-13 23:00 | 只看该作者
采集的数据要通过12864显示出来

使用特权

评论回复
地板
jlyuan| | 2020-10-13 23:04 | 只看该作者
楼主看程序能不能用,直接上硬件就行啦

使用特权

评论回复
5
yszong| | 2020-10-13 23:10 | 只看该作者
楼主没说明问题

使用特权

评论回复
6
dengdc| | 2020-10-13 23:13 | 只看该作者
该程序的基本没啥问题的,可以边调试边修改的比较快的

使用特权

评论回复
7
zhanghqi|  楼主 | 2020-10-13 23:18 | 只看该作者
P1.0接DQ

使用特权

评论回复
8
zhanghqi|  楼主 | 2020-10-13 23:21 | 只看该作者
读不出数据

使用特权

评论回复
9
jiahy| | 2020-10-13 23:29 | 只看该作者
看下时序没问题吧?

使用特权

评论回复
10
lizye| | 2020-10-13 23:34 | 只看该作者
网上很多的,21IC就有,我就是抄这里的代码。

使用特权

评论回复
11
huwr| | 2020-10-13 23:39 | 只看该作者
读不出数据,检查时序,18b20是单线通信的

使用特权

评论回复
12
spark周| | 2020-10-13 23:43 | 只看该作者
18B20主要是时序,时序正确,其他都OK。要注意延时的正确。

使用特权

评论回复
13
zhaoxqi| | 2020-10-13 23:48 | 只看该作者
你的时钟频率是多大的

使用特权

评论回复
14
wuhany| | 2020-10-13 23:52 | 只看该作者
以前都是因为在延时上出现了问题。

使用特权

评论回复
15
zhanghqi|  楼主 | 2020-10-13 23:55 | 只看该作者
好的,我找找

使用特权

评论回复
16
chuxh| | 2020-10-14 19:52 | 只看该作者
这个DS18B20有什么问题吗

使用特权

评论回复
17
stly| | 2020-10-14 19:56 | 只看该作者
读不出数据很正常。

使用特权

评论回复
18
liuzaiy| | 2020-10-14 20:00 | 只看该作者
12MHZ?

使用特权

评论回复
19
kangzj| | 2020-10-14 20:04 | 只看该作者
是不是等待时间不够

使用特权

评论回复
20
llia| | 2020-10-14 20:07 | 只看该作者
有可能初始化中问题

使用特权

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

本版积分规则

852

主题

11757

帖子

5

粉丝