发表于:2006/11/23 12:46:00
#0楼
本人要用单总线方式测量20个DS18B20温度探头的温度,准备用AVR单片机,C语言编写程序.
在读温度子程序中要首先读出探头内的64位激光ROM,请哪位高手指点下该怎么读出来?
本人 的思路如下:
1.释放总线
2.读20个探头ROM的第一位,再读该位的补码
如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
( 如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
(
读该位为1,总线写1
(
..............................
读该位为1,总线写1
( 如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
(
读该位为1,总线写1
(
........................................
大家看出来没有,这是个自身套自身的问题,请问这个问题该怎么解决啊?
在读温度子程序中要首先读出探头内的64位激光ROM,请哪位高手指点下该怎么读出来?
本人 的思路如下:
1.释放总线
2.读20个探头ROM的第一位,再读该位的补码
如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
( 如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
(
读该位为1,总线写1
(
..............................
读该位为1,总线写1
( 如果2次读出数据是
01 读该位为0,总线写0;
10 读该位为1,总线写0;
11 返回
00(2种情况) 读该位为0,总线写0
(
读该位为1,总线写1
(
........................................
大家看出来没有,这是个自身套自身的问题,请问这个问题该怎么解决啊?