ds18b20多路温度采集程序

上传人:cl****1 文档编号:486546397 上传时间:2022-11-03 格式:DOC 页数:26 大小:87.50KB
返回 下载 相关 举报
ds18b20多路温度采集程序_第1页
第1页 / 共26页
ds18b20多路温度采集程序_第2页
第2页 / 共26页
ds18b20多路温度采集程序_第3页
第3页 / 共26页
ds18b20多路温度采集程序_第4页
第4页 / 共26页
ds18b20多路温度采集程序_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《ds18b20多路温度采集程序》由会员分享,可在线阅读,更多相关《ds18b20多路温度采集程序(26页珍藏版)》请在金锄头文库上搜索。

1、本程序为ds18b20的多路温度采集程序,是我自己参照其她程序后改写而成,可显示4路正负温度值,并有上下限温度报警(声音、灯光报警)。亲测,更改端口即可使用。(重要器件:1单片机,ds8b0,lc显示屏)附有prots仿真图,及序列号采集程序/*上限6度下限-0度*/#ncue#ei ucar nsindr#efine uitunignd nbit sP1;strs=P4;b e16;sbtsp=P1;i112;st d2=P13;uchr cdro8=0x,0x0,0x,0x,0x00,0x00,00,0xe, 0x8,0x1,0xc5,x8,x,x00,0x00,09, 0x28,032,

2、0xc,0xb,0x0,x00,00,00, x28,0x3,0x5,0xb,0x00,0x0,00,0xd;unsigecaroe tbl0=TEPEATURE:U ;uigndchar coetable1=CF;intf;int tvale;t flu;intwanl=320;uin rn=992;*lcd程序*/voi dlay(ints)/延时uit i,;fr(is;i0;i-)r(j=10;j;j-);voi wom(uhm)/写指令dlas();rs=0;3=c;delayms(1);=;dely();e=0;void rat(cr t)/写数据s=1;e0;=a;delams(

3、5);;del(5);e;od lcdin()/初始化cddels(15);wcom(038);dlas(5);wrom(0x0c);delaym();ro(x06);deas(5);om(0x1);lyms(5);vi dlay(ucar p)/显示hile(*p!=0)wrdat(*p);+;dlay(1);dislaii()/初始化显示lcdiit();com(x0);isplay(te);*s18b2程序*/voi dst()/ds820复位un ;ds=0;i3;wl(i0)i-;ds=1;i4;hile(i)i-;t dsd0()/读一位数据uinti;bidat;d=0;i+;d

4、;+;i+;dat=s;=8;whil(i0)i-;etrn(dat);chrs()/读个字节数据uchar ,,at;dt=;r(8;i0;i-)j=dsrd();da=(j1);retur(t);oid dwr(uch dat)/写数据unt i;uhr ;bit testb;r(j8;0;j-)testda01;=da;if(tstb)ds=0;+;i+;ds=1;i=8;ile(0)-;elseds=;i;hil(i)-;s=1;i+;i+;void msat()/初始化s8b20p=1;1=1;d;dsrs();ayms(1);dr(0xcc);swr(04);deadeatemp(

5、)/读取并解决温度uchar,j,t;ucr a,b;fo(j=0;j4;j)dsrt();delayms();dswr(x5);or(i=;i8;i+)dwr(lcdomji);/发送64位序列号dsr(0e);a=dd();b=drd();tvalue=b;tvluewarn)2=0;s=0;lsed=;sp=;else2=;wrom(0xc0);wdat( );if(tvawarnh)=;s0;els=1;s=1;f(j=0)wrcm(08e); rt(2);(j=1)wrcom(8e);wrdat(3);(j=2)wrm(0xe); wra();if(=)wrco(xe); wrdat

6、(5);ftval=vaue*0625;tvau=tvu100.5;ftvalu=ftvlue+0.05;ftvle;/温度扩大十倍,精确到一位小数tvalj;t=tvl/000;wcom(0x80+04);wrdat(abe1t);/显示百位 t=tvue%00/1;rdat(tae1t);显示十位t=tvlu0/10;wdt(tl1t);/显示个位wrdat(0x2e); /显示小数点儿t=lue%10;wrdat(tblt);/显示小数位 delayms(5000);/*主函数*/vidmain()1=;21;s=1;displiit();/初始化显示 while() tstrt();/

7、初始化 rea_dlemp();/读取温度 /*序列号读取程序*/#iclue #defie uch unigndchar#defie ntusinednsbtQ= P1; /温度传感器信号线sbt rs1; /C数据命令选择端(H/L)位声明sbt cdn = P6; L使能信号端位声明vid dly(uit); /延时函数i DS1B0Reset(vi); /Q1820复位,初始化函数t DS8_Readit(void); /读1位数据函数uchrD180_dte(voi); /读个字节数据函数vd S18iteBte(ucr dt); /向DQ18B0写一种字节数据函数od C_riCo

8、m(uchr co); /162液晶命令写入函数v LC_WrtDt(uchar dat); /02液晶数据写入函数id LCDInt(); L初始化函数oid Dispay18B20om(ch o); /显示18B2序列号函数/*/* 主函数 */v a() uhar a,c,d,e,f,; LCD_Iit(); S18B2set(); a(1); DS1820Writeyte(x3); dla(); a D8B20_RaBte(); = S1B20_Rde(); c S8B20RadBte(); DS1B2RaByte(); e =D1B20_edByte(); = S18B20_Ready

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号