■读出温度函数 uchar data temp data[2]={0x00,0x00); ∥读出温度暂存 void read tempO ow reseto; ∥总线复位 write byte(Oxcc); ∥发跳过ROM命令,忽略64位ROM地址,直 ∥接向DS1820发温度变换命令,适用于单片工作 write byte(Oxbe); ∥发读暂存器读命令,读内部RAM中9字节的内容 temp_data[0]=read_byte(;∥温度低8位 temp_data[山=read byte();∥温度高8位 ow resetO; write byte(Oxcc); ∥跳过ROM write byte(0x44); ∥发转换命令 内蒙古农业大学机电三程学院 17
17 读出温度函数 uchar data temp_data[2] = {0x00, 0x00}; // 读出温度暂存 void read_temp() { ow_reset(); // 总线复位 write_byte(0xcc); // 发跳过ROM 命令 ,忽略64位ROM地址,直 // 接向 DS1820 发温度变换命令,适用于单片工作 write_byte(0xbe); // 发读暂存器读命令,读内部RAM 中9 字节的内容 temp_data[0] = read_byte(); // 温度低8位 temp_data[1] = read_byte(); // 温度高8位 ow_reset(); write_byte(0xcc); // 跳过 ROM write_byte(0x44); // 发转换命令 }
实践项目一单总线DS18B20温度测量系统 RP 510 3268 FG DF 123 U1 XTAL1 ■39 18 P0.2/AD2 XTAL2 P0.3/AD3 ■36 P0.4/AD4 ■35 ■34 P0.5/AD5 ■33 P0.6,/AD6 9■ RST P0.7/AD7 ■32 ■21 P20/A8 P20 P2.1/A9 ■22 P2.2IA10 23 ■ 25 31▣ ■26 ■27 P2.6A14 m28 P2.7/A15 U2 1▣ s10 P3 0/RXD P30 2 P1.0T2 P3 P37 VCC 260 3▣ P1.1/T2EX ■11 P31TX门 ■12 4 P1.2 P3.21NT0 GND④ 5▣ P1.3 P3.3/INT1 13 ■1 P3.4T0 DS18B20 P1.7 AT89C51 内蒙古农业大学机电工程学院 18
18 实践项目—单总线DS18B20温度测量系统