ds18b20多路温度采集程序.pdf

ds18b20多路温度采集程序.pdf

ID:59688177

大小:198.99 KB

页数:23页

时间:2020-11-13

ds18b20多路温度采集程序.pdf_第1页
ds18b20多路温度采集程序.pdf_第2页
ds18b20多路温度采集程序.pdf_第3页
ds18b20多路温度采集程序.pdf_第4页
ds18b20多路温度采集程序.pdf_第5页
资源描述:

《ds18b20多路温度采集程序.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本程序为ds18b20的多路温度采集程序,是我自己参考其他程序后改写而成,可显示4路正负温度值,并有上下限温度报警(声音、灯光报警)。亲测,更改端口即可使用。(主要器件:51单片机,ds18b20,lcd显示器)附有proteus仿真图,及序列号采集程序/****上限62度下限-20度****/#include#defineucharunsignedchar#defineuintunsignedintsbitds=P1^1;sbitrs=P1^4;sbite=P1^6;....sbitsp=P1^0;sbitd1=P1^2

2、;sbitd2=P1^3;ucharlcdrom[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}};unsignedcharcodetable0[]={"TEMPERARTURE:U"};unsignedcharcodetable1[]={"0

3、123456789ABCDEF"};intf[4];inttvalue;floatftvalue;uintwarnl=320;uintwarnh=992;/****lcd程序****/voiddelayms(uintms)//延时{uinti,j;for(i=ms;i>0;i--)....for(j=110;j>0;j--);}voidwrcom(ucharcom)//写指令{delayms(1);rs=0;P3=com;delayms(1);e=1;delayms(1);e=0;}voidwrdat(uchardat)//写数据{rs=1

4、;e=0;P3=dat;delayms(5);e=1;delayms(5);e=0;}....voidlcdinit()//初始化lcd{delayms(15);wrcom(0x38);delayms(5);wrcom(0x0c);delayms(5);wrcom(0x06);delayms(5);wrcom(0x01);delayms(5);}voiddisplay(uchar*p)//显示{while(*p!=''){wrdat(*p);p++;delayms(1);}}displayinit()//初始化显示{lcdinit();

5、wrcom(0x80);display(table0);....}/****ds18b20程序****/voiddsrst()//ds18b20复位{uinti;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bitdsrd0()//读一位数据{uinti;bitdat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}....uchardsrd()//读1个字节数据{uchari,j,dat;dat=0;for(i=8;

6、i>0;i--){j=dsrd0();dat=(j<<7)

7、(dat>>1);}return(dat);}voiddswr(uchardat)//写数据{uinti;ucharj;bittestb;for(j=8;j>0;j--){testb=dat&0x01;dat=dat>>1;if(testb){....ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}voidtmstart()//初始化ds18b20{sp=1;d1=1;

8、d2=1;dsrst();delayms(1);dswr(0xcc);....dswr(0x44);}voidread_dealtemp()//读取并处理温度{uchari,j,t;uchara,b;for(j=0;j<4;j++){dsrst();delayms(1);dswr(0x55);for(i=0;i<8;i++){dswr(lcdrom[j][i]);//发送64位序列号}dswr(0xbe);a=dsrd();b=dsrd();tvalue=b;tvalue<<=8;tvalue=tvalue

9、a;if(tvalue<0)..

10、..{d1=1;tvalue=~tvalue+1;wrcom(0xc0);wrdat(0x2d);if(tvalue>warnl){d2=0;sp=0;}else{d2=1;sp

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

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

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