首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

求多点温度检测C代码解决方法

2012-02-15 
求多点温度检测C代码调了几天程序没什么进展,想了两个方法做都不成功,液晶上显示乱码。想求一个绝对正确的

求多点温度检测C代码
调了几天程序没什么进展,想了两个方法做都不成功,液晶上显示乱码。想求一个绝对正确的多点温度检测程序(主要是64位Rom搜索那段代码)希望能比对一下发现错误。要代码可能很冒昧啦,不过还是请大侠们帮个忙。。。谢谢

[解决办法]
网上有很多的
[解决办法]
比较关心这个,回帖少啊
[解决办法]

C/C++ code
//多点温度读取,num为要读取的设备的序号。int Read_All_Temperature(unsigned char num){    int PH=0,PL=0;    int tt;        int i;     Init_DS18B20();//初始化    DS18B20_wr_Byte(match_Rom);//匹配ROM    for(i=((num-1)<<3);i<(num<<3);i++)//输入需要使用的DS18B20的64位ROM    {        DS18B20_wr_Byte(DS18B20_ROM[i]);    }    DS18B20_wr_Byte(Convert_T);//开始温度转换    for(i=0;i<800;i++);//延时        Init_DS18B20();//初始化    DS18B20_wr_Byte(match_Rom);//匹配ROM    for(i=((num-1)<<3);i<(num<<3);i++)//输入需要使用的DS18B20的64位ROM    {        DS18B20_wr_Byte(DS18B20_ROM[i]);    }    DS18B20_wr_Byte(read_Scratchpad);//读暂存器        PL = DS18B20_rd_Byte()*10;    PH = DS18B20_rd_Byte()*10;    tt = (PL>>4)+(PH<<4);//返回当前温度的值,温度为实际温度的10倍    return tt;}
[解决办法]
先单独读取每个ROM号,然后做成表格

C/C++ code
//DS18B20内部64位ROM表,以16进制保存,unsigned char code DS18B20_ROM[]={    0x28,0xA0,0x87,0x34,0x02,0x00,0x00,0xD1,//第一个设备ROM    0x28,0x82,0x8D,0x4A,0x02,0x00,0x00,0x09,//第二个设备ROM};
[解决办法]
学习。。。
[解决办法]
可以去这个网站看看有没有http://www.pudn.com/
[解决办法]
学习。我一直不明白为什么要读取rom, 为什么不直接在程序里面定义好表格呢?(也就是在flash里面定义),这样就可以查表了。 希望有高手帮忙解答。
[解决办法]
你查表的数据从哪来啊?不还是要先读取出来吗。一次读取出来就行了,以后就可以直接查表用了,不必每次都读取

热点排行