ds18b20多路温度采集程序.doc

ds18b20多路温度采集程序.doc

ID:51259031

大小:107.50 KB

页数:24页

时间:2020-03-20

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

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

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

2、sp=P1^0;sbitd1=P1^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[]={"TEM

3、PERARTURE:U"};unsignedcharcodetable1[]={"0123456789ABCDEF"};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

4、;delayms(1);e=1;delayms(1);e=0;}voidwrdat(uchardat)//写数据{rs=1;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

5、)//显示{while(*p!=''){wrdat(*p);p++;delayms(1);}}displayinit()//初始化显示{lcdinit();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

6、;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}uchardsrd()//读1个字节数据{uchari,j,dat;dat=0;for(i=8;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=

8、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;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

9、(0x55);for(i=0;i<8;i++){dswr(lcdrom[j][i]);//发送64位序列号}dswr(0xbe);a=dsrd();b=dsrd();tvalue=b;tvalue<<=8;tvalue=tvalue

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

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

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

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