ds18b20温度传感器设计

ds18b20温度传感器设计

ID:6601836

大小:31.50 KB

页数:9页

时间:2018-01-19

ds18b20温度传感器设计_第1页
ds18b20温度传感器设计_第2页
ds18b20温度传感器设计_第3页
ds18b20温度传感器设计_第4页
ds18b20温度传感器设计_第5页
资源描述:

《ds18b20温度传感器设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DS18B20温度传感器设计DS18B20温度传感器设计温控系统C语言源代码#include#include#defineucharunsignedchar#defineuintunsignedintsbitds=P2^2;//温度传感器信号线sbitdula=P2^6;//数码管段选线sbitwela=P2^7;//数码管位选线sbitbeep=P2^3;//蜂鸣器uinttemp;floatf_temp;uintwarn_l1=260;uintwarn_l2=250;uintwarn_h1=300;uintwarn_h2=320;sbitle

2、d0=P1^0;sbitled1=P1^1;sbitled2=P1^2;sbitled3=P1^3;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//不带小数点的编码voiddelay(uintz)//延时函数{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddsreset(void)//18B20复位,初始化函数{uinti;ds

3、=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bittempreadbit(void)//读1位函数{uinti;bitdat;ds=0;i++;//i++起延时作用ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}uchartempread(void)//读1个字节{uchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)

4、(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里}return(

5、dat);}voidtempwritebyte(uchardat)//向18B20写一个字节数据{uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb)//写1{ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;//写0i=8;while(i>0)i--;ds=1;i++;i++;}}}voidtempchange(void)//DS18B20开始获取温度并转换{dsreset();delay(1);tempwritebyte(0xcc);//

6、写跳过读ROM指令tempwritebyte(0x44);//写温度转换指令}uintget_temp()//读取寄存器中存储的温度数据{uchara,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();//读低8位b=tempread();//读高8位temp=b;temp<<=8;//两个字节组合为1个字temp=temp

7、a;f_temp=temp*0.0625;//温度在寄存器中为12位分辨率位0.0625°temp=f_temp*10+0.5;//乘以10表示小数点后面只取1位

8、,加0.5是四舍五入f_temp=f_temp+0.05;returntemp;//temp是整型}////////////////////显示程序//////////////////////////voiddisplay(ucharnum,uchardat){uchari;dula=0;P0=table[dat];dula=1;dula=0;wela=0;i=0XFF;i=i&(~((0X01)<<(num)));P0=i;wela=1;wela=0;delay(1);}voiddis_temp(uintt){uchari;i=t/100;display(0,i);i=t%100

9、/10;display(1,i+10);i=t%100%10;display(2,i);}//////////////////////////////////////////////voidwarn(uints,ucharled)//蜂鸣器报警声音,s控制音调{uchari;i=s;dula=0;wela=0;beep=0;P1=~(led);while(i--){dis_temp(get_temp());}beep=1;P1=0XFF;i=s;while(i--){

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。