1、DS18B20数字温度计的硬件电路原理图

    到这个网站上看看吧,我在这个网上下载的了一个用DSB做的课题报告,里面有原理图,可以借鉴,他的论坛里有程序

2、紧急求助:DS18B20的工作原理。

   DSB位序列是出厂前被光刻好的,它可以看作是该DSB位(自身的序列,最后X)。光刻ROM的作用是使每一个DSB的目的,也就是你要做的是配置寄存器。 根据DSB进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DSB收到信后等待~秒的存在低脉冲,主CPU收到此信表示复位成功

3、ds18b20引脚是怎么确定的?

   图片,很多相关文章!不过我可以告诉你,三级管封装的BSB,,就不方便上图了

4、基于AT89C51和DS18B20制作的温度报警器原理图和单片机内部程序?

   #include <> #include <> #define uchar unsigned char #define uint unsigned int sbit ds=P2^2; //温度传感器信线 sbit dula=P2^6; //数码管段选线 sbit wela=P2^7; //数码管位选线 sbit beep=P2^3; //蜂鸣器 uint temp; float f_temp; uint warn_l; uint warn_l; uint warn_h; uint warn_h; sbit led; sbit led; sbit led; sbit led; unsigned char code table[]={ xb,0x4f, xd,, xx, xe6,0xed, ,0xff,0xef}; //不带小数点的编码 void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x) for(y=;y>0;y); } void dsreset(void) //B复位,初始化函数 { uint i; ds=0; i=; while(i>0)i; ds=1; i=4; while(i>0)i; } bit tempreadbit(void) //读1位函数 { uint i; bit dat; ds=0;i; //i 起延时作用 ds=1;i;i; dat=ds; i=8;while(i>0)i; return (dat); } uchar tempread(void) //读1个字节 { uchar i,j,dat; dat=0; for(i=1;i<=8;i) { j=tempreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 } return(dat); } void tempwritebyte(uchar dat) //向B写一个字节数据 { uint i; uchar j; bit testb; for(j=1;j<=8;j) { testb=dat&; dat=dat>>1; if(testb) //写 1 { ds=0; i;i; ds=1; i=8;while(i>0)i; } else { ds=0; //写 0 i=8;while(i>0)i; ds=1; i;i; } } } void tempchange(void) //DSB 开始获取温度并转换 { dsreset(); delay(1); tempwritebyte(0xcc); // 写跳过读ROM指令 tempwritebyte(); // 写温度转换指令 } uint get_temp() //读取寄存器中存储的温度数据 { uchar a,b; dsreset(); delay(1); tempwritebyte(0xcc); tempwritebyte(0xbe); a=tempread(); //读低8位 b=tempread(); //读高8位 temp=b; temp<<=8; //两个字节组合为1个字 temp=temp|a; f_temp=temp*; //温度在寄存器中为位 ° temp=f_temp*; //乘以表示小数点后面只取1位, f_temp=f_temp; return temp; //temp是整型 } ////////////////////显示程序////////////////////////// void display(uchar num,uchar dat) { uchar i; dula=0; P0=table[dat]; dula=1; dula=0; wela=0; i=0XFF; i=i&(~(()<<(num))); P0=i; wela=1; wela=0; delay(1); } void dis_temp(uint t) { uchar i; i=t/; display(0,i); i=t%/; display(1,i); i=t%%; display(2,i); } ////////////////////////////////////////////// void warn(uint s,uchar led) //蜂鸣器报警声音 ,s控制音调 { uchar i;i=s; dula=0; wela=0; beep=0; P1=~(led); while(i) { dis_temp(get_temp()); } beep=1; P1=0XFF; i=s; while(i) { dis_temp(get_temp()); } } void deal(uint t) { uchar i; if((t>warn_l度小于度 { warn(); } else if(t<=warn_l度 { warn(,); } else if((t =warn_h度 { warn(,0x0c); } else { i=; while(i) { dis_temp(get_temp()); } } } void init(void) { TMOD = ; PCON = ; SCON = ; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1; } voidm(char *parr) { do { SBUF = *parr; //发送数据 while(!TI); //等待发送完成标志为1 TI =0; //标志清零 }while(*parr); //保持循环直到字符为\0 } void main() { uchar buff[4],i; dula=0; wela=0; init(); while(1) { tempchange(); for(i=;i>0;i) { dis_temp(get_temp());} deal(temp); sprintf(buff,%f,f_temp); for(i=;i>0;i) { dis_temp(get_temp());}

5、DS18B20工作原理是什么?

   DSB的脉冲输入。得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由ms。 DSB,LTM等等。 主要根据应用场合的不同而改变其外观。封装后的DSB可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 扩展资料: DSB的应用范围: 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。